A raiz de una pregunta en los grupos de discusión : microsoft.public.es.access : ¿ como conseguir que un campo de texto sea sensible al uso de mayúsculas y minúsculas ?, se me ocurrió la siguiente solución :
Utilizar un campo tipo binary, ya que en este contexto Access guarda los datos como bytes y no como texto. Esto no lo podemos conseguir desde la vista diseño de una tabla, pues este tipo de campo no está disponible, lo más parecido es un campo 'Objeto Ole', o lo que es lo mismo 'Long Binary', pero para este propósito no nos sirve. Para ello utilizaremos una instrucción ddl (Create Table, o Alter Table), bién desde una consulta (teniendo activada, en 'Opciones', la compatibilidad con Sql Server) o mediante el método Execute de Ado.
Ejemplo :
Create Table MiTabla (Campo1 Binary);
Insert Into MiTabla Values('A');
Insert Into MiTabla Values('a');
Insert Into MiTabla Values('B');
Insert Into MiTabla Values('b');
Insert Into MiTabla Values('C');
Insert Into MiTabla Values('c');
Insert Into MiTabla Values('D');
Insert Into MiTabla Values('d');
Insert Into MiTabla Values('E');
Insert Into MiTabla Values('e');
Select *, Asc(Campo1) As Char_code From MiTabla Order By Campo1;
Drop Table MiTabla;
Al abrir la consulta de selección, vemos como efectivamente el órden establecido corresponde al código del caracter (a pesar de ordenar por 'Campo1'), y no al valor como texto. Por tanto, Access realiza implícitamente la conversión de texto a bytes cuando guardamos datos en este campo, y al reves (de bytes a texto) cuando nos muestra el contenido del mismo.
Así mismo, esta técnica, nos permite tener un campo 'de texto', indexado, de valores únicos, que distinga entre mayúsculas y minúsculas. Ejemplo para crear un campo binary indexado sin duplicados :
Create Table MiTabla (Campo1 Binary Unique);
o si queremos que sea el campo clave :
Create Table MiTabla (Campo1 Binary Primary Key);
Ramon Poch. Terrassa a 31/01/2009.