如何在访问数据库中创建十进制字段?

时间:2017-09-06 17:32:20

标签: python python-2.7 ms-access ms-access-2010 win32com

我使用了下面的代码来在accessdb中创建十进制列,但是当我执行代码时它会返回field definition error

dbname = r'C:/Users/Dhana/Documents/NewDB.accdb'
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 AAA (ID COUNTER, Field1 DECIMAL(10,3));""")

但是我可以通过访问数据库接口(GUI)创建十进制字段。请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

@Andre是对的,问题是你不能在DAO中使用DECIMAL数据类型,你需要ADO。

您可以使用以下内容:

dbname = r'C:/Users/Dhana/Documents/NewDB.accdb'
accApp = Dispatch("Access.Application")
dbEngine = accApp.DBEngine
workspace = dbEngine.Workspaces(0)

dbLangGeneral = ';LANGID=0x0409;CP=1252;COUNTRY=0'
newdb = workspace.CreateDatabase(dbname, dbLangGeneral, 64)
conn = accApp.CurrentProject.Connection
conn.Execute("CREATE TABLE AAA (ID COUNTER, Field1 DECIMAL(10,3));")