** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Problemas al establecer recorset de formulario
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoProblemas al establecer recorset de formulario

 Responder Responder
Autor
Mensaje
gginarte Ver desplegable
Nuevo
Nuevo


Unido: 18/Mayo/2021
Localización: Cuba
Estado: Sin conexión
Puntos: 7
Enlace directo a este mensaje Tema: Problemas al establecer recorset de formulario
    Enviado: 19/Mayo/2021 a las 03:53
Ante todo mis saludos de antemano. Soy principiante en access y vba. Estoy incursionado en el uso de ADO por allá muchas ventajas qu no es el tema en cuestión. Uno de los objetivos es elimi ar las tablas vinculadas. Para esto utilizo la propiedad recordset de formularios y controles, pero en el caso de los formularios me topo con alguno que otro problema. En este caso utilizo el evento al cambiar de un cuadro de texto para modificar una consulta cada vez que cambia el texto. Todo trabaja perfecto excepto que cuando establezco el nuevo valor del recorset del formulario no logro que el cursos se sitúe nuevamente en el cuadro de texto. O sea, no logro establecer el foco en el cuadro de texto. De hecho pierdo el foco totalmente del formulario. Lo probé sin asignar el recorset y trabaja perfecto. A continuación relaciono el código:

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 = adUseClient
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
'
DoCmd.Requery
'
'
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing

DoCmd.GoToControl "Forms!F_Proveedores"
'Me.SetFocus
Me.CT_BuscarSiglas.SetFocus
Me.CT_BuscarSiglas.SelStart = Len(Texto)

End Sub
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14025
Enlace directo a este mensaje Enviado: 19/Mayo/2021 a las 08:23
El evento Change se dispara en cada pulsación de teclas que haces, ... yo probaría con el AfterUpdate.

Por cierto, bienvenido.
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
gginarte Ver desplegable
Nuevo
Nuevo


Unido: 18/Mayo/2021
Localización: Cuba
Estado: Sin conexión
Puntos: 7
Enlace directo a este mensaje Enviado: 19/Mayo/2021 a las 12:39
Buenas Mihura. After update tendría que dar enter para la búsqueda. Esto que estoy haciendo busca el texto en la medida que tecleas como si estuvieras buscando en un Google. Yo lo logré pero teniendo el cuadro de texto en un formulario y la lista en un subformulario. Pero cuando quiero ir a un registro específico tampoco me trabaja. Hay algunos conflictos usando el ado con los formularios que no he podido resolver. Mi interés por el ado, entre muchos es que estoy guardando en una tabla local todos los parámetros de la conexión al servidor y en algún momento solo tendré que cambiarlos y ya estaré conectado a un sql server con el mismo front end. Obvio. Con la misma estructura de tablas en el back. Si este ejemplo le quitas establecer el recordset al form te trabaja perfecto. No tienes ni que utilizar ir al control, enfocar form etc. Solo el cuadro de texto. Set focus y andando. Me he enamorado de esta opción de búsqueda. Es realmente muy cómoda. En la medida que tecleas el form se reduce a lo que buscas. Luego puedo publicar la sentencia del sql que la arme con algunos ejemplos. Muchas gracias y te instó y si te embullar pues te agradecería me ayudes a salir de este aprieto jj. Saludos.
Arriba
gginarte Ver desplegable
Nuevo
Nuevo


Unido: 18/Mayo/2021
Localización: Cuba
Estado: Sin conexión
Puntos: 7
Enlace directo a este mensaje Enviado: 31/Mayo/2021 a las 16:31
Este tema lo resolví poniendo este formulario dentro de otro o sea, lo convertí en un subformulario. El cuadro de texto lo puse en el formulario y funciona bien.
Al final nunca entendí por que falló estando en el mismo formulario.
saludos
Doy por terminado el hilo
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable