|
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
|