import pypyodbc
import win32com.client
path=r'C:\Users\Administrator\Desktop\test.mdb'# 数据库文件
#===========================获取单个表结构信息=====================================================
con = win32com.client.Dispatch(r'ADODB.Connection')
DSN = 'PROVIDER=Microsoft.ACE.OLEDB.12.0;DATA SOURCE=' + path + ';'
con.Open(DSN)
rs = win32com.client.Dispatch(r'ADODB.Recordset')
rs.Cursorlocation = 3
rs.Open('SELECT TOP 1 * FROM table1', con)
for i in range(0, rs.Fields.Count):
print(rs.Fields[i].Name + ' - ' + str(rs.Fields[i].Type) + ' - ' + str(rs.Fields[i].DefinedSize))
#===========================获取所有表名称=========================================================
conn = pypyodbc.connect(r"Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + path + ";Uid=;Pwd=;")
cursor = conn.cursor()
SQL = "SELECT name FROM MSYSOBJECTS WHERE TYPE=1 AND NAME NOT LIKE 'Msys*'"#
for row in cursor.execute(SQL):
print(row)
#===========================获取某个表数据内容======================================================
SQL_value = 'select * from admin'#
for row in cursor.execute(SQL_value):
print(row)
#===========================获取统计表数据==========================================================
SQL_value = 'select count(*) from admin'#
cursor.execute(SQL_value)
SUM=cursor.fetchall()[0][0]
print(SUM)
#===========================修改表中数据============================================================
edit_SQL='update table1 set name=\'逍遥子\''
cursor.execute(edit_SQL)
cursor.commit()
#===========================清空一列数据============================================================
clear_SQL='update table2 set name = null'
cursor.execute(clear_SQL)
cursor.commit()
#===========================删除表字段============================================================
delete_field_SQL='alter table table3 drop column name'
cursor.execute(delete_field_SQL)
cursor.commit()
#===========================增加表字段============================================================
add_field_SQL='alter table table4 add column AAA text '
cursor.execute(add_field_SQL)
cursor.commit()
#===========================清空表============================================================
qingkong_SQL='delete * from table5'
cursor.execute(qingkong_SQL)
cursor.commit()
conn.close()