用Python 点击开始按钮 打开窗口选择多个MDB数据点击确定合并成一个MDB数据库的程序
以下是Python代码实现:
import tkinter as tk
from tkinter import filedialog
import os
import shutil
import win32com.client
root = tk.Tk()
root.withdraw()
# 打开文件选择对话框,选择多个MDB文件
file_paths = filedialog.askopenfilenames(filetypes=[("MDB files", "*.mdb")])
# 如果没有选择文件,直接退出程序
if not file_paths:
exit()
# 创建目标MDB文件
target_file_path = filedialog.asksaveasfilename(defaultextension=".mdb", filetypes=[("MDB files", "*.mdb")])
if not target_file_path:
exit()
# 复制第一个MDB文件到目标文件
first_mdb_path = file_paths[0]
shutil.copy(first_mdb_path, target_file_path)
# 打开目标文件
access = win32com.client.Dispatch("Access.Application")
access.Visible = False
access.OpenCurrentDatabase(target_file_path)
# 依次打开其他MDB文件,并把其中的所有表复制到目标文件中
for file_path in file_paths[1:]:
db = win32com.client.Dispatch("DAO.DBEngine.36")
source_db = db.OpenDatabase(file_path)
for tbl in source_db.TableDefs:
access.DoCmd.TransferDatabase(TransferType=0, DatabaseType="Microsoft Access", \
DatabaseName=source_db.Name, ObjectType=dao.ObjectTypeEnum.dbTable, \
Source=tbl.Name, Destination=tbl.Name)
source_db.Close()
# 关闭目标文件
access.CloseCurrentDatabase()
access.Quit()
该程序使用了tkinter库来创建GUI窗口,通过filedialog模块选择多个MDB文件和目标MDB文件,使用shutil库复制第一个MDB文件到目标文件,然后使用win32com.client库打开目标MDB文件和其他MDB文件,通过DoCmd.TransferDatabase方法把其他MDB文件中的表复制到目标MDB文件中,并最终关闭目标MDB文件。
注意:该程序需要依赖Windows系统和Microsoft Access软件,否则可能无法运行
原文地址: https://www.cveoy.top/t/topic/cjrc 著作权归作者所有。请勿转载和采集!