Ich spiele mit Win32com.client für Python um zu versuchen, eine Zeile in eine MS Access-Tabelle schreiben/einfügen. Ich habe ein Beispiel gefunden, wie man eine Access-Tabelle here verbindet und abfragt. Grundsätzlich ihr Code leicht für meinen eigenen Gebrauch modifiziert ist:Schreiben Sie in MS Access-Tabelle, Python win32com
import win32com.client
connection = win32com.client.Dispatch(r'ADODB.Connection')
DSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=c:\\testdb.mdb;'
connection.Open(DSN)
recordset = win32com.client.Dispatch(r'ADODB.Recordset')
recordset.Open('SELECT * FROM Table1', connection, 1, 3)
fields_dict = {}
for x in range(recordset.Fields.Count):
fields_dict[x] = recordset.Fields.Item(x).Name
print fields_dict[x], recordset.Fields.Item(x).Value
Also das mir sagt, wie eine select-Anweisung auf der Access-Tabelle auszuführen. Ich möchte in der Lage sein, Zeilen und Daten in die Tabelle zu schreiben. Wenn ich win32com für MS Office Produkte benutze, tendiere ich dazu, in die MSDN pages einzutauchen und zu versuchen, den VBA-Code für Python-Code zu interpretieren, aber dieser hat mich ein bisschen gefesselt. Das Paar, das ohne Beispiele im Internet nach langen Suchen gefunden hat, hat mich zum zweiten Mal raten lassen, ob das möglich ist oder nicht? hoffentlich hat jemand da draußen schon mal damit gespielt und hat einen Vorschlag.
Wenn Sie eine 'SELECT' Anweisung mit ausführen win32com dann können Sie eine' INSERT' Anweisung auszuführen, obwohl für ein 'ADODB.Command' Objekt der Parameter spezifiziert wird etwas weitschweifig . Ein üblicherer Ansatz besteht darin, pyodbc (oder vielleicht pypyodbc) mit dem Access ODBC-Treiber für solche einfachen CRUD-Operationen zu verwenden und win32com zu speichern, um Manipulationen der Datenbank unter Verwendung von Access DAO durchzuführen, z. B. um strukturelle Änderungen an Access DDL vorzunehmen Kann nicht bewältigen. –
Danke Gord. Ich würde gerne bei win32com bleiben, wenn ich kann. Ich habe Pyodbc auf meinen Reisen durch meine Suchen angeschaut. Dorthin werde ich als nächstes gehen, wenn das nicht klappt. – Mike
Um Huckepack @ GordThompson's Kommentar, MS Access ist sowohl eine Back-End-Datenbank und eine GUI. Exe-Anwendung. Wenn Sie beabsichtigen, SQL-Anweisungen wie das Einfügen von Zeilen auszuführen, betrachten Sie db-API-Verbindungen (z. B. odbc) wie bei anderen RDMS: SQLite, SQL Server, MySQL usw. Wenn Sie Formulare/Berichte/Makros/Module anpassen müssen, führen Sie App-Methoden aus wie 'DoCmd. *' oder andere Anwendungsebenen verwenden dann die COM-Schnittstelle. Denken Sie daran, VBA ist eine externe Komponente zu Access.exe und COM-verbindet wie Sie mit Python sind! – Parfait