Visual Basic - Ayuda para un duro con base de datos

Life is soft - evento anual de software empresarial
 
Vista:

Ayuda para un duro con base de datos

Publicado por lenilax (165 intervenciones) el 06/06/2002 16:24:12
Estimados amigos del foro. No se imaginan cuanto he aprendido con su ayuda. Por eso me siento muy agradecido :-)
Sin embargo, soy muy duro de mollera. Hace dias que no puedo salir de un pantano que se me ha armado con el tema de bases de datos :-(
Nesecito hacer un motor de busqueda. He dado vuelta este foro y otros buscando el codigo que nesecito y, aunque he encontrado mucho material, no he podido adaptarlo a mi proyecto y siempre termino en error.
Trabajo con ADO y a puro codigo. He puesto lo siguiente en la parte superior de un modulo:

Public MiConexion As New ADODB.Connection
Public MyRst As New ADODB.Recordset

En el form load pongo lo siguiente:

MiConexion.Open "Provider=MSDataShape;Data Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\..........\db0.mdb"

Luego, frente a un evento cualquiera pongo:

MyRst.Open "Select * from operations", MiConexion, adOpenDynamic, adLockReadOnly, adCmdText

Pero hasta aqui no mas llego. Lo que nesecito es buscar, para hacerlo simple, todos los registros que contengan "Gi" en la tabla "operations" de la base de datos ligada a Miconexion. He probado con:

MyRst.Open "Select * From operations where Customer Name like '*gi*'"

o

MyRst.open "select * from operations where Customer Name like ´gi%´"

y muchas otras. Los errores son, o bien de codigo, o bien de conexion cerrada, o funcion no permitida, etc.
Si algun alma programadora y caritativa pudiera compartir conmigo su conocimiento de como hacerlo paso a paso me sacaria de un gran problema.
Muchas pero muchas 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

RE:Ayuda para un duro con base de datos

Publicado por Victor (14 intervenciones) el 06/06/2002 16:41:19
Prueba a poner entre corchetes el nombre del campo [Customer Name] ...
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

RE:Ayuda para un duro con base de datos

Publicado por lenilax (165 intervenciones) el 06/06/2002 16:59:36
no funciona. 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

RE:Ayuda para un duro con base de datos

Publicado por Victor (14 intervenciones) el 06/06/2002 17:35:42
Bein. No problem
Lo que yo hago en estos casos es poner un punto de interrupción donde genero sentencia SQL. Copio la sentencia en el portapabeles. Abro la bd. Creo una nueva consulta en modo sql. Ejecuta hasta encontrar el error y genero la sentencia sql correcta.
P.e.
Dim cadenaSQL as String
cadenaSQL = "SELECT * FROM Operations WHERE Ucase[Customer Name] LIKE '*GI*'"
rsX.Open cadenaSQL, MiConexion, etc....

Suerte
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

RE:Ayuda para un duro con base de datos

Publicado por lenilax (165 intervenciones) el 06/06/2002 17:49:05
Victor, hice lo siguiente:
MyRst.Open \"SELECT * FROM Operations WHERE Ucase[Customer Name] LIKE \'*GI*\'\", MiConexion, adOpenDynamic, adLockReadOnly, adCmdText
y el error que da dice:
Syntax error(missing operator) in query expression \'Ucase[Customer Name]LIKE\'*GI*\"
Por favor, no te canses :-)
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

RE:Ayuda para un duro con base de datos

Publicado por alberto (278 intervenciones) el 07/06/2002 09:03:44
En principio el problema que comentas es de sintaxis en la sentencia SQL y
MyRst.Open "Select * From operations where [Customer Name] like '*gi*'", o MyRst.Open "Select * From operations where [Customer Name] like '%gi%'"debería ser correcto, siempre dependiendo del tipo de base de datos.
En cuanto al código completo, como cuando ejecutas dicha sentencia, ya has abierto MyRst antes de ejecutarla deberias cerrar MyRst (MyRst.Close)
Un Saludo.
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

RE:Ayuda para un duro con base de datos

Publicado por lenilax (165 intervenciones) el 07/06/2002 16:32:01
Gracias alberto. Ahora me funciona.
Muchas 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