以下是一个示例代码,实现了点击开始按钮打开文件选择窗口,选择多个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/cjoO 著作权归作者所有。请勿转载和采集!

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