Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

tabla mdb con nombre order imposible accederla

Estas en el tema de tabla mdb con nombre order imposible accederla en el foro de Visual Basic clásico en Foros del Web. hola gente me encontre con un error extraño busco acceder desde VB6 a un mdb que usa un programa de facturacion entre muchas tablas hay ...
  #1 (permalink)  
Antiguo 20/08/2011, 09:57
 
Fecha de Ingreso: abril-2010
Mensajes: 25
Antigüedad: 14 años
Puntos: 0
tabla mdb con nombre order imposible accederla

hola gente
me encontre con un error extraño
busco acceder desde VB6 a un mdb que usa un programa de facturacion
entre muchas tablas hay una que se llama

order



porcion de codigo
Código vb:
Ver original
  1. cn.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;" & _
  2.     "Extended Properties=" & _
  3.     "DSN=MS Access Database;DBQ=C:\BASE\test.mdb;DefaultDir=C:\BASE;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;UID=admin; Password=In815hLpZ7HmJMB;"""
  4.  
  5.     cn.CursorLocation = adUseClient
  6.     ' abre la conexión a la base de datos Nwind de ejemplo de visual basic
  7.    cn.Open
  8.    
  9.     ' Nuevo recordset
  10.    Set rs = New ADODB.Recordset
  11.     ' abre la tabla clientes
  12.    rs.Open "order", cn, adOpenStatic, adLockOptimistic, adCmdTable



ese codigo me da un error

error '-2147217900 (8000e14)' en tiempo de ejecucion:

[Microsoft][Controlador OBDC Microsoft Access] Error de sintaxis en la clausula FROM


si voy a la mdb y le cambio el nombre a la tabla order por orders, y vuelvo a probar poniendo "orders" en el codigo VB6 ahi la accede sin ningun problema va perfecto

pero el otro software propietario usa en esa misma tabla "order" de esa mdb y no puedo cambiarla a orders o ventas etc para saltearme este problema y continuar con mi proposito.


porque se sucede ese error cuando la tabla solo se llama order?
como puedo solucionarlo?


SALUDOS.
  #2 (permalink)  
Antiguo 22/08/2011, 03:26
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 18 años, 5 meses
Puntos: 13
Respuesta: tabla mdb con nombre order imposible accederla

Hola

Suponiendo que la cadena de conexión esta bien, prueba a abrir el recordset con una sentencia SQL, es decir:

Cita:
rs.Open "select * from order", cn, adOpenStatic, adLockOptimistic
--Saludos--
  #3 (permalink)  
Antiguo 22/08/2011, 15:43
 
Fecha de Ingreso: abril-2010
Mensajes: 25
Antigüedad: 14 años
Puntos: 0
Respuesta: tabla mdb con nombre order imposible accederla

hola
antes de responder agradesco la respuesta.


acabo de probar entendi la sugerencia y no funciona tampoco asi
me muestra el mismo error al correr la aplicacion

lo extraño me sigue llamando la atencion que solo se sucede cuando se llama la tabla :
Order

si la renombro y la llamo por ejemplo ventas u orders funciona de la forma normal como yo la se
entonces sigo sin resolver este problema nose si es un bug de MSDASQL.1
una mala filtracion mmm nose.
probe usar una variable del tipo string para no poner order pero por de alguna manera logica es lo mismo... y no funciono.
  #4 (permalink)  
Antiguo 23/08/2011, 01:07
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 18 años, 5 meses
Puntos: 13
Respuesta: tabla mdb con nombre order imposible accederla

Hola

Que no funcione con el nombre Order puede ser porque sea una palabra reservada (no se si por access o por VB) y por eso de problemas.

Otra idea que se me ocurre es que realices la consulta en access (desde la opción de consultas) desde vista diseño, una vez realizada la consulta en vista diseño, ponlo en Vista SQL y copia la sentencia generada por access para ponerla en VB6.

La idea es que si es una palabra reservada igual la mete entre corchetes o lo pone de una forma distinta, no se, por probar...

--Saludos--
  #5 (permalink)  
Antiguo 23/08/2011, 08:15
 
Fecha de Ingreso: abril-2010
Mensajes: 25
Antigüedad: 14 años
Puntos: 0
Respuesta: tabla mdb con nombre order (como accederla)

Por un momento me marie con la respuesta sin embargo te segui y te entendi
y con un poco de de imaginacion poniendo un asterisco funciono ahora anda perfecto.

SOLUCION

ERROR (antes era)
'rs.Open "Order", cn, adOpenStatic, adLockOptimistic, adCmdTable

LA SOLUCION ES:
rs.Open "SELECT Order.* FROM [Order];", cn, adOpenStatic, adLockOptimistic

nose si es lo correcto pero es una solucion valida
hasta aca solucionado insomnia... gracias amigo.
espero que ha alguien mas le sirva esto.

Última edición por pablino76; 23/08/2011 a las 08:27

Etiquetas: basic, imposible, mdb, nombre, order, sql, tabla, vb, visual
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 19:39.