ms access - programar - Error de tiempo de ejecución 2185
vba access pdf (3)
Ese error de tiempo de ejecución significa You can''t reference a property or method for a control unless the control has the focus.
Puede usar .Text
cuando un control tiene el foco.
Recibo un run time error 2185
, "No se puede hacer referencia a una propiedad o método para un control a menos que el control tenga el foco ..." .
Este es mi código que estoy usando.
Private Sub Command5_Click()
Dim cardno As Integer
cardno = cardnumber.Text
DoCmd.OpenForm "search_card_number", acNormal, , WHERE & cardno = [Account Number]
End Sub
.Text
referencia a la propiedad .Text
de un control requiere que tenga foco. Simplemente descarte eso y debería funcionar (el valor predeterminado es .Value
)
O
Intente introducir el método SetFocus según lo indicado por Access, es decir,
Private Sub Command5_Click()
Dim cardno As Integer
cardnumber.SetFocus <-------Use this line to set the focus
cardno = cardnumber.Text
DoCmd.OpenForm "search_card_number", acNormal, , WHERE & cardno = [Account Number]
End Sub
Mi solución fue probar para ver si el control tenía foco antes de actualizar la propiedad de control,
Aquí estoy actualizando una búsqueda de cuadro combinado a una búsqueda de comodín
Private Sub Combo_Change()
''Note control passed to after update sub, then returns to change sub where error occurs
''Combo is the name of your combo box
If (Combo Is Me.ActiveControl) Then
Me.Combo.RowSource = _
"SELECT [CCL sites v Contract No].ContractID, [CCL Sites].[Site Address], [CCL sites v Contract No].[Contract No] " & _
"FROM [CCL sites v Contract No] INNER JOIN [CCL Sites] ON [CCL sites v Contract No].SiteID = [CCL Sites].SiteID " & _
"WHERE [CCL Sites].[Site Address] LIKE ''*" & Me.Combo.Text & "*'' " & _
"ORDER BY [CCL Sites].[Site Address]"
Me.Combo.Dropdown
End If
End Sub