Problemas al establecer recorset de formulario |
Responder |
Autor | |
gginarte
Nuevo Unido: 18/Mayo/2021 Localización: Cuba Estado: Sin conexión Puntos: 7 |
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 |
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14027 |
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.
|
|
gginarte
Nuevo Unido: 18/Mayo/2021 Localización: Cuba Estado: Sin conexión Puntos: 7 |
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.
|
|
gginarte
Nuevo Unido: 18/Mayo/2021 Localización: Cuba Estado: Sin conexión Puntos: 7 |
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
|
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |