Access - Grabar de una consulta a una tabla

 
Vista:

Grabar de una consulta a una tabla

Publicado por switch.2h (13 intervenciones) el 29/03/2007 17:42:53
hola amigos:
ojala que alguen me pueda ayudar, como puedo hacer para que los registros que tengo en una consulta se guarden en una tabla mysql (o en una tabla access)(la coneccion a mysql es por modulo), ¿si es que se puede, se podra hacer por codigo sql?

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
Imágen de perfil de Alejandro

Guardar registros de una consulta en una tabla MySQL o en una tabla Access

Publicado por Alejandro (4142 intervenciones) el 07/08/2023 21:20:05
Para guardar los registros de una consulta en una tabla MySQL o en una tabla Access, puedes seguir estos pasos generales:

1. Establece la conexión a la base de datos MySQL: Utiliza un módulo en VBA para establecer la conexión a la base de datos MySQL. Puedes hacerlo utilizando la librería "MySQL ODBC" o "MySQL Connector/ODBC" para establecer la conexión y realizar operaciones SQL en la base de datos.

2. Ejecuta la consulta y guarda los registros: Utiliza SQL en el módulo para ejecutar la consulta que deseas guardar en la tabla MySQL o Access. Luego, recorre los registros resultantes y guárdalos uno por uno en la tabla destino.

A continuación, te muestro un ejemplo de cómo hacerlo utilizando una conexión a MySQL y VBA:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Sub GuardarRegistrosEnMySQL()
    Dim con As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim strSQL As String
 
    ' Establecer la conexión a MySQL
    Set con = New ADODB.Connection
    con.ConnectionString = "DRIVER={MySQL ODBC 8.0 Unicode Driver};SERVER=nombre_servidor;DATABASE=nombre_base_datos;UID=usuario;PWD=contraseña;"
    con.Open
 
    ' Ejecutar la consulta y obtener el recordset
    strSQL = "SELECT * FROM Consulta" ' Reemplaza "Consulta" por el nombre de tu consulta
    Set rs = con.Execute(strSQL)
 
    ' Guardar los registros en una tabla de MySQL
    Do While Not rs.EOF
        strSQL = "INSERT INTO TablaDestino (Campo1, Campo2, Campo3) VALUES ('" & rs!Campo1 & "', '" & rs!Campo2 & "', '" & rs!Campo3 & "')" ' Reemplaza "TablaDestino" y los nombres de los campos
        con.Execute strSQL
        rs.MoveNext
    Loop
 
    ' Cerrar la conexión y liberar recursos
    rs.Close
    con.Close
    Set rs = Nothing
    Set con = Nothing
End Sub

Recuerda modificar las cadenas de conexión y los nombres de las tablas y campos según tu base de datos y consulta.

Si deseas guardar los registros en una tabla Access en lugar de una tabla MySQL, puedes hacerlo de manera similar utilizando SQL y la conexión a la base de datos Access.

Espero que esta guía te sea útil para guardar registros de una consulta en una tabla MySQL o Access. ¡Buena 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