我有一個Access數據庫,其中有一個帶有文本框(名爲c1)和一個按鈕的窗體。當我點擊按鈕時,它會打開一個數據表格,其中包含由文本框值過濾的信息。訪問具有多個值的文本框以查詢
按鈕VBA看起來是這樣的:
c1.Value = Replace(c1.Value, ",", " Or ")
DoCmd.OpenForm ("dsForm")
數據表背後的查詢看起來在設計視圖是這樣的:
Field: Name1 | Name2
Criteria: | Like [Forms]![Menu]![c1].[value]
這讓我可以在以後出口的這個結果查詢到卓越。
所以我的問題是,我想輸入到文本框中的值,並用逗號分隔它們,這將後來turner成爲一個或vba。爲什麼我用1個文本框不是多個,這是因爲我可以有許多值,我想要搜索。
現在它可以工作,如果我輸入一個值到文本框中,但是當我輸入2個值時它不起作用。我很確定查詢是以整個語句作爲一個字符串,例如,如果我輸入110,220,它應該是「110」或「220」,但在查詢時它會是「110或220」。
我試過把字段設置爲字符串或數字。我如何操縱vba查詢的條件?
爲什麼不能在(「&c1&」)「',然後是'DoCmd.openform」dsform「,acformDS,sql」中使用'sql ='WHERE Name2並將SQL語句放在Where語句應該。那麼你不需要通過任何openargs或以其他形式使用recordource語句 – geeFlo
@geeFlo你是對的,這更符合情況。雖然適當的措詞是在沒有「WHERE」保留字的情況下完成的。 'sql = Name2 in(「&c1&」)「' –