Como criar uma consulta permanente ao MS Access pelo Python 3.5.1?
Eu tenho cerca de 40 bancos de dados do MS Access e tenho alguns problemas se precisar criar ou transferir uma consulta do MS Access (como objeto) de um banco de dados para outro banco de dados. Então, eu tentei resolver esse problema compyodbc
mas .. como eu vipyodbc
não suporta criar nova consulta permanente do MS Access (objeto). Posso me conectar ao banco de dados, criar ou excluir tabelas / linhas, mas não posso criar e salvar nova 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, Como criar e salvar o MS Access Querycomo objetos do python? Tentei pesquisar informações no Google, mas as respostas estavam relacionadas aExecutar código SQL.
No VBA, esse código se parece com:
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
Desculpe pelo meu inglês, não é meu nativo :)
A propósito, eu sei como resolver isso pelo VBA, mas estou interessado em resolver isso pelo python.
Obrigado.