2016-05-11 50 views
1

我使用alter table命令獲得一行錯誤。我試圖根據變量每個月使用一個循環創建每個月的字段,但是由於我沒有得到期望的結果,所以沒有經過。該代碼創建一個名爲月的列,然後在第二次迭代中給出錯誤。代碼如下:使用vba訪問時在表中添加新字段

Dim x As Integer 
Dim Months As Integer 
Dim monthly As String 

Months = Me.YearsBack * 12 

Set db = CurrentDb 
If Me.Period = "monthly" Then 
    For x = 1 To 2 
    'Months 
    monthly = "WP M" & x 
    db.Execute "ALTER TABLE tblEPdata ADD COLUMN [monthly] string;" 
    Next 
End If 

回答

0

[monthly]就是您正在執行字符串的一部分,它不會自動從具有相同名稱的變量解決。

您需要字符串連接:

Dim S As String 

S = "ALTER TABLE tblEPdata ADD COLUMN [" & monthly & "] string;" 
Debug.Print S 
db.Execute S 

Debug.Print有助於調試,輸出達到立即窗口(Ctrl + G)。

注意上述代碼中的語法着色。

"ALTER TABLE tblEPdata ADD COLUMN [" 

是一個常量字符串。

&將字符串和變量連接成一個新字符串。

[方括號]是必需的,因爲您的字段名稱包含空格(例如WP M2)。

+0

感謝您的回覆。但是,我不明白爲什麼我們使用符號[「&變量之前,你可以解釋一下這些是什麼嗎? – zkhan

+1

@zkhan:見編輯,但我擔心如果你是* *新的編碼在VBA ,在創建和運行ALTER TABLE語句之前,您應該查看VBA的教程/介紹。 – Andre

相關問題