Notas rápidas al trabajar con Access

Ignoremos el hecho de que Access es MALO, pero MALO con ganas. No tengo idea de por qué no hicieron las cosas en Oracle, pero también pasaremos eso por alto.

Una pequeña lista de problemas que me he encontrado al trabajar con esta aberración. Nota: estoy trabajando con Access 2010.

  • Las consultas que usan LIKE necesitan * en vez de %. Ejemplo:
    (Mal) Select nombre from agenda where name like ‘%Medina%’
    (Bien) Select nombre from agenda where name like ‘*Medina*’
  • Lo anterior es FALSO si la consulta se envía desde fuera (en mi caso, C#).
    A fuerzas necesita el %
  • No se puede hacer un join de tablas con campos de tipo “Memo” (no me pregunten por qué tengo que hacer joins con ese tipo de información :S).
    El tipo de datos “Memo” no guarda los datos en la tabla, sino en otro lugar y la tabla contiene solamente un apuntador a esos datos. Como SQL no sabe qué onda con apuntadores, te dice que no es posible hacer el join.
  • Al parecer, al crear una consulta directamente en SQL es necesario guardarla primero antes de ejecutarla si se quiere que Access respete la indentación que le dimos. No he comprobado esto al 100%, pero sí golpeé el monitor cuando abrí una mega consulta que hice y Access me mostró todo por ningún lado, mientras que otras sí las dejaba como las había formateado.
  • No se puede poner comentarios con “–” en el SQL que maneja Access. Horrible, si me permiten el comentario.
  • Access no aguanta hacer subqueries muy pesadas. Una consulta estilo:
    Select id from agenda 
    where nombre in (
        -- Una súper consulta incluyendo más subqueries, union, left outer join, etc.
    )

    hace que Access te diga “esa operación no se puede realizar en subqueries.

    La misma consulta en MySQL y PostgreSql corre sin problemas, por lo que el SQL está correcto.

Sé que soy un completo Noob en esto de Access, por lo que se aceptan sugerencias y correcciones.