通配符是特殊字元,可以代表文本值中的未知字元,便於查找具有相似但不相同數據的多個專案。 通配符還可以幫助獲取指定模式匹配的資料庫。
Access支持兩組通配符,因為它支持結構化查詢語言的兩個標準(條件)。
- ANSI-89
- ANSI-92
通常,在運行查詢和查找和替換Access資料庫(如*.mdb
和*.accdb
檔)的操作時,使用ANSI-89 通配符。
在對Access專案運行查詢時使用ANSI-92 通配符 - 訪問連接到Microsoft SQL Server資料庫的檔。Access專案使用ANSI-92 標準,因為SQL Server使用該標準。
ANSI-89通配符
下表列出了ANSI-89 支持的字元 -
字元 | 描述 | 示例 |
---|---|---|
* |
匹配任意數量的字元,可以在字串中的任何位置使用星號(* )。 |
wh* 可以匹配what ,white ,why ,但不匹配awhile ,watch 。 |
? |
匹配任何單個字母字元。 | B?ll 可匹配 ball , bell 以及 bill 。 |
[] |
匹配括弧內的任何單個字元。 | B[ae]ll 可匹配 ball 和bell ,但不匹配bill 。 |
! |
匹配不在括弧內的任何字元。 | b[!ae]ll 可匹配 bill 和 bull , 但不匹配 ball 或 bell 。 |
- |
匹配任何一個字元的範圍。必須按昇冪指定範圍(A 到Z ,而不是Z 到A )。 |
b[a-c]d 匹配 bad , bbd 和 bcd |
# |
匹配任何單個數字字元。 | 1#3S 可匹配 103 , 113 和 123 。 |
ANSI-92通配符
下表列出了ANSI-92 支持的字元 -
字元 | 描述 | 示例 |
---|---|---|
% |
匹配任意數量的字元。它可以用作字串中的第一個或最後一個字元。 | wh% 匹配 what , white 和 why , 但不匹配 awhile 或 watch 。 |
_ |
匹配任何單個字母字元。 | B_ll 匹配 ball , bell 和 bill |
[] |
匹配括弧內的任何單個字元。 | B[ae]ll 匹配 ball 和 bell , 但是不匹配bill 。 |
^ |
b[^ae]ll 匹配 bill 和 bull , 但是不匹配 ball 或 bell 。 |
|
- |
匹配任何一個字元的範圍。必須按昇冪指定範圍(A 到Z ,而不是Z 到A )。 |
b[a-c]d 匹配 bad , bbd 和 bcd 。 |
示例
現在打開查詢設計來演示如何使用這些通配符的簡單示例。添加顯示的表並關閉“顯示表格”對話框。
將想要查看的字段添加為查詢結果。
運行查詢,得到以下結果 -
再次打開查詢設計,並添加專案名稱的輸入提示。
現在運行查詢,假設不知道確切的專案名稱,但是知道專案名稱包含單詞"大橋"
。 點擊確定。
執行上述查詢不會產生任何結果。這是因為Access在專案名稱字段中查找完全匹配。 它正在尋找那個名字中有"大橋"
的專案。
如果想讓用戶可以輸入通配符來替換未知的字元,那麼需要調整標準(條件),並包括Like
運算符。
當運行查詢時,用戶可以使用Like
通配符來替換任意數量的字元。
假設要瞭解有關"大橋"
這個詞的專案,但是不確定它在哪里。
可以添加一個*
來替換單詞"大橋"
之前的任意數量的字元,然後添加另一個*
。 點擊確定 。
用戶總是知道輸入的通配符。 但是有些用戶可能不知道他們可以進入的通配符。 在這種情況下,可以自己輸入通配符。
在這種情況下,在Like
操作符和參數提示符之間,可以添加這些通配符,現在有一個非常具體的方法來寫這個。 在引號之後的單詞之後,輸入正在使用的通配符。 在這種情況下,我們使用“*”
來替換任意數量的字元。現在將這個添加到參數。 為此,需要符號(&
)符號和空格。現在重複這一步,並添加另一個符號(&
),因為加入了通配符,無論用戶輸入什麼標準的專案名稱,然後用引號“*”
。
現在再次運行我們的查詢。 在沒有任何通配符的提示符下輸入單詞:"大橋"
。結果如下所示 -
查詢現在將追蹤任何在這裏輸入的通配符。只需要輸入"大橋"
,然後按回車。
現在得到查找的結果,並且無論用戶輸入什麼內容,結果都是一樣的。
如果希望在專案標題中找到帶有"擴建"
的片語。 然後,只需鍵入"擴建"
並單擊確定。
通過這個查詢,搜索名稱中帶有"擴建"
的專案變得更加容易。結果也可能包含專案名稱,其中"擴建"
是該詞的一部分。