** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Consultas y Creacion de tablas desde Visual Basic
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Consultas y Creacion de tablas desde Visual Basic

 Responder Responder
Autor
Mensaje
kkodalton Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 01/Diciembre/2011
Localización: España
Estado: en línea
Puntos: 17
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita kkodalton Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Consultas y Creacion de tablas desde Visual Basic
    Enviado: 19/Junio/2019 a las 10:24
Hola



A ver si alguien puede ayudarme:

Necesito crear una consulta en un procedimiento de este tipo:

SELECT a,b INTO tablaNueva IN 'c:\datos\000002.mdb'
FROM tabla;

Siendo tablanueva , tabla y destino ('c:\datos\000002.mdb') variables que las asigno en el procedimento, pero el problema lo tengo con las Comillas simples (‘ ’) del IN ,

Dim sql as string

Sql=”select a,b into “ & tablaNueva & “ IN” ....
Docmd.runsql(sql)

Gracias por todo
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: en línea
Puntos: 11055
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 19/Junio/2019 a las 11:09
SELECT a,b INTO [c:\datos\000002.mdb].[TablaNueva] FROM Tabla
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
fcoval Ver desplegable
Habitual
Habitual


Unido: 19/Enero/2013
Estado: Sin conexión
Puntos: 132
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita fcoval Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 19/Junio/2019 a las 14:24
Con permiso de Mihura ... lo pongo mas mascado en forma de variables que es lo que buscas

Cita
Dim sql As String
Dim tblNueva As String, tblBD As String, strRutaBD As String

tblNueva = "tablaNueva"
tblBD = "tabla"
strRutaBD = "c:\datos\000002.mdb"

sql = "SELECT a, b INTO [" & tblNueva & "] IN '" & strRutaBD & "' FROM [" & tblBD & "]"

DoCmd.RunSQL (sql)
Arriba
kkodalton Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 01/Diciembre/2011
Localización: España
Estado: en línea
Puntos: 17
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita kkodalton Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 20/Junio/2019 a las 14:42
Gracias a los dos, en especial a fcoval que es como me interesaba, mañana lo pruebo.
Arriba
kkodalton Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 01/Diciembre/2011
Localización: España
Estado: en línea
Puntos: 17
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita kkodalton Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 17/Julio/2019 a las 11:56
Buenas de nuevo.

Lo acabo de probar y me da error, me podeis ayudar?

dim qtable as dao.querydef


Set qtable = dbs.CreateQueryDef("tabla_" & up)

qtable.sql = "SELECT * INTO " & tblNueva & " IN '" & strRutaBD & "' FROM " & up     ' Aqui es donde me da el error que os he comentado

DoCmd.OpenQuery ("tabla_" & up)



error 3126
corchetes no validos en el nombre 'c:\datos\EQ\03\00012.mdb'
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: en línea
Puntos: 11055
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 17/Julio/2019 a las 12:18
Pon un punto de interrupción, copias la cadena completa "SELECT * .... y en la ventana inmediato averigua su valor y postéalo aquí.

Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
kkodalton Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 01/Diciembre/2011
Localización: España
Estado: en línea
Puntos: 17
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita kkodalton Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 17/Julio/2019 a las 13:01
Me da error a continuacion ....
Os explico , antes creo una consulta de paso a traves de SQL, donde me la crea y se ejecuta sin problemas. Pero el resultado de esa consulta la quiero guardar en una tabla y para eso lo que hago es crear esta consulta que lo que hace es llamar a la consulta de paso a traves, me explico?
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: en línea
Puntos: 11055
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 17/Julio/2019 a las 13:17
Si la consulta se ejecuta en el servidor de SQL, este no entiende la notación:

 IN 'c:\datos\000002.mdb' FROM tabla

Esa consulta la tienes que ejecutar en el 'lado Access'.


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
kkodalton Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 01/Diciembre/2011
Localización: España
Estado: en línea
Puntos: 17
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita kkodalton Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 17/Julio/2019 a las 13:55
Todo lo ejecuto desde accés.
tabla hace referencia a la consulta de paso a traves, que esta si la ejecuto sola funciona.
Quizas tengas razon y no se pueda hacer
Arriba
kkodalton Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 01/Diciembre/2011
Localización: España
Estado: en línea
Puntos: 17
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita kkodalton Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 17/Julio/2019 a las 13:56
Y entonces como puedo ejecutar una consulta de paso a traves y el resultado me lo guarde en una tabla de accés?
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: en línea
Puntos: 11055
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 17/Julio/2019 a las 14:05
Bienvenido a uno de los problemas de trabajar con SQL.

En este caso estás trabajando con tablas que son de entorno Access, haz la consulta directamente en Access.
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
kkodalton Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 01/Diciembre/2011
Localización: España
Estado: en línea
Puntos: 17
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita kkodalton Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 18/Julio/2019 a las 08:30
Hola de nuevo

si las consultes son fijas , desde accés se ejecuta y se crea la tabla.

Si tengo una consulta de paso a traves, llamada por ejemplo c_dia,con la siguiente sentencia:

select sysdate from dual;

y otra consulta, que lo que hace es crear una tabla con el resultado de la consulta de paso a traves:

select * into tbldia from c_dia;

Al ejecutar esta ultima consulta se crea una tabla llamada tbldia con el dia actual.

Por tanto si las consultas son fijas, funciona. Porque no ha de funcionar si lo haces a traves de vb?
Ese es mi problema

Gracias
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: en línea
Puntos: 11055
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 18/Julio/2019 a las 08:38
Porque la base de datos SQL NO ve los datos que hay en access.

Si necesitas los datos en SQL tendrás que crear una tabla en la BD SQL y cargarla mediante un recordset ejecutado en access que lea la tabla access y la cargue en la que hay en SQL.

Pero, en vez de dar tantas vueltas teóricas, ¿por qué no explicas que es lo que tienes y qúe es lo que quieres conseguir?
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable