2016-01-25 45 views
1

在Access查詢中提示用戶輸入參數非常簡單。轉到設計視圖,在標準下,只需放置[Your Text:] - 並在查詢運行時提示用戶輸入字段標準。如何將用戶輸入標準添加到訪問內部加入的交叉表查詢

不幸的是,當我嘗試這與我內心的加入交叉表查詢我的錯誤:

The Microsoft Access engine does not recognize the '[Your Text:]' as a valid field name or expression.

我知道內部聯接交叉表仍然允許的標準,如hardcorded標準工作。

爲了讓您更好地瞭解我在看什麼,下面是SQL代碼。

不起作用:

SELECT * 
FROM ([CrossTabQ1] 
INNER JOIN [CrossTabQ2] ON [CrossTabQ1].[Month] = [CrossTabQ2].[Month]) 
INNER JOIN [Query3] ON [CrossTabQ1].[Month] = [Query3].[Month] 
WHERE ((([CrossTabQ1].[Month])= [Enter Month, in YYYY-MM Format:])) 
ORDER BY [CrossTabQ1].[Month]; 

不工作:

WHERE ((([CrossTabQ1].[Month])="2015-12")) 
ORDER BY [CrossTabQ1].[Month]; 

關於爲什麼我得到這個錯誤,我怎麼能接受用戶輸入的標準將不勝感激任何提示!

回答

1

嘗試:

PARAMETERS Enter_Month Text (255); 
SELECT * 
FROM ([CrossTabQ1] 
INNER JOIN [CrossTabQ2] ON [CrossTabQ1].[Month] = [CrossTabQ2].[Month]) 
INNER JOIN [Query3] ON [CrossTabQ1].[Month] = [Query3].[Month] 
WHERE ((([CrossTabQ1].[Month])=[Enter_Month])) 
ORDER BY [CrossTabQ1].[Month]; 
+0

這給了我「語法錯誤在查詢表達式‘WHERE(((...其餘代碼’任何建議 – TMY

+1

也許參數的名稱不能接受的,我把它更新到簡單的名稱?我在我的查詢SQL視圖中看到它,並在ms access 2010中進行測試,看到這個[question](http://stackoverflow.com/q/16568461/4039286)可能會有幫助。 – Fadi

+1

這很好用,謝謝@Fadi!For那些可能會偶然遇到這個問題並想要使用空格和特殊字符的人,只需在Parameters行的Enter_Month周圍添加括號「[]」。 ..然後WHERE ... = [輸入月份(YYYY-MM格式)]。全部設置! – TMY