¿Cómo crear una consulta permanente de MS Access con Python 3.5.1?
Tengo alrededor de 40 bases de datos de MS Access y tengo algunos problemas si es necesario crear o transferir una de MS Access Query (como objeto) de una base de datos a otra base de datos. Así que traté de resolver este problema conpyodbc
pero como vipyodbc
no admite la creación de una nueva consulta permanente de MS Access (objeto). Puedo conectarme a db, crear o eliminar tablas / filas, pero no puedo crear y guardar una nueva consulta.
import pyodbc
odbc_driver = r"{Microsoft Access Driver (*.mdb, *.accdb)}"
db_test1 = r'''..\Test #1.accdb'''
db_test2 = r'''..\Test #2.accdb'''
db_test3 = r'''..\Test #3.accdb'''
db_test4 = r'''..\Test #4.accdb'''
db_test_objects = [db_test1, db_test2, db_test3, db_test4]
odbc_conn_str = "Driver=%s;DBQ=%s;" % (odbc_driver, db_file)
print (odbc_conn_str)
conn = pyodbc.connect(odbc_conn_str)
odbc_cursor = conn.cursor()
NewQuery = "CREATE TABLE TestTable(symbol varchar(15), leverage double)"
odbc_cursor.execute(NewQuery)
conn.commit()
conn.close()
SO, Cómo crear y guardar MS Access Querycomo objetos de python? Traté de buscar información en Google, pero las respuestas estaban relacionadas conEjecuta código SQL.
En VBA, este código se ve así:
Public Sub CreateQueryDefX()
Dim base(1 To 4) As String
base(1) = "..\Test #1.accdb"
base(2) = "..\Test #2.accdb"
base(3) = "..\Test #3.accdb"
base(4) = "..\Test #4.accdb"
For i = LBound(base) To UBound(base)
CurrentBase = base(i)
Set dbo = OpenDatabase(CurrentBase)
With dbo
Set QueryNew = .CreateQueryDef("TestQuery", _
"SELECT * FROM TestTable")
RefreshDatabaseWindow
.Close
End With
Next i
RefreshDatabaseWindow
End Sub
Perdón por mi inglés, no es mi nativo :)
Por cierto, sé cómo resolver esto con VBA, pero estoy interesado en resolver esto con Python.
Gracias.