如何设置Access访问msysobjects系统表权限

也是网上找到的方法,不过只有英文,偶翻译了一下,呵呵
默认情况下,在程序中是无法直接访问Access的系统表的,会提示没有权限,只有手工设置了读权限后才可以。
读取Access库中所有表名的SQL语句:
 

select name from msysobjects where flags = 0



1. 打开Access

2. 点击“工具”菜单,选择“选项”

3. 在“视图”页上,将“系统对象”勾上

4. 点击“断定”按钮保存设置

5. 点击“工具”菜单,选择“安全”中的“消费者与组权限”

6. 选择“权限”页

7. 在“对象类型”下拉列表中选择“表”

8. 在“消费者名/组名”中选择“治理员”消费者

9. 在“对象名称”中选择“MSysObjects”表

10. 在“权限”中将“读取数据”勾上

11. 点击“断定”按钮保存设置


1. Open Microsoft access 
2. From the Tools menu, select the Options menu option 
3. On the View tab, click the System Objects checkbox 
4. Click OK to save your changes 
5. From the Tools menu, select the Security -> User and Group Permissions menu option 
6. Click the Permissions tab 
7. Select the Table entry in the Object Type combo box 
8. Select the Admin userid in the User/Group Name listbox 
9. In the Object Name listbox, select the MSysObjects entry 
10. In the Permissions group box, check the Read Data check box

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是使用apcpy模块写一个批量合并Access数据库的Python插件的代码示例,供你参考。 ```python import os import pyodbc import shutil import win32com.client as win32 # 获取所有要合并的数据库文件路径 def get_db_files(folder_path): db_files = [] for file_name in os.listdir(folder_path): if file_name.endswith(".accdb") or file_name.endswith(".mdb"): db_files.append(os.path.join(folder_path, file_name)) return db_files # 创建一个新的Access数据库文件 def create_new_database(new_db_file): access = win32.gencache.EnsureDispatch('Access.Application') access.NewCurrentDatabase(new_db_file) access.Quit() # 合并多个数据库文件到一个新的数据库文件中 def merge_databases(db_files, new_db_file): # 创建一个新的数据库文件 create_new_database(new_db_file) # 连接到新的数据库文件 conn_str = 'Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=' + new_db_file conn = pyodbc.connect(conn_str) # 遍历所有要合并的数据库文件 for db_file in db_files: # 连接到要合并的数据库文件 conn_str = 'Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=' + db_file db_conn = pyodbc.connect(conn_str) # 获取要合并的格名称 cursor = db_conn.cursor() cursor.execute("SELECT name FROM MSysObjects WHERE type=1 AND name NOT LIKE 'MSys*'") tables = cursor.fetchall() # 遍历所有要合并的格 for table in tables: # 复制要合并的格到新的数据库文件中 table_name = table[0] cursor.execute("SELECT * INTO [" + table_name + "] FROM [" + table_name + "] IN '" + db_file + "'") conn.commit() # 关闭要合并的数据库文件连接 db_conn.close() # 关闭新数据库文件连接 conn.close() # 备份所有要合并的数据库文件 def backup_db_files(db_files, backup_folder): for db_file in db_files: backup_file = os.path.join(backup_folder, os.path.basename(db_file)) shutil.copyfile(db_file, backup_file) # 主函数 def main(): # 要合并的数据库文件所在的文件夹路径 folder_path = "C:\\databases\\" # 创建一个新的数据库文件,用于合并所有数据库文件 new_db_file = "C:\\merged_database.accdb" # 备份所有要合并的数据库文件 backup_folder = "C:\\database_backup\\" backup_db_files(get_db_files(folder_path), backup_folder) # 合并所有数据库文件到一个新的数据库文件中 merge_databases(get_db_files(folder_path), new_db_file) # 提示合并完成 print("All databases have been merged into " + new_db_file) if __name__ == '__main__': main() ``` 上述代码中,使用了pyodbc模块连接Access数据库,并使用win32com模块创建新的Access数据库文件。在合并多个数据库文件时,遍历所有要合并的数据库文件和格,使用SELECT INTO语句将要合并的格复制到新的数据库文件中。同时,为了防止意外,备份了所有要合并的数据库文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值