En mi grupo de Access con SQL Server en LinkedIn, uno de nuestros miembros publico la siguiente pregunta: ¿Si estoy desarrollando un proyecto nuevo, qué debería usar: ADO o DAO?

Vamos a desglosar el tema
Esta pregunta implícitamente sugiere que ADO y DAO se pueden usar ambos para lo mismo, pero no es asi. Usted podría fácilmente crear una aplicación DAO que puede funcionar muy bien, pero sería my difícil hacer lo mismo con ADODB, ya que implicaría mas código, sin tomar en cuenta que DAO ha sido la tecnologia que usa por defecto en Access.

¿Entonces, debo usar siempre ADO? No, use ADODB para cuando tenga que trabajar directamente con tablas que se encuentran en un servidor externo como SQL.
Si usted desea optimizar la relación con Access y SQL Server, entonces usted DEBE usar ADODB para conseguir una mayor eficiencia en su código. El truco está en saber cuándo usar DAO y cuando usar ADODB.

¿Por qué ADODB es más rápido que DAO?
Una vez más, esta no es la pregunta correcta, más bien, ¿Por qué SQL Server es más rápido que Access?, esa sería la pregunta. Si tiene que hacer un update de 100,000 registros y utiliza  las funciones nativas para hacer el query, puede salir un rato  y preparar una o dos tazas de café mientras espera que DAO termine, sin embargo con ADO sería mucho más rápido. En general, si quiere tener una comunicación rápida con SQL Server (y casi siempre lo es), tiene que utilizar ADODB, de lo contrario utilice DAO.

Elija el más adecuado para el trabajo
Aquí le dejo una lista de situaciones en la que puede utilizar DAO:

  • En los data source de formularios y reportes.
  • Queries locales de tablas vinculadas, (trate de utilizar views siempre que sea posible o si su query tiene más de una tabla).
  • Consultas mixtas que tienen tablas locales y tablas vinculadas de SQL Server (trate de evitar eso).
  • Código de Tabledefs y Querydef en su aplicación.
  • Cuando usted necesite introducir datos en la tabla temp en Access.
  • Cuando usted necesite utilizar pass through queries para reportes o formularios en el modo de solo lectura.
  • Cuando usted necesite trabajar con tablas locales.

Aquí le dejo una lista de situaciones en la que puede utilizar ADODB:

  • Cuando usted necesite manejar datos de SQL Server en su código utilizando recordsets
  • Insertar registros vía códigoe
  • Correr consulta de acción
  • When you need to upload data via XML dataCuando usted necesite subir datos vía XML
  • Generalmente, si usted puede escoger entre utilizar DAO (tablas vinculadas) o ADODB (directo a SQL Server) utilice el último.

Esto es solo una lista parcial, hay muchísimos ejemplos más de cuando usted debe usar DAO o ADODB, pero esta lista cubre una amplia revisión de las situaciones que se encontrará cuando se trata de optimizar el Access con SQL Server.

Eche un vistazo a las siguientes publicaciones para que aprenda un poco más acerca de este tema: