2015-10-15 181 views
0

我正在更新由MS Access 2013中的其他人編寫的應用程序,並且我一直在我的一個Dim語句中出現語法錯誤。我一直在尋找45分鐘的互聯網,無法弄清楚什麼是錯的。下面的代碼片段:MS Access中的VBA語法錯誤Dim

Sub refreshData() 
   Dim strSQL as string 
    Dim rs As DAO.Recordset 
    Dim db As Database 
'Rest of sub 

當我運行應用程序時,VBA突出了黃色的「子」的路線,在藍色和彈出一個對話框中的「暗淡STRSQL」一行「語法錯誤」。如果我試圖刪除「作爲字符串」它做同樣的事情。我來自Java和PHP編程的背景,所以我不熟悉VBA。有什麼我失蹤?

+0

上面是什麼'Sub'?也許Sub在一個無效的上下文中? 'Sub'只能用於模塊級別(類,結構,模塊或接口)。此外,嘗試刪除該過程的整個內容('Sub'和'End Sub'之間,看看你是否得到相同的錯誤。 –

+0

嘗試使用Private Sub refreshData()。我想知道爲什麼「字符串」不是大寫。IDE應該自動利用他們... – MatthewD

+0

所有上面的代碼中的「子refreshData()」: '選項比較數據庫 私人小組的Form_Load() refreshData 結束Sub' 更改爲「專用子「沒有任何區別,我也嘗試將它改爲」Function「而不是」Sub「,它給出了相同的錯誤編輯:評論框忽略新行,爲此創建了一個答案,因此更清晰。 – Zero

回答

0

這很奇怪,對我沒有意義。我重新排列了Dims,現在錯誤消失了。這是我的工作代碼:

Private Sub refreshData() 

    Dim rs As DAO.Recordset 
    Dim db As Database 
    Dim strSQL As String 
'Rest of sub 

任何想法爲什麼將字符串聲明移到最後會解決問題?

+0

奇怪。您將訂單更改回錯誤再次出現?如果是這樣,我很難過。如果不這樣做,我猜想在另一個模塊中出現了一個錯誤,這個模塊只是在這裏表現出來。 –