2009-09-14 79 views
0

我記得使用這樣的查詢之前爲我工作。但現在它給了我一個編譯錯誤。訪問查詢不起作用?

我想只得到第二個字段的前3個字符。

select field1, left(field2, 3) from table1; 

我在做什麼錯?

+1

什麼數據類型是field2,並且當字段中少於三個字符時,LEFT會引發錯誤? – 2009-09-14 12:44:05

+0

它的文本類型雖然它有數字 – tksy 2009-09-14 12:52:32

+0

編譯錯誤說的是什麼? – MusiGenesis 2009-09-14 12:55:10

回答

0

您的SQL語句沒有任何問題。在字段名稱周圍的括號內,在語句結尾的分號,field2以內的字符少於3個---這些在這裏都不是問題。

您的數據庫或您的機器和/或其Access安裝有問題。通常我會懷疑引用問題,因爲你的錯誤是一個典型的症狀。但是,在評論中,您表示引用是可以的。

創建一個新的空數據庫並將table1導入它。在新數據庫中嘗試您的查詢。如果它在那裏工作,你知道這個問題僅限於原始數據庫。如果查詢在新數據庫中不起作用,請將數據庫複製到安裝了Access的另一臺計算機並在此處嘗試。如果它在另一臺機器上運行,但不是你的機器,...我希望有一些方法可以在不重新安裝Office的情況下修復原始機器。

+0

舊數據庫中的東西是錯誤的。它在一個新的數據庫中工作。 – tksy 2009-09-15 08:05:27

0

嘗試把字段名在方括號

select field1, Left([field2], 3) from table1; 
+0

它仍然給編譯錯誤。在查詢表達式左([field2],3) 我不明白的是它早期工作正常 – tksy 2009-09-14 12:53:52

+0

如果它在以前工作,檢查您的數據庫連接和表結構,以確保一切都保持完好。 – 2009-09-14 12:57:42

0

我看不出有什麼不對您的SQL,只要你的表名和列名是否正確。根據您的SQL編輯器或代碼,您可能需要從語句中刪除分號。

+1

如果表格/列的不正確,他們會得到不同的錯誤,例如'沒有給出一個或多個必需參數的值。'我的錢在破碎的參考文獻上。 – onedaywhen 2009-09-14 14:52:54

1

如果您在鍵盤上按Ctrl-G並在即時窗口中輸入「?Left(」123Text「,3)」並在按下ENTER後會發生什麼?如果您得到相同的編譯錯誤,那麼您的數據庫中有缺少的引用或編譯錯誤。

要解決此問題,在VBE窗口中,轉至DEBUG菜單並選擇第一個選項COMPILE [project name]。您可能會收到編譯錯誤的通知,它會引導您解決您需要解決的問題。