私は、Win32com.clientでpythonを使ってMS Accessテーブルに行を書き込み/挿入しようとしています。私はどのようにAccessテーブルhereに接続してクエリするのかの例を見出しました。基本的に、少し私自身の使用のために改変彼らのコードは次のとおりです。MSアクセステーブルに書き込む、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
だからこれは、AccessのテーブルにSELECT文を実行する方法を私に伝えます。私はテーブルに行とデータを書くことができるようにしたいと思います。 MS Office製品にwin32comを使用する場合、私はMSDN pagesに潜入し、PythonコードのVBAコードを解釈しようとしますが、これは私に少し手錠がかけられています。インターネットで長時間の検索をしても例が見つからないというカップルは、これが可能かどうかをもう一度推測しました。うまくいけば、そこに誰かが前にこれと遊んで、提案があります。その後、
あなたは 'ADODB.Command'オブジェクトのパラメータを指定すると、やや冗長になりますが、あなたは、あまりにも' INSERT'文を実行することができますwin32comと 'SELECT'ステートメントを実行することができる場合。より一般的なアプローチは、Access ODBCドライバでpyodbc(またはおそらくpypyodbc)を使用して、そのような簡単なCRUD操作を実行し、Access DAOを使用してデータベースの低レベル操作を実行するためにwin32comを保存することです扱うことができません。 –
おかげでゴード。もし私ができるなら、私はwin32comに固執したいと思います。私は私の検索を通して私の旅行のpyodbcを見ました。これがうまくいかなければ、次に行くつもりです。 – Mike
@ GordThompsonさんのコメントにピギーバックするために、MS AccessはバックエンドデータベースとGUI .exeアプリケーションの両方です。フォームやレポート/マクロ/モジュールを調整する必要がある場合は、Accessアプリのメソッドを実行してください(例:odbc)。他のRDMSと同じように、SQLite、SQL Server、 'DoCmd。*'、または他のアプリケーション層のように、COMインタフェースを使用します。また、VBAはAccess.exeの外部コンポーネントであり、COM接続はPythonのように接続することを忘れないでください! – Parfait