Foros del Web » Programación para mayores de 30 ;) » Programación General »

VB: Problema con OpenRecordSet

Estas en el tema de VB: Problema con OpenRecordSet en el foro de Programación General en Foros del Web. El siguiente código falla (el error que da es "Error 13. No coinciden los tipos") Dim db as Database Dim rs as Recordset Set db ...
  #1 (permalink)  
Antiguo 05/03/2003, 15:40
 
Fecha de Ingreso: diciembre-2002
Mensajes: 50
Antigüedad: 21 años, 5 meses
Puntos: 0
VB: Problema con OpenRecordSet

El siguiente código falla (el error que da es "Error 13. No coinciden los tipos")

Dim db as Database
Dim rs as Recordset


Set db = DBEngine.Workspaces(0).OpenDatabase("c:\basedatos. mdb")

existefechaSQL = "SELECT * FROM " & tabla & _
" WHERE fecha LIKE '" & mifecha & "'"

Set rs = db.OpenRecordset(existefechaSQL) '¡¡ aqui da el error !!

' tabla es una vble. de tipo string que contiene el nombre de la tabla
' fecha es un campo de esa tabla
' mifecha es la fecha elegida por el usuario

' El error que da parece indicar que existefechaSQL no es un parámetro válido. ¿Por qué? ¿Qué puedo hacer para poder leer el recordset?

' Mi proveedor de BD es Microsoft Jet 4.0. Tengo señalada en referencias DAO 3.51 Object Library.
  #2 (permalink)  
Antiguo 05/03/2003, 18:39
Avatar de Zeratul  
Fecha de Ingreso: marzo-2003
Ubicación: Palencia, España
Mensajes: 64
Antigüedad: 21 años, 2 meses
Puntos: 0
La sentencia sql esta bien si los tipos de datos de las variables y de la base de datos son iguales. A mi me funciona el codigo de abajo (lo he probado) pero he tenido que pasar la bd de access2000 a access97. Ya te dije en otro mensaje que DAO 3.5 no funciona con microsoft jet 4.0 (access2000) De todos modos prueba con microsoft DAO 3.6, NRLABS dijo que si funcionaba. Es mejor pasarse a ADO que no usa jerarquia de objetos y es mas "comodo" o trabajar con access 97. Tienes algun motivo para usar DAO?

Private Sub Form_Load()
Dim db As Database
Dim rs As Recordset
Dim existefechaSQL As String
Dim tabla As String
Dim mifecha As String
tabla = "libros"
mifecha = "681.3"

Set db = DBEngine.Workspaces(0).OpenDatabase("db.mdb")

existefechaSQL = "SELECT * FROM " & tabla & _
" WHERE cantolibro LIKE '" & mifecha & "'"

Set rs = db.OpenRecordset(existefechaSQL)
End Sub

Saludos y Suerte
  #3 (permalink)  
Antiguo 06/03/2003, 04:59
 
Fecha de Ingreso: diciembre-2002
Mensajes: 50
Antigüedad: 21 años, 5 meses
Puntos: 0
Sigue el problema !!

No dispongo de DAO 3.6. Sólo de DAO 3.51 Object Library.

Si hago la conexion con Microsoft Jet 3.51 me da error "La prueba de conexión falló debido a un error al inicializar proveedor. No se puede abrir un BD creada con una versión anterior de la aplicación"

No se que hacer. Estoy desesperada.
  #4 (permalink)  
Antiguo 06/03/2003, 06:43
 
Fecha de Ingreso: febrero-2003
Mensajes: 40
Antigüedad: 21 años, 2 meses
Puntos: 0
Para que te funcione con Access 2000 tenés que bajarte el Servis Pack 5 de Microsoft. Este corrige este error y otros más.
__________________
Yayi :adios:
  #5 (permalink)  
Antiguo 06/03/2003, 14:22
 
Fecha de Ingreso: diciembre-2002
Mensajes: 50
Antigüedad: 21 años, 5 meses
Puntos: 0
Sigo con el problema

La base de datos está creada con el administrador visual que tiene el entorno de VB 6. Es una BD pequeña. El archivo que crea es un .mdb
  #6 (permalink)  
Antiguo 07/03/2003, 06:05
 
Fecha de Ingreso: febrero-2003
Mensajes: 40
Antigüedad: 21 años, 2 meses
Puntos: 0
Si el problema es la fecha. Fijate en la ayuda dee access y fijate que la fecha la toma de esta manera #15/02/2003#.
Asì que si una sentencia en sql sería:

"SELECT * FROM Tabla WHERE Fecha = #15/02/2003#"

En todo caso, a la fecha que queres guardar agregarle el símbolo cardinal.

Espero que te sirva esto.
Saludos y suerte.
__________________
Yayi :adios:
  #7 (permalink)  
Antiguo 07/03/2003, 07:46
 
Fecha de Ingreso: diciembre-2002
Mensajes: 50
Antigüedad: 21 años, 5 meses
Puntos: 0
Sigue con el problema

Vuelvo a repetir, la fecha NO es una vble. de tipo Date, sino una vble. de tipo String. Luego ahí no hay problema. Y la base de datos es Access 97 y no Access 2000.

Espero que esto aclare mi pregunta.
  #8 (permalink)  
Antiguo 07/03/2003, 13:32
Avatar de Zeratul  
Fecha de Ingreso: marzo-2003
Ubicación: Palencia, España
Mensajes: 64
Antigüedad: 21 años, 2 meses
Puntos: 0
No se me ocurre que puede pasar. Si quieres puedes mandarme el codigo fuente y la base de datos (comprimidos) a mi direccion y le doy una hojeada.
Saludos.
  #9 (permalink)  
Antiguo 07/03/2003, 13:37
Avatar de Zeratul  
Fecha de Ingreso: marzo-2003
Ubicación: Palencia, España
Mensajes: 64
Antigüedad: 21 años, 2 meses
Puntos: 0
Mi mail es
[email protected]
Se me ovido ponerlo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:01.