Hola, te felicito por usar ADO y desde codigo, y no usar controles como el ADODC o DATA.
primero que nada decirte que no declares las variables como
As New, y siempre lo hagas con
As primero, y despues setearla con
Set, ¿porque? bueno porque la primera forma esta desaconsejada usar por temas de performance, ya que el visual basic internamente chequea (cada vez que usas la variable), chequea si el objeto esta instanciado o no, en cambio de la segunda forma no lo hace y es la correcta, aparte una vez me paso de mantener un sistema que lanzaba un error y era porque estaba declarada una variable con
As New, desde el IDE funcionaba correctamente, pero al compilarlo lanzaba error y era por eso.esto es para cualquier objeto.
siempre que se usa algo de bases de datos es bueno usar un modulo comun para declarar las variables globales y ahi en el
Sub_Main del modulo hacer la conexion a al base, y dejar los formularios sin ese codigo.
para eso debes agregar un modulo y en las propiedades de tu proyecto, debes cambiar para que el proyecto comienze desde el
Sub_Main y no desde el Formulario, eso lo cambias en una opcion llamada
Objeto de Inicio.
estas 2 variables adoConexion y adoRegistros deben ir en un modulo comun.
y debes en el
Sub_Main setearlas y conectarte a la base.
aca te paso un codigo de como deberia quedar el modulo.
Option Explicit
Public mConexion As ADODB.Connection 'Conexion Principal
Public mRs As ADODB.Recordset 'Recordset Principal
Public mRsAux As ADODB.Recordset 'Recordset Auxiliar
Public mCmd As ADODB.Command 'Para Ejecutar Comandos
Sub Main()
Set mConexion = New ADODB.Connection
Set mRs = New ADODB.Recordset
Set mRsAux = New ADODB.Recordset
Set mCmd = New ADODB.Command
mConexion.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\TuBase.mdb;"
mConexion.Open
frmLogin.Show ' Aca mostras tu Formulario de inicio
End Sub
otra cosa, esa variable que puse llamada
mCmd es para ejecutar comandos SQL, o sea INSERTS, DELETE, UPDATE a la base de datos, ya que yo opto por usarlo asi en vez de usar los metodos .AddNew o .Update o Delete del recordset, lo cual te va a enseñar de paso el lenguaje SQL.
ahi fijate el codigo App.Path & "\TuBase.mdb;", ahi cambiale el nombre por el de tu base y ese App.Path hace que la base de datos daba estar en la misma carpeta del proyecto donde va a estar el .exe compilado despues, ya que no debes usar rutas fijas como por ejemplo "C:\base\base.mdb" ya que eso solo funcionaria en tu pc, siempre la base debe estar en el directorio de la aplicacion o en una subcarpeta en este, o en una carpeta de red compartida. eso lo tenes mal ahi vos en el codigo por eso no te funciona.
no hace falta que pongas los
vbCr en la cadena SQL.
saludos.