Visual Basic - Pasar el contenido de una caja de texto a un filtro

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 179
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Pasar el contenido de una caja de texto a un filtro

Publicado por Alberto (115 intervenciones) el 28/09/2021 19:25:31
Es una pregunta de novato, pero so am I.
Quiero hacer en una tabla distintas operaciones (contar, filtrar) a partir del contenido de una caja de texto.
Es decir, entro en una caja de texto "Pepe" y quiero que me diga cuantos registros hay que tengan la palabra Pepe en el campo inv de la tabla resugral. O que me relacione los Pepes de la t abla.
Entro en la text1.text, Pepe y despues de haber instalado el ADODB y el enlace con la table resugral y haber establecido
Dim Rs As New ADODB.recordset
Conn.ConnectionString = "...."
Conn.Open
Rs.Open "SELECT COUNT(*) as 'contador' FROM resugral WHERE inv ='Text1' ", Conn, adOpenStatic, adLockPessimistic
contador = Rs(0)
MsgBox " Contador " & contador
Me da siempre 0 aunque hay varios Pepes. He entrado , Text1, Text1.Text, con comillas sencillas, dobles y de todas formas que se me han ocurrido (menos la que funcione, evidentemente) , pero no hay forma. Utilizo VB6.0.
Si escribo Pepe en el código, sí me funciona perfectamente, pero así cualquiera.
En tiempos me he tenido problemas con esto, pero ahora sí.
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 355
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Pasar el contenido de una caja de texto a un filtro

Publicado por raul (160 intervenciones) el 29/09/2021 15:19:22
De veras que si el codigo te funciona solo seria por intervención divina.

Supon que tenemos una variable llamada SQL; ahora:

SQL = "select count(inv) as contador from RESUGRAL where inv like '" & text1.text & "'"


El Tema es que tu escribes en el textbox 'pepe' pero a menos que en los campos exista uno que literalmente se llame pepe el codigo no funciona; o sea que hay que buscar por referencia con LIKE, Ahora bien siempre y cuando exista una palabra llamada 'Pepe'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 179
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Pasar el contenido de una caja de texto a un filtro

Publicado por Alberto (115 intervenciones) el 29/09/2021 17:16:56
Es que se llama "Pepe", bueno, no "Pepe", sino cosas como AMG, MMM, y así, pero haberlos, haylos.
Lo pondré como pones tú SELECT COUNT (inv) ...y no SELECT COUNT(*) ... De paso pondré una estampita junto al PC a ver si ayuda. Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 355
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Pasar el contenido de una caja de texto a un filtro

Publicado por raul (160 intervenciones) el 30/09/2021 00:27:11
Haber Alberto no te enfades.

Campo = ''. Se usa para equivalencias exactas
Campo like '' Se usa para equivalencias parciales por ejemplo devuelve 'Pepe Jean', 'Pepe Urquiola' etc

Campo like '%pepe%' se usa para equivalencias parciales pero que la palabra buscada forma parte de otra palabra por ejemplo 'Fransisco José (Papepe)'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 179
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Pasar el contenido de una caja de texto a un filtro

Publicado por Alberto (115 intervenciones) el 30/09/2021 05:49:22
A ver, no me enfado y agradezco la respuesta. Se ve que me he explicado mal o que la cosa es más complicada de lo que creía.
Caja de texto (Text1.text) que permite sólo tres caracteres: JKL, MNZ, WSD o los que sean.
Base de datos con una tabla resugral en la que todos sus registros tienen un campo inv con tres letras.
Lo que pretendo es que cuando entro en Text1.text YHZ, por ejemplo, y en el código escribo COUNT (*) o SELECT (*) FROM resugral WHERE inv = Text1.text (con las comillas simples o dobles y ampersands como sean, que aquí creo está el problema). se haga la operación sobre los registros que tienen en el campo inv YHZ, no algo parecido ni primo hermano. Por lo tanto el LIKE no es de aplicación aquí. Con el ejemplo de Pepe, querría que me mostrara los registros con Pepe, no Pepa, ni Pepi. Espero haberme explicado mejor. Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 179
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Pasar el contenido de una caja de texto a un filtro

Publicado por Alberto (115 intervenciones) el 30/09/2021 09:39:44
Solucionado. La cuestión estaba en las comillas dobles y ampersand.
inv1 = text1.text
Rs.Open "SELECT COUNT(*) as 'cuantoshay' FROM resugral WHERE inv = """& inv1 &""" ", Conn, ...
entotal = Rs(0)
MsgBox "Hay " & entotal
¡Tachán!
"Hay 9 "
e igual para SELECT * FROM...
Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar