メモ

主にプログラミング系の備忘録

PythonでAccessを操作

import win32com.client
import pandas as pd

cn = win32com.client.gencache.EnsureDispatch('ADODB.Connection')
cn.Open( "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:/DB.accdb" )

rs = win32com.client.Dispatch('ADODB.Recordset')
rs.Open("T",cn,win32com.client.constants.adOpenDynamic,win32com.client.constants.adLockOptimistic)

#DELETE
cn.Execute("DELETE * FROM T")

#データ再登録
df = pd.read_csv("a.csv")
for line in df.values:
    rs.AddNew()
    for i,col in enumerate(line):
        rs.Fields(i).Value = col
    rs.Update()

#参照サンプル
while not rs.EOF:
    for i in range(0,rs.Fields.Count -1):
        print(str(i) + ":" + str(rs.Fields(i).Name) + ":" + str(rs.Fields(i).Value))
    rs.MoveNext()


rs.Close()
cn.Close()