Я изучаю немного vba, с макросами в acces, что я стараюсь делать, состоит, в том, чтобы введя эту идентификацию в компьютер, он реализовал соответствующую консультацию и показал одно из полей в другом поле ввода текста, я присоединяю изображение формуляра и кода
Однако кликнув в искании, оно является следующим.
и если я использую один, пойдите mu длина бросает меня следующая ошибка произвела себе ошибку 6 во время выполнения: Избыток
это код, который я использую
Private Sub consultar_Click()
Dim strSQL As String
Dim ValCustID As Integer
ValCustID = Me.idx.Value
strSQL = "SELECT Modelo " & "FROM Motores " & "WHERE id='" & ValCustID & "';"
Modelox.Value = strSQL
End Sub
В этих случаях мне нравится использовать recordsets, так как не используется какое-то поле ввода combinado/comboBox, следовательно я сделал бы это следующей формой:
Dim Rs As New ADOB.RecordSet
''Validamos si el campo del Id no este vacio, si lo esta avizamos al usuario.
If Nz(Me.Idx, "") = "" Then
MsgBox "Aqui se le hace saber al usuario que el campo no esta lleno.",
vbInformation + vbOkOnly, "Campo Vacio"
Exit Sub/Function
End If
''Aqui abrimos el Recordset
With Rs
.ActiveConnection = CurrentPrject.Connection
.Open("SELECT Modelo FROM Motores WHERE Id = '" & Nz(Me.Idx, "") & "' ")
''En este punto, estamos evaluando que la propiedad EOF (End Of File) _
no este establecida como true, de estarlo significa que el recordset _
no tiene ningun dato, o que la consulta no regreso algo.
If .EOF Then
MsgBox "No se ha encontrado informacion con ese Id.", vbExclamation +
vbOkOnly, "Error!"
Exit Sub/Function
ENd If
''Si la EOF es falso, es decir que si encontro algo, en este punto es donde _
seteamos el valor al campo en el que lo queremos.
Me.Modelo = Nz(!Modelo, "")
End With
Из этой формы ты гарантируешь хорошее выполнение кода, немного более объясненный:
-Nz (): эта функция sinifica Нот Серо, он используется для того, чтобы оценивать контроль или переменную, согласно Вашему типу информации, например, если он числовой любого типа, он используется следующей формы:
Nz(ValorNumerico, 0)
В случае один буквенно-цифровой тип стоимости или цепи:
Nz(Cadena, "")
помещает Себе 0 или "" из-за которого это стоимость, которая возвращалась в случае, если переменная / контроль придет недействительно, и - информация, которую он, должно быть, размещает обязательно.
-RecordSet: это объект манипуляции данных, а именно, в общем они используются для консультации SQL, это поддерживает заявление переменной для того, чтобы оно функционировало, возможно делать двух способов:
Dim RsEjemplo As New ADOB.RecordSet
Гі
Dim RsEjemplo As RecordSet
Set RsEjemplo = New ADOB.RecordSet
-Clausule With - Энд Вит: Это метод манипуляции объектов, как ты можешь замечать, он используется в объекте RecordSet, этот одинокий метод упрощает способ манипулировать объектом, используется следующего способа:
With OjbetoEjemplo
''Para sacar las propiedades del objeto, se referencian con un . seguido de la _
propiedad.
.Open
.Connection
End With
Просто так, которые иметь, надеялся помочь.
Не имея достаточной информации о таблице, это вероятно, что поле id
будьте числовым. Да поле - long, ты был бы должен поддерживать данные в ранге между-2.147.483.648 и 2.147.483.647.
Видя, что в консультации они ищутся как текст, также он удалил бы кавычки консультации:
strSQL = "SELECT Modelo FROM Motores WHERE id = " & ValCustID & ";"