使用 Python 创建新的 Access 数据库和表

2024-02-19

我正在尝试用 Python 创建一个 Access 数据库并向其中添加两个新表。我正在使用 win32com 并已成功创建数据库,但无法创建表。我得到的只是无益的 Windows 错误。谁能帮我?

下面的代码工作正常:

dbname = r'C:/Users/Guest/Desktop/NewDB.mdb'
db = Dispatch("Access.Application")
dbEngine = db.DBEngine
workspace = dbEngine.Workspaces(0)

dbLangGeneral = ';LANGID=0x0409;CP=1252;COUNTRY=0'
newdb = workspace.CreateDatabase(dbname, dbLangGeneral, 64)

如何向该数据库添加新表?


由于 MS Access 既是 GUI .exe 应用程序又是后端数据库,因此创建数据库的过程与创建数据库对象(如Tables, Views(即存储的查询),甚至程序.

作为比较,另一个文件级 RDMS SQLite 必须打开其 .exe shell 才能CREATE DATABASE。服务器级 RDMS(SQL Server、MySQL、Postgres)必须登录服务器实例才能运行命令。 MS Access 没有 shell 或实例设施,只是一个应用程序对象。

因此,在创建数据库后创建数据库 https://msdn.microsoft.com/en-us/library/bb243161(v=office.12).aspx方法,考虑运行 DDL SQL 语句来CREATE TABLE你可以用执行() https://msdn.microsoft.com/en-us/library/bb243015(v=office.12).aspx method.

Python通讯接口

from win32com.client import Dispatch

try:
    dbname = r'C:/Users/Guest/Desktop/NewDB.mdb'
    accApp = Dispatch("Access.Application")
    dbEngine = accApp.DBEngine
    workspace = dbEngine.Workspaces(0)

    dbLangGeneral = ';LANGID=0x0409;CP=1252;COUNTRY=0'
    newdb = workspace.CreateDatabase(dbname, dbLangGeneral, 64)

    newdb.Execute("""CREATE TABLE Table1 (
                      ID autoincrement,
                      Col1 varchar(50),
                      Col2 double,
                      Col3 datetime);""")

except Exception as e:
    print(e)

finally:
    accApp.DoCmd.CloseDatabase
    accApp.Quit
    newdb = None
    workspace = None
    dbEngine = None
    accApp = None

Python DB API

虽然CREATE DATABASE在 MS Access SQL 中不可用,您可以运行上面的命令Execute与任何带有CREATE TABLE仅在创建数据库文件后才执行命令:

import pypyodbc

dbname = r'C:/Users/Guest/Desktop/NewDB.mdb'     
constr = "DRIVER={{Microsoft Access Driver (*.mdb, *.accdb)}};DBQ={0};".format(dbname)

dbconn = pypyodbc.connect(constr)

cur = dbconn.cursor()
cur.execute("""CREATE TABLE Table1 (
                 ID autoincrement,
                 Col1 varchar(50),
                 Col2 double,
                 Col3 datetime);""")
dbconn.commit()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Python 创建新的 Access 数据库和表 的相关文章

随机推荐

  • 命令字符串中带有 & 符号的 PowerShell Invoke-Expression

    我试图将带有包含 符号的字符串的变量传递到 Invoke Expression 中 它告诉我必须将其放在引号中并将其作为字符串传递 我尝试了转义和使用原始字符串以及变量中的字符串与 和 组合的多种组合 但均无济于事 我该怎么做 这是代码 s
  • 在 Chrome 中使用 JavaScript 将音频录制为 .wav

    我正在构建一个网页 用于记录用户设备中的音频 并将其发送到 Microsoft 的认知语音服务以进行语音到文本的转换 到目前为止 我已经能够创建和播放用 JavaScript 制作的 ogg 文件 但我需要获取 wav 格式的文件 斑点类型
  • Google Chrome 用户脚本参考 window.open

    我已经尝试解决这个问题有一段时间了 但是当我尝试引用我打开的窗口时 句柄始终是未定义的 值得注意的是 这被用于用户脚本这是有问题的片段 var donateWindow Show the donation popup and open a
  • 应用程序运行时,LogCat 充满“input svInfo.flags is 8”

    当我在 Android Studio 中运行几乎所有应用程序时 我的LogCat https developer android com studio debug am logcat充满了诸如以下的消息 E GnssHAL GnssInte
  • 计算 pandas 数据框中每月每个项目的出现次数

    Date Items Location 2022 01 01 Item1 Location1 2022 01 01 Item2 Location1 2022 01 02 Item1 Location3 2022 01 03 Item3 Lo
  • 如何从 C# 控制台应用程序中的目录获取路径?

    假设我有这个文件结构 解决方案 gt 文件夹1 gt FileIwant html 所以这可能类似于 C Soultion Folder1 FilterIwant html 现在我需要将该文件读入我的应用程序 我不能只是硬编码它 因为当我把
  • 从用户那里获取日期/时间输入的最佳方法是什么?

    这是一个多年来被一次又一次重新发明的轮子 问题 用户需要输入日期 时间 基本考虑因素 我们希望让用户尽可能轻松地输入所需的日期 时间 有些应用程序要求历史日期 有些应用程序仅要求未来日期 有些应用程序需要处理两者 我们希望防止用户输入乱码数
  • Cookie 与 jsessionid url 令牌优先级

    怎么样Set Cookie VS jsessionid url token优先 如果设置了 cookie Apache Tomcat 似乎会忽略令牌 这样的行为是不是有点不方便呢 还是因为安全原因才这样 这是 servlet 中请求的 ur
  • 还可以发布 Gmail 插件吗?

    I ve been trying to publish a Gmail add on for half a year now But I can t submit it because the required option is disa
  • Spring + Tomcat 基于Request URL的多租户

    我们有一个可供多个客户使用的单一应用程序 每次都是同一个应用程序 但使用不同的数据库 我们当前的设置包括 Apache 2 网络服务器 Tomcat 8 春季4 1 Web 服务器将特定的 URL 路由到 Tomcat 即 customer
  • PrimeFaces:如何覆盖 CSS 类

    创建按钮时 该类ui corner all始终适用 我尝试了以下方法
  • Rail 3.2.2/Devise:带有 rspec 的弃用警告

    我最近将一个应用程序升级到了 Rails 3 2 2 我正在使用 Factory girl Factory sequence name do n 名称 n 结束 Factory define 用户做 u u first name Facto
  • 詹金斯:无法连接到存储库

    我正在尝试在 github 存储库上连接 jenkins 当我指定 Repo URL 时 jenkins 返回以下错误消息 无法连接到存储库 命令 git ls remote h 电子邮件受保护 cdn cgi l email protec
  • 从 JavaScript 正确调用 TypeScript 代码

    在我们的大型企业项目中 我们面临的情况似乎在互联网上的文章和帖子中没有得到很好的描述 我们需要将支持 SPA 的现有 JavaScript 基础设施代码与其他团队在 TypeScript 上开发的代码集成起来 由于许多政治限制和可用的开发资
  • 如何在 JSON 对象中添加 URL 字符串

    我需要添加通常采用 http somewebsite com somepage asp 格式的 URL 当我使用上面的 URL 创建一个字符串并将其添加到 JSON 对象 json 时 using json put url urlstrin
  • JPanel 不会完全伸展以占据可用空间

    我有一个面板 我在其中并排放置了几个具有不同尺寸和颜色的迷你面板 它们应该占据整个父面板 水平 为此 我使用 BorderLayout 用于父面板 并使用 BoxLayout 作为放置所有迷你面板的子面板 请参见下面的代码 它在调整大小和其
  • 阻止 chrome 在拖动链接时将光标更改为地球仪

    我有一个标准链接 例如 a href test Test a 在 Chrome 中 单击并拖动此链接将导致光标变为拖动地球仪的箭头 地球仪可以放在 URL 或书签栏上 我正在尝试用 JavaScript 实现拖放文件系统界面 所有文件和文件
  • 何时使用 $sanitize 和 $sce ?他们之间有什么区别?

    我试图了解属性之间的区别 请帮忙举出实际例子 何时使用它们 在这个论坛里找不到这样的问题 请帮帮我 sce是实际选择字符串是否可以安全使用以及是否应该对其进行清理的服务 如果是 HTML 则运行 sanitize如果有的话 你可能永远不需要
  • Perl 子例程参数

    我最近一直在阅读有关 Perl 的内容 并且对 Perl 如何处理传递给子例程的参数感到有点困惑 在 Python Java 或 PHP 等语言中 函数定义采用以下形式 伪代码 function myFunc arg1 arg2 Do so
  • 使用 Python 创建新的 Access 数据库和表

    我正在尝试用 Python 创建一个 Access 数据库并向其中添加两个新表 我正在使用 win32com 并已成功创建数据库 但无法创建表 我得到的只是无益的 Windows 错误 谁能帮我 下面的代码工作正常 dbname r C U