2012-04-06 20 views

Respuesta

9

Puede usar la función StrComp() con vbBinaryCompare para una comparación de mayúsculas y minúsculas. Aquí hay un ejemplo de la ventana Inmediato para mostrar cómo funciona StrComp(). Consulte el tema de Ayuda de acceso para obtener más detalles.

? StrComp("a", "A", vbBinaryCompare) 
1 

? StrComp("a", "A",vbTextCompare) 
0 

StrComp() devuelve 0 si los dos primeros argumentos evalúan como iguales, 1 o -1 si son desiguales, y NULL si el argumento es nulo.

Para usar la función en una consulta, proporcione el valor de la constante vbBinaryCompare (0) en lugar de su nombre.

SELECT VCode 
FROM VirtualMaster 
WHERE StrComp(VirtualMonitorName, "Vm1", 0) = 0; 

Este enfoque también está disponible para consultas de otras aplicaciones si utilizan el nuevo motor de base de datos Access controladores ("ACE"). Por ejemplo, el siguiente código 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())); 
    } 
} 

produce

vbBinaryCompare found 1 record(s) 
vbTextCompare found 2 record(s) 
2

mira esto:

https://support.microsoft.com/kb/244693?wa=wsignin1.0

este artículo se describen cuatro métodos para lograr un mayúsculas y minúsculas ÚNETE utilizando el Microsoft Motor de base de datos Jet Cada uno de estos métodos tiene ventajas y desventajas que deben sopesarse antes de elegir una implementación. Los métodos son:

  • StrComp
  • mayúsculo IISAM conductor
  • Expansión hexadecimal
  • campo binario
0

Usando a un nivel más simple de la codificación.

Como condición en una operación DCOUNT, marcar en un campo (columna) que debe tener el caso correcto e ignorar los estados/territorios en blanco.

 ' lngcounter will count the all States 
     ' or Territories Field (Column) with this 
     ' exact case value of 'Ohio'. ([ID] is an Autonumber ID field) 

     lngCounter = DCount("[id]", Trim(Me!tboDwellingTablename), "[State/territory],'Ohio',0) = 0") 
+0

hola Podría ayudar si su código utiliza el código de ejemplo preguntas. Puede hacer que sea más fácil para el solicitante aplicar su solución. –

1

Usando sólo las funciones incorporadas, agregar una columna personalizada adicional en la vista de diseño de la consulta:

location: InStr(1,[VCode],"VM1",0) 

el parámetro cero solicita binario comparar (mayúsculas y minúsculas) al encontrar la ubicación de "VM1" dentro de [VCode]

definir los criterios de esa columna a >0 tan sólo los registros con distinto de cero en la ubicación VCode juego Like "*vm*" contienen la cadena exacta VM1 -

La cláusula WHERE siguiente aspecto:

WHERE (((VirtualMaster.VCode) Like "\*vm*") AND ((InStr(1,[VCode],"VM1",0))>0)); 
Cuestiones relacionadas