En un video anterior publique (entre otras cosas) sobre como hacer esto, en todo caso pudiera que no halla sido muy claro sobre esto y con el único afán de lograr que algunos colegas dejen por fin de usar el antiquísimo e impráctico control ADODC (que ya bastante tenemos con seguir programando con VB6 que no se caracteriza por ser un lenguaje de avanzada) es que me he tomado un tiempo para escribir estas lineas que espero los ayude a migrar su código.

Para ir entendiendo, el esquema de consulta general considero que se divide en 3 partes. Esta la BD, esta la consulta SQL que se gestiona con un recordset y finalmente esta el control de presentación que es lo que poblará el recordset (estoy siendo algo generalista porque internamente hay mas pasos pero lo hago porque en un nivel principiante no necesitamos tanto detalle que en todo caso podremos profundizar luego)
recorridop

1.- Lo primero que debe hacer es agregar la referencia:

Referencias

Debe estar Microsoft ActiveX Data Objects 2.5 Library

Aclaramos entonces que esta es una referencia al componente ADO indicado, el componente ADO es el encargado de enlazar a nuestro programa con el proveedor de datos y viceversa, ya luego en otro post podremos ver esto en mas detalle. Las versiones del ADO van desde el 1.5 al 2.8 siendo recomendable usar la 2.5 en adelante puesto que muchos posibles bugs han sido resueltos, si tiene instalado mas de uno debe especificar cual de ellas usará.

2.- Una vez agregada es conveniente hacer la conexión desde un módulo para que tenga alcance a todo el proyecto, en el caso de usarse sobre red local es suficiente hacer la conexión una sola vez al iniciar el proyecto y terminarla una vez el proyecto se cierre. Vale decir que el ejecutable se conectará a la base de datos por única vez, posteriormente se podrán generar innumerables consultas SQL cada una en un recordset y estas poblaran los controles de presentación como DataCombos, Grids, Reportes, etc. En el caso de conexión por internet es casi seguro que lo mas recomendable seria conectar y desconectar por transacción ya que la conexión normalmente no se queda dedicada, al menos no por ahora.

Abran un módulo bas simple y deben poner este codigo:

Public dB As ADODB.Connection

Lo primero es estable la conexión y para ello necesitamos una variable de conexión, normalmente yo la defino como dB por una manía personal pero ustedes pueden nombrarla como les plaza siendo cn la variable que mayormente se ve en muchos ejemplos, eso ya es indistinto.
Con esa linea de código la variable ya esta declarada, aun falta instanciarla. Nótese que uso Public porque como dije arriba quiero que tenga alcance a todo el proyecto.

El siguiente código lo llame Conexion y lo hago público, la explicación de ese codigo esta en los comentarios.

Public Sub Conexion()
Dim Ruta As String     'Declaramos la variable Ruta para la ruta de la BD
Dim Usuario As String  'Declaramos la variable Usuario que es el usuario de la BD
Dim Password As String 'Declaramos la variable Password que es el password a la bd si fuese el caso
Dim Driver As String   'Declaramos la variable Driver para almacenar el Driver del motor que usamos.

Ruta = "C:\PRUEBADB.FDB"  'Asignamos la ruta, esto se puede hacer tambien dinamicamente

Usuario = "SYSDBA"      'Este es el usuario por defecto de Firebird.
Password = "masterkey"  'Esta es la contraseña por defecto de Firebird
Driver = "Firebird/InterBase(r) driver"  'Asignamos el driver de Firebird

Conecta = _
"DRIVER=" & Driver & "; UID=" & Usuario & "; PWD=" & Password & "; DBNAME=" & Ruta & "; "
'En la variable conecta armamos toda la cadena de conexión

Set dB = New ADODB.Connection 'Instanciamos la conexión
dB.Provider = "MSDatashape" 'Esto requiere de una explicación extensa que luego veremos, pero
                            'para resumir dire que es una especie de preformateador a cierto grupo 
                            'de registros, es muy necesario si usamos consultas jerárquicas.

dB.Open Conecta    'El paso final, aqui se conecta. ¿Como es? como ya arriba instanciamos a dB ahora aqui 
                   'abrimos la conexión, si no se conecta nos saltara un error el cual podemos capturar para
                   'dar al usuario un mensaje "mas humano" como: No se puedo realizar la conexión.
End Sub

En el caso de usar Access el código de conexión que a continuación pongo les servirá: (solo comentare lo que no se comento arriba)
Para los archivos Access con extensión ACCDB
[cc lang=”VB”]
Public Sub Conexion()
Dim S As String
S = App.Path & “\PRUEBABD.accdb” & “;”

CadenaCompleta = _
“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=” & S & “;Persist Security Info=False;”
Set dB = New ADODB.Connection
dB.CursorLocation = adUseClient ‘Básicamente se refiere a que se pre-procesa la consulta del lado del
‘cliente (usando sus recursos) y contribuir a que no se generan
‘cuellos de botella en el servidor.
dB.Provider = “MSDataShape”
dB.Open CadenaCompleta ‘ conectamos la BD
End Sub

Y los archivos Access que usan extensión MDB:

Public Sub Conexion()
Dim S As String
S = App.Path & "\PRUEBABD.mdb" & ";"

CadenaCompleta = _
"Provider=MSDataShape.1;Extended Properties=Jet OLEDB:Database Password=mipassword;Persist Security Info=False;Data Source=" & S & ";Data Provider=MICROSOFT.JET.OLEDB.4.0"
Set dB = New ADODB.Connection
dB.CursorLocation = adUseClient
dB.Provider = "MSDataShape"

dB.Open CadenaCompleta ' conectamos la BD

End Sub

Bien hasta allí ya tenemos la conexión, solo resta llamar al procedimiento Conexion desde el evento Load de nuestro formulario principal, no deben conectar y desconectar por cada formulario, no es necesario si hablamos de un entorno de red local, la conexión se mantendrá sobre la variable dB (o la que ustedes usen) en todo el proyecto porque la declaramos en un modulo.

Bien, con esto ya tenemos la conexión establecida, en este siguiente post haremos la consulta hacia la BD.