您可以使用StrComp()
函數vbBinaryCompare
的區分大小寫的比較。以下是即時窗口中的一個示例,顯示StrComp()
的工作方式。有關更多詳細信息,請參閱Access幫助主題。
? StrComp("a", "A", vbBinaryCompare)
1
? StrComp("a", "A",vbTextCompare)
0
StrComp()
返回0,如果前兩個參數評估爲等於1或-1,如果它們不相等,和Null如果任一參數爲Null。
要使用該功能在查詢,提供vbBinaryCompare
常量的值(0),而不是它的名稱。
SELECT VCode
FROM VirtualMaster
WHERE StrComp(VirtualMonitorName, "Vm1", 0) = 0;
如果其他應用程序使用較新的Access數據庫引擎(「ACE」)驅動程序,則該方法也可用於查詢。例如,下面的C#代碼
string myConnectionString =
@"Driver={Microsoft Access Driver (*.mdb, *.accdb)};" +
@"Dbq=C:\Users\Public\Database1.accdb;";
using (OdbcConnection con = new OdbcConnection(myConnectionString))
{
con.Open();
using (var cmd = new OdbcCommand())
{
cmd.Connection = con;
cmd.CommandText =
"SELECT COUNT(*) AS n FROM [VirtualMaster] " +
"WHERE StrComp([VirtualMonitorName],?,?) = 0";
cmd.Parameters.AddWithValue("?", "Vm1");
cmd.Parameters.Add("?", OdbcType.Int);
var vbCompareOptions = new Dictionary<string, int>()
{
{"vbBinaryCompare", 0},
{"vbTextCompare", 1}
};
string currentOption = "";
currentOption = "vbBinaryCompare";
cmd.Parameters[1].Value = vbCompareOptions[currentOption];
Console.WriteLine(
"{0} found {1} record(s)",
currentOption,
Convert.ToInt32(cmd.ExecuteScalar()));
currentOption = "vbTextCompare";
cmd.Parameters[1].Value = vbCompareOptions[currentOption];
Console.WriteLine(
"{0} found {1} record(s)",
currentOption,
Convert.ToInt32(cmd.ExecuteScalar()));
}
}
產生
vbBinaryCompare found 1 record(s)
vbTextCompare found 2 record(s)
招呼它可能如果你的代碼中使用的問題,示例代碼幫助。這可能使提問者更容易應用您的解決方案。 – 2017-08-24 07:10:10