Imprimir página | Cerrar ventana

Pierdo el foco en la aplicación con el uso de Reco

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86033
Fecha de impresión: 26/Marzo/2026 a las 15:54


Tema: Pierdo el foco en la aplicación con el uso de Reco
Publicado por: gginarte
Asunto: Pierdo el foco en la aplicación con el uso de Reco
Fecha de publicación: 31/Mayo/2021 a las 15:50
Ante todo un saludo para todo el grupo. Soy nuevo en la programación y me estoy introduciendo en el uso del ADO y los recordset.
En el siguiente ejemplo, hago una actualización de consulta en el evento al cambiar de un cuadro de texto y entonces asigno el recordset al formulario cada vez que cambio el texto y por consiguiente hay una actualización del sql.
Resulta que cuando asigno el recordset al formularios (Set Me.Recordset = rs) pues se me pierde el foco en la aplicación y no logro ubicarlo en el control que deseo. Ya he descartado que es cuando hago esta asignación, pues cuando la omito me trabaja perfecto. Le pongo el código a continuación y de antemano agradezco sus consideraciones sobre el tema.

Private Sub CT_BuscarSiglas_Change()
On Error Resume Next


Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sql As String
Dim Texto As String

Texto = Nz(CT_BuscarSiglas.Text, "%")
'
cnn.Open DB

sql = SelecciónSQL(Texto, "Proveedores", "SiglasEntidad")

'rs.Open sql, cnn, adOpenKeyset, adLockReadOnly

'Si se usa la barra espaciadora se cancela el procedimiento
If Asc(Right(Texto, 1)) = 32 Then Exit Sub


rs.CursorLocation = adUseServer
rs.Open sql, cnn, adOpenKeyset, adLockReadOnly


'Si no hay registros en la consulta cancelar el procedimiento
If rs.EOF And rs.BOF Then
    MsgBox "Ese texto no existe"
    Exit Sub
End If
'
Set Me.Recordset = rs

rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing


Forms!F_Proveedores!CT_BuscarSiglas.SetFocus (Caso omiso a esta instrucción, sin embargo cuando se revisa paso a paso si funciona)
Forms!F_Proveedores!CT_BuscarSiglas.SelStart = Len(Texto)

End Sub



Imprimir página | Cerrar ventana