visual programar ejemplos codigos ms-access access-vba

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