2013-07-30 77 views
1

我用下面的VBA代碼Access 2007中執行SQL語句:如何設置默認值,同時增加了新列

SQL = "ALTER TABLE " & strNEW & _ 
     " ADD COLUMN ([GolfLengte] INT) DEFAULT " & _ 
     strTableName 

DoCmd.RunSQL (SQL) 

至極打印:

ALTER TABLE tbl_GL_850 ADD COLUMN ([GolfLengte] INT) DEFAULT 850 

查詢應用已有的記錄更新已有的表格:

Table1 
+--------------+----------+----------+ 
| Column1  | Column2 | Column3 |     
+--------------+----------+----------+ 
|  x  | x  | x  | 
+--------------+----------+----------+ 
|  x  | x  | x  | 
+--------------+----------+----------+ 
|  x  | x  | x  | 
+--------------+----------+----------+ 
|  x  | x  | x  | 
+--------------+----------+----------+ 

我想要的是另一列添加與In every record上所寫的變量strTableName像這樣的值:

Table1    strTableName = 850 
+--------------+----------+----------+----------+ 
| Column1  | Column2 | Column3 |GolfLengte|   
+--------------+----------+----------+----------+ 
|  x  | x  | x  | 850 | 
+--------------+----------+----------+----------+ 
|  x  | x  | x  | 850 | 
+--------------+----------+----------+----------+ 
|  x  | x  | x  | 850 | 
+--------------+----------+----------+----------+ 
|  x  | x  | x  | 850 | 
+--------------+----------+----------+----------+ 

在我看來,這是一個有效的SQL語句,但由於某些原因VBA不斷告訴我,有一個語法錯誤,同時突出

DoCmd.RunSQL (SQL) 

我在做什麼錯?

回答

2

據我所知,ALTER TABLE更改表模式,但不是數據。

您必須在ALTER TABLE之後"UPDATE " & strNEW & " SET GolfLengte = " & strTableName

+0

非常棒!謝謝 – Gutanoth

0

嘗試

ALTER TABLE tbl_GL_850 
ADD GolfLengte INT NOT NULL DEFAULT(850) 

道歉....這是SQL,我錯過了問題的VBA接入部分(這是早期)

嘗試:

ALTER TABLE tbl_GL_850 ADD COLUMN GolfLengte INT DEFAULT 850 
+0

這給了我一個錯誤:'錯誤3320,而執行''丟失,]或表達式中的元素 – Gutanoth

+0

這也不工作,沒有錯誤,但我的「golfLengte」列保持爲空 – Gutanoth