hola, lo primero
tener instalado los driver ODBC para MySQL, yo instale los 3.5
te dejo mi trabajo ya que lo hago en una intranet y no sirven las pass
Código vb:
Ver originalPublic cn, RS
Sub abrirConn()
Set cn = CreateObject("ADODB.Connection")
Set RS = CreateObject("ADODB.Recordset")
strCon = "Driver={MySQL ODBC 3.51 Driver};Server=base-ale-cl;Database=excelcalculador;" _
& "User=connExcel;Password=concurrencia;Option=3;"
cn.Open strCon
End Sub
Sub cerrarConn()
RS.Close
End Sub
Sub cargarUsuarios()
abrirConn
strSQL = "SELECT name_users FROM dat_usuarios ORDER BY name_users"
RS.Open strSQL, cn
f = 0
tope = 8
Do While Not RS.EOF
' recorre los campos en el registro actual del recordset para recuperar el dato
For i = 0 To RS.Fields.Count - 1
'Sheets(1).login.AddItem RS.Fields(i)
Sheets(1).Cells(f + tope, 14) = RS.Fields(i)
'Cells(i + 15, 1) = RS.Fields(i)
Next
f = f + 1
' Siguiente registro
RS.MoveNext
Loop
cerrarConn
limitelista = f + tope - 1
With Sheets(1).Range("C9")
.Validation.Delete
.Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=N" & tope & ":N" & limitelista
.Validation.IgnoreBlank = True
.Validation.InCellDropdown = True
End With
End Sub
Sub coneccion()
usuario = Sheets(1).Range("C9")
passescrita = Sheets(1).Range("C10")
abrirConn
strSQL = "SELECT id_users,inic_users,pass_users FROM dat_usuarios WHERE name_users=""" & usuario & """LIMIT 1"
RS.Open strSQL, cn
Do While Not RS.EOF
' recorre los campos en el registro actual del recordset para recuperar el dato
For i = 0 To RS.Fields.Count - 1
If i = 0 Then idusuario = RS.Fields(i)
If i = 1 Then inicusuario = RS.Fields(i)
If i = 2 Then passusuario = RS.Fields(i)
Next
' Siguiente registro
RS.MoveNext
Loop
cerrarConn
If CStr(passescrita) = CStr(passusuario) Then
Sheets(1).Range("O1") = idusuario
Sheets(1).Range("O2") = inicusuario
ingreso
Else
MsgBox ("Error en la contraseña")
Exit Sub
End If
End Sub
salu2