Te explico como realizo yo la conex a mi BD usando Cliente - Servidor. NO importa si es MySQL, Firebird, Oracle, SQL Server, SQL Front, etc... Lo que sea...! Te explico..!
Tengo un Modulo llamado: ModConex.Bas
'Declaro mi variable de Conexión
Public NewConnection As New ADODB.Connection
'Realizo mi conexión
Public Sub Abrir_Conex()
Dim StrConnectionString as String
StrConnectionString="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=BudGet;Data Source=MNUNEZ" 'Aca va tu string de conexión. Por ser MySQL usas ODBC...!
NewConnection.CursorLocation = adUseServer
NewConnection.ConnectionString = StrConnectionString
NewConnection.CommandTimeout = 0
NewConnection.Open
End Sub
Y para aperturar la conex usa asi en el Load o donde inicializas el proyecto.
Private Sub Form_Load()
Abrir_Conex
End Sub
Cómo puedes saber el estado de tu conexión?
Ejecuta un: Debug.Print NewConnection.State
Si devuelve 1 esta conectado, si devuelve 0 no esta conectado...!
Ahora, para abrir una tabla y ejecutar una consulta SQL, Qué hago? OK aquí voy...
En el mismo Modulo ModConex.Bas
Public Sub OPENTABLA(Xrecordset As ADODB.Recordset, xselect As String, NWConnection As ADODB.Connection, tipocursor As Integer, Optional MuestraError As Boolean)
On Error GoTo basedato
If Xrecordset.State = adStateOpen Then Xrecordset.Close
Xrecordset.ActiveConnection = NWConnection
Xrecordset.CursorType = adOpenDynamic
Xrecordset.CursorLocation = tipocursor
Xrecordset.LockType = adLockOptimistic
Xrecordset.Open xselect
Exit Sub
On Error GoTo 0
basedato:
If MuestraError = True Then
MsjExc "Operación no permitida. " + Err.Description + " Error numero " + Str(Err.Number)
Resume Next
End If
End Sub
Cómo uso eso??? Aquí voy...!
'Para realizar un insert
Dim RSInsertar As New ADODB.Recordset
OPENTABLA RSInsertar, "INSERT INTO tbl_txt(id_cuenta_contable,id_unidad_negocio,id_status,det_txt,obs_txt)Values(" & ID_CC & "," & ID_UN & "," & Status & ",'" & Detalle & "','" & Observacion & "')", NewConnection, 3
'Para realizar un delete
Dim RsEliminar As New ADODB.Recordset
OPENTABLA RsEliminar, "Delete From tbl_txt where id_cuenta_contable=" & ID & " and id_unidad_negocio=" & ID_UNIDAD & "", NewConnection, 3
'Para realizar un Update
Dim RsActualizar As New ADODB.Recordset
OPENTABLA RsActualizar, "Update tbl_txt set Monto = '" & FormatNumber(txtMonto.text,2) & "' where id_cuenta_contable=" & ID & " and id_unidad_negocio=" & ID_UNIDAD & "", NewConnection, 3
'Para realizar un select y visualizar un registro
'Ejemplo obtenido de mi sistema
Public Sub Movimiento_MES()
On Error Resume Next
Dim Ver_Monto As New ADODB.Recordset
OPENTABLA Ver_Monto, "SELECT Monto_Mes FROM tbl_TXT WHERE id_cuenta_contable=" & ID_CC & " and id_unidad_negocio=" & ID_UNIDAD, NewConnection, 3
If Ver_Monto.State = 1 Then
If Ver_Monto.EOF = False Then
txtMontoMes.Text = FormatNumber(Ver_Monto!Monto_Mes, 2)
End If
End If
End Sub
Bueno espero te sea de ayuda esto..! Saludos