2013-08-25 87 views
1

有沒有辦法根據用戶在文本框中的輸入限制查詢返回的記錄數?我知道如果記錄數量不變,我可以使用最高值,但這個數字會改變。我嘗試過:限制根據表單控件返回的記錄數

SELECT TOP[Forms![frm_GenerateMailout]![MailoutSize]] 

..但那並沒有奏效。

回答

1

這取決於如何,何地,您使用的是SQL語句,但是如果你構建的是一個字符串,你需要正確地串連它:

"SELECT TOP " & Forms!frm_GenerateMailout!MailoutSize & ".. etc." 
1

「有沒有辦法來限制人數根據用戶在文本框中的輸入查詢返回的記錄?「

訪問SQL不接受任何類型的參數與SELECT TOP

不幸的是,當你嘗試,錯誤消息(#3141)不認清楚問題:

「SELECT語句包含保留字或拼寫錯誤或缺少變量名,或標點符號是不正確的。」

如果你可以使用VBA構建你的SELECT,你可以通過在Andy所描述的字符串中構建數字來解決這個問題。或者,您可以使用Replace()替代MailoutSize值作爲預置SQL語句中的佔位符。

於是開始......

strTemplateSql = "SELECT TOP 100 PERCENT tblFoo.*" & vbCrLf & _ 
    "FROM tblFoo;" 

你可以這樣做......

strSelect = Replace(strTemplateSql, "100 PERCENT", _ 
    Forms!frm_GenerateMailout!MailoutSize) 

還有其他的可能性了。如果我們的建議都不適合您的情況,請告訴我們您需要在何處以及如何使用查詢。

+1

好的,謝謝你讓我知道我只能在VBA中做到這一點。我確實將它移到那裏,它正在工作。 – TinaB

相關問題