VBA Formulario que busque y traiga los resultados a una grilla

Estoy pegado con la búsqueda de datos de acuerdo a texBox de un formulario

Tengo un registro madre que que ya tiene nombre de la persona, socio, destino, con esos datos cargo un formulario en la pagina 1, pero en la pagina 2 debo traer un listado de personas que están asociados a los tres Textbox

Son 11 Campos los que debiera cargar desde la columna U a la AE (quizás no todos) a esta grilla que esta dentro de mi formulario UserFrom2

Una vez que es los vea, el usuario agregará 2 datos a todos o sólo a algunos de ellos y los 11 campos los grabaré en access, y como no sé cómo se trabaja esa grilla, desconozco si esos campos podré indentificarlos para guardarlos en el access.

Hay cosas de VBA que he aprendido o más bien reutilizado de este sitio, pero no encontré nada entendible para mi, que me ayudará

1 respuesta

Respuesta
1

[Hola

Aunque no has hecho alguna pregunta puntual como para ayudarte, te explico un poco, en general como tu pregunta, las cosas que has mencionado.

Con las versiones más actuales de Office, y sobre todo el uso de sus versiones de 64 bits así como también la masificación del uso de sistemas operativos de 64 bits, algunas de las grillas más usadas antaño han perdido compatibilidad con Excel. Tal es el caso de los Datagrid (aunque no permitía modificaciones) y del FlexGrid (que sí permitía modificaciones) por lo que en la práctica o no podrás usarlos o es mejor, en realidad, no hacerlo (así tu versión de Office permita su uso).

La recomendación, dada su compatibilidad con todas las versiones de Excel, es usar un Listbox. Los Listbox pueden comportarse como grillas sin mayor problema. Claro para poder modificar/editar los datos pues, no se puede directamente, tendrías que enviar los datos seleccionados a algunos TextBox por ejemplo.

Para enviar el contenido del Listbox a Access, también es otro cantar; yo recomiendo usar ADO (y SQL). En mi blog sugiero ver el ejemplo N° 8:

Ah, mira también el ejemplo N° 11 y para que veas una forma de llenar un ListBox basado en el dato de un TextBox

Saludos]

Abraham Valencia

Gracias, tiene razón no hice la pregunta, finalmente a partir de 3 textbox (nombre, socio y sucursal) debo cargan en el formulario los datos de las personas que están allí en esa sucursal en especifico, pueden ser 1 o 20 dependiendo del caso

La lista de personas por el momento esta en excel (la tabla que debo cargar), hoja OrigendeDatos

luego debo según los textbox que tengo en mi formulario que son  (nombre, socio y sucursal) TBNombre, TBSocio, TBSucursal, debe aparecer el lista de RUT con todos sus datos.

Con esto me imaginaba una grilla de datos o un combobox donde al seleccionar el RUT 1, traiga en textbox los 11 datos campos, y que a partir de otro ComboBox que ya tengo en el formulario pida asignarle un valor a un campo de forma individual en cada uno de los RUT, en el ejemplo de la imagen son1 por sucursal.

Todos los datos capturados más el que actualicé, me los llevo a una tabla de access (no puedo usar SQL) esta parte la sé hacer re bien

Espero que ahora em ayuda explicado mejor, gracias,  he mirado tu sitio un par de veces, es bastante útil, pero mi problema es que cada vez que presento algo funcional a mi jefe, después me pide algo mejor y vuelta a buscar otras alternativas.

Saludos

Nunca he usado listbox (tengo que comenzar a buscar mas info) Usé el ejemplo 11, intenté cambiar la referencias a la columna U, no me funcionó, pero da igual lo dejé desde la columna A.

Ahora, estoy en:

1  cómo le cargo los nombre de los campos en el ListBox al parecer sería colocar texto sobre el dato, pero seguiré buscando

2 cómo paso al hacer click los datos del listbox a textbox (al menos 3 campos, ID_Visita, RUT,Esparado) a su respectivos TB

3 cargar el listbox desde un access a partir del textobox_IDVisita que guarda el dato de la base ID_Visita

Sì lo vi esta mañana y logré cargar el list box, con un combobox ingresar datos a un campo, y guardarlo en un access

Lo que no puedo hacer es cargar un list desde el access ya hice el SELECT para que me traiga los campos que quiero, pero no se cómo insertarlos en un ListBox, tienes algún ejemplo ?

[Hola

Pues mira:

Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sql As String
Set cnn = New ADODB.Connection
Set rst = New ADODB.Recordset
With cnn
    .Provider = "Microsoft.ACE.OLEDB.12.0"
    .ConnectionString = "data source=" & ThisWorkbook.Path & "\Ejemplo.accdb"
    .Open
End With
sql = "Select * From Directorio"
With rst
    .CursorLocation = adUseClient
    .CursorType = adOpenKeyset
    .LockType = adLockOptimistic
    .Open sql, cnn, , , adCmdText
End With
Me.ListBox1.Column = rst.GetRows

Esa es una  forma de hacerlo; claro, previamente hay que colocar en la propiedad "ColumnCount" el número correspondiente a la cantidad de campos de la tabla.

Abraham Valencia

¡Gracias! me funcionó

Pregunta adicional, cuál sería el

comentado agregar si la consulta no tiene resultados ? 

Prueba con "rst.RecordCount", algo como:

If rst.RecordCount = 0 then

Saludos]

Abraham Valencia

¡Gracias! me has ayudado bastante, tengo otras dudas relacionadas a formulario, pero haremos nuevas preguntas, porque así también ayudo a los que buscan por temas similares.

Has sido de gran ayuda!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas