2017-09-06 7 views
1

私はaccessdbに10進数の列を作成するには以下のコードを使用している、しかし、私はコードを実行するときには、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)を介して10進数フィールドを作成することができるしています。この問題を解決するために私を助けてください。

+1

ヒントhttp://allenbrowne.com/ser-49.htmlから:AccessクエリインターフェイスまたはDAOで[DECIMAL] *は使用できません。 ADOを使用してDDLクエリステートメントを実行する*(100%でないことが問題です) – Andre

+0

@Andreありがとうございます – dhana

答えて

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));") 
+0

ありがとう – dhana

関連する問題