Programación General > Visual Basic para principiantes
Conventir entero a cadena o.o?
Nebire:
El asunto es que yo no tengo ningún detalle sobre tu base de datos, preguntabas la manera de convertir variables así no tenía necesidad de mirar tu código.
Si tu afirmas que te funcionaba esa query, no tiene sentido que revisara esa parte del código... ahora, mirándolo bien: lo que veo es que al parecer tienes una tabla llamada sqlies, con unos campos llamados : 'estacion.nombre_estacion' y 'estacion.linea'. Ahora bien, un punto no puede formar parte del nombre de un campo. Por lo que asumo que 'estacion' debe ser el nombre de una tabla pero entonces que es sqlies ?. No tengo modo de saberlo. Quizás sea otra tabla...? . tambien me cabe pensar que
No puedes preguntarle a la bd, dame las bebidas.nevera.casa.Juan tomando la casa.andres si las bebidas.nevera.cerveza.marca = 'X' . O estamos en casa de Juan o en casa de Andrés o tenemos que relacionar ambas casas.
Si sqlies es una tabla y dicha tabla tiene 2 campos llamados 'nombre_estacion' y 'linea' la query debería ser:
--- Código: Visual Basic --- "SELECT nombre_estacion FROM sqlies WHERE linea = " & Combo3.Text En cambio si la tabla es estacion y dicha tabla tiene 2 campos llamados 'nombre_estacion' y 'linea' la query debería ser:
--- Código: Visual Basic --- "SELECT nombre_estacion FROM estacion WHERE linea = " & Combo3.Text
No hay necesidad de relacionar 2 tablas cuando lo que se pregunta (la condición: linea = esto) y lo que se obtiene ( select estecampo) proceden de la misma tabla.
Yo acostumbro a llamar mis tablas tblNombrequesea y los campos con el tipo de datos, por ejemplo: strLinea, intLinea, bytLinea. No es obligatorio pero al menos para informar sin escribir muchos datos y rellenar una hoja de detalles ayuda bastante (en el foro al menos, tu luego ten lo que quieras en tu bd). Del mismo modo si Linea es un control adodc podrías llamarlo adoLinea.
El método refresh, sólo debe usarse cuando la query sigue siendo la misma si no, debe reinvocarse el recordset. La query sólo establece el filtro que se usará con la base de datos...
Este es el método correcto de proceder:
--- Código: Visual Basic --- Adodc1.RecordSource = "SELECT nombre_estacion FROM estacion WHERE linea = " & Combo3.TextAdodc1.Recordset.Requery
Fíjate: como tienes al parecer un control adodc llamado linea y un campo llamado linea , toma la precaución de de sustituir los nombres adecuadamente donde correponda.
p.d.: se me olvidaba...
Hay otro error, un poco más abajo. Tu en la query solicitas 1 único campo, luego tu recordset contiene sólo datos para el campo 'nombre_estacion' luego la línea de código: Combo2.AddItem linea.Recordset.Fields(2) carece de sentido, no existe el 'fields(2)' existe sólo el fielsd(0). podrías cambiar tu query para seleccionar más de 1 campo... especificando cuales más quieres (SELECT estacion , numero , dia FROM ...) o bien todos ( SELECT * FROM .... )
Estos detalles ya no son un problema de vb sino de bases de datos y más específicamente de falta de conocimientos del lenguaje de consulta a bases de datos...
lineare:
Si tenias razon estaba haciendo mal la consulta ya funciona correctamente gracias, creo que tendre que estudiar un poco sql :P muchisimas gracias por tu tiempo y paciencia ^_^
Navegación
[*] Página Anterior
Ir a la versión completa