以下是一个示例代码,实现了点击开始按钮打开文件选择窗口,选择多个 MDB 文件,点击确定后合并数据库的功能:

import tkinter as tk
from tkinter import filedialog
import os
import pandas as pd
import pyodbc

class MergeMDB:
    def __init__(self, master):
        self.master = master
        master.title('合并MDB数据库')

        # 添加开始按钮
        self.start_button = tk.Button(master, text='开始', command=self.start)
        self.start_button.pack()

    def start(self):
        # 打开文件选择窗口,选择多个MDB文件
        filetypes = (('MDB files', '*.mdb'), ('All files', '*.*'))
        filenames = filedialog.askopenfilenames(title='选择MDB文件', filetypes=filetypes)

        if not filenames:
            return  # 如果用户没有选择文件,直接返回

        # 合并MDB文件
        merged_df = pd.DataFrame()
        for filename in filenames:
            # 使用pyodbc读取MDB文件中的表格数据
            conn_str = f'DRIVER={{Microsoft Access Driver (*.mdb, *.accdb)}};DBQ={filename}'
            with pyodbc.connect(conn_str) as conn:
                cursor = conn.cursor()
                cursor.execute('SELECT * FROM MSysObjects WHERE Type=1 AND Flags=0')
                table_names = [row.table_name for row in cursor.fetchall()]

                for table_name in table_names:
                    query = f'SELECT * FROM [{table_name}]'
                    df = pd.read_sql(query, conn)
                    merged_df = merged_df.append(df)

        # 保存合并后的数据到CSV文件
        save_file = filedialog.asksaveasfilename(title='保存合并后的数据', defaultextension='.csv')
        if save_file:
            merged_df.to_csv(save_file, index=False)

        # 提示用户合并完成
        tk.messagebox.showinfo('提示', '合并完成!')

root = tk.Tk()
app = MergeMDB(root)
root.mainloop()

代码中使用了tkinter库创建了一个GUI窗口,添加了一个开始按钮,点击按钮后会打开文件选择窗口,让用户选择多个MDB文件。选择完毕后,程序会使用pyodbc库读取MDB文件中的表格数据,合并成一个DataFrame对象,最后将合并后的数据保存到CSV文件中,并提示用户合并完成。

Python MDB 数据库合并工具 - 批量选择、合并、保存

原文地址: https://www.cveoy.top/t/topic/ns8o 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录