Wie erstelle ich eine permanente MS Access-Abfrage mit Python 3.5.1?

Ich habe ungefähr 40 MS Access-Datenbanken und habe einige Probleme, wenn ich eine MS Access-Abfrage (wie ein Objekt) von einer Datenbank zu einer anderen Datenbank erstellen oder übertragen muss. Also habe ich versucht, dieses Problem mit @ zu löspyodbc aber .. wie ich sahpyodbc unterstützt nicht das Erstellen neuer, permanenter MS Access-Abfragen (Objekte). Ich kann eine Verbindung zur Datenbank herstellen, Tabellen / Zeilen erstellen oder löschen, aber keine neue Abfrage erstellen und speichern.

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, So erstellen und speichern Sie eine MS Access-Abfrageähnliche Objekte von Python? Ich habe versucht, in Google nach Informationen zu suchen, aber die Antworten waren mit @ verknüpf SQL-Code ausführen.

uf VBA sieht dieser Code folgendermaßen aus:

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

Tut mir leid für mein Englisch, es ist nicht meine Muttersprache:)

Übrigens weiß ich, wie man das mit VBA löst, aber ich bin daran interessiert, das mit Python zu lösen.

Vielen Dank

Antworten auf die Frage(4)

Ihre Antwort auf die Frage