Bạn có thể sử dụng chức năng StrComp()
với vbBinaryCompare
để so sánh phân biệt chữ hoa chữ thường. Dưới đây là một ví dụ từ cửa sổ ngay lập tức để hiển thị cách hoạt động của StrComp()
. Xem chủ đề trợ giúp Access để biết thêm chi tiết.
? StrComp("a", "A", vbBinaryCompare)
1
? StrComp("a", "A",vbTextCompare)
0
StrComp()
trả về 0 nếu hai đối số đầu tiên đánh giá là bình đẳng, 1 hoặc -1 nếu họ không đồng đều, và Null nếu một trong hai đối số là Null.
Để sử dụng chức năng trong truy vấn, hãy cung cấp giá trị hằng số vbBinaryCompare
(0) thay vì tên của nó.
SELECT VCode
FROM VirtualMaster
WHERE StrComp(VirtualMonitorName, "Vm1", 0) = 0;
Phương pháp này cũng có sẵn cho các truy vấn từ các ứng dụng khác nếu họ sử dụng trình điều khiển cơ sở dữ liệu Access (ACE) mới hơn. Ví dụ, # mã C sau
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()));
}
}
sản xuất
vbBinaryCompare found 1 record(s)
vbTextCompare found 2 record(s)
chào nó có thể giúp đỡ nếu mã của bạn sử dụng các câu hỏi ví dụ mã. Nó có thể giúp người yêu cầu áp dụng giải pháp của bạn dễ dàng hơn. –