Sie können die StrComp()
Funktion mit vbBinaryCompare
für einen Vergleich unter Berücksichtigung der Groß- und Kleinschreibung. Das folgende Beispiel aus dem Fenster "Sofort" zeigt, wie StrComp()
funktioniert. Weitere Informationen finden Sie in der Access-Hilfe.
? StrComp("a", "A", vbBinaryCompare)
1
? StrComp("a", "A",vbTextCompare)
0
StrComp()
gibt 0 zurück, wenn die ersten beiden Argumente als gleich bewertet werden, 1 oder -1, wenn sie ungleich sind, und Null, wenn eines der beiden Argumente Null ist.
Um die Funktion in einer Abfrage zu verwenden, geben Sie die vbBinaryCompare
den Wert der Konstante (0) und nicht ihren Namen.
SELECT VCode
FROM VirtualMaster
WHERE StrComp(VirtualMonitorName, "Vm1", 0) = 0;
Dieser Ansatz ist auch für Abfragen aus anderen Anwendungen verfügbar, wenn diese die neueren Access Database Engine ("ACE")-Treiber verwenden. Zum Beispiel der folgende C#-Code
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()));
}
}
produziert
vbBinaryCompare found 1 record(s)
vbTextCompare found 2 record(s)