Tengo una aplicacion en vb6 echa con DAO y tengo me modificarle el codigo para que me funcione con ADO para utilizar MySQL,por lo visto solo debo modificar solo los recordset, el codigo es corto y simple pero estoy bastante rallao con el tema, aki teneis el code, alguien me echa una mano??, ES URGENTE Y YA HE ECHO UNAS MODIFICACIONES.



'servidor
Public rsuser As ADODB.Recordset
'declaramos el objeto q dara conexion con la bd
Public miconexion As ADODB.Connection
Option Explicit
Dim num_sockets As Integer
Dim misesion As Workspace
Dim mibd As Database
Dim rs As Recordset
Dim rs2 As Recordset
Dim valido As Boolean
Dim encontrado As Boolean
Dim usuario(0 To 10) As String
Dim password(0 To 10) As String
Dim valida As Boolean
Dim conexion As Integer


Private Sub cmdcerrar_Click()
Unload Me
End Sub



'Este procdimiento es el ke utilizo para accesar la base de datos ke tengo en MySql
Public Sub conectmysql()
'instanciamos la conexion (ahora existe)
Set miconexion = New ADODB.Connection
miconexion.ConnectionString = "DRIVER={MySql odbc 3.51 driver};" _
& "server=localhost;" _
& "database=mantenimiento;" _
& "UID=root;" _
& "PWD=aletss;" _
& "option=" & 1 + 2 + 8 + 32 + 2048 + 16384
'esto no se bien para que sirve
miconexion.CursorLocation = adUseClient
miconexion.Open
End Sub



Private Sub Form_Load()
'conexion cliente - servidor
ws(0).LocalPort = 1001
ws(0).Listen
num_sockets = 0
'conexion servidor - odbc - mysql
Call conectmysql
Set rsuser = New Recordset
rsuser.Open "Select * from mantenimiento", miconexion
End Sub


Private Sub ws_Close(Index As Integer)
ws(Index).Close
Unload ws(Index)
End Sub


'AKI NO HACE FALTA CAMBIAR NADA


'codigo de conexion de los clientes con el Servidor
Private Sub ws_ConnectionRequest(Index As Integer, ByVal requestID As Long)
Dim numero As Integer
If ws(0).State <> sckClosed Then
ws(0).Close
End If
numero = num_sockets + 1
Load ws(numero)
ws(numero).LocalPort = 0
ws(numero).Accept (requestID)
If numero >= 12 Then
ws(numero).Close
Else
num_sockets = numero
ws(0).Listen
End If
End Sub


'AKI NO HACE FALTA CAMBIAR NADA


'datos de llegada al servidor desde los clientes
Private Sub ws_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim cadena As String
Dim opcion As String
Dim lon As Integer
conexion = Index
ws(Index).GetData cadena
opcion = Left(cadena, 1)
lon = Len(cadena)
cadena = Right(cadena, lon - 1)
Select Case opcion
Case 0:
separarpalabras (cadena)
valida = True
Case 1:
If (separañadir(cadena)) Then
ws(Index).SendData "3"
End If
Case 2:
buscar (cadena)
Case 3:
If (separamodificar(cadena)) Then
ws(Index).SendData "4"
End If
Case 4:
baja (cadena)
End Select
If valida = True Then
validar
If valido = True Then
ws(Index).SendData "0Usuario valido"
Else
ws(Index).SendData "1Usuario no valido"
End If
valida = False
End If
End Sub


'AKI NO HACE FALTA CAMBIAR NADA


'funcion para separar usuario$password
Private Sub separarpalabras(cadena)
Dim i As Integer
Dim lon As Integer
lon = Len(cadena)
For i = 0 To lon - 1
If Mid(Right(cadena, lon - i), 1, 1) = "$" Then
usuario(conexion) = Left(cadena, i)
password(conexion) = Right(cadena, lon - i - 1)
End If
Next i
End Sub


'funcion para separar los campos y se añadan al registro en la BD
Private Function separañadir(cadena) As Boolean
Dim i As Integer
Dim j As Integer
Dim datos As Integer
Dim h As Integer
Dim lon As Integer
Dim cont As Integer
lon = Len(cadena)
datos = 0
j = -1
cont = 0
Set rs2 = mibd.OpenRecordset("select * from ordenadores", dbOpenDynaset)
rs2.AddNew
For i = 0 To lon
If Mid(Right(cadena, lon - i), 1, 1) = "$" Then 'tomo cada
'caracter de la cadena y me lo compara con $
h = i - j - 1
'para q los datos se añadan en la tabla
'cada campo en su sitio
rs2.Fields(cont) = Mid(cadena, j + 2, h)
j = i
cont = cont + 1
'Esta vble guarda el contador para el array
'de los campos en la base de datos.
End If
Next i
rs2.Update
rs2.Close
separañadir = True
End Function


'funcion para separar los campos modificados desde el formulario
Private Function separamodificar(cadena) As Boolean
Dim i As Integer
Dim j As Integer
Dim datos As Integer
Dim h As Integer
Dim lon As Integer
Dim cont As Integer
lon = Len(cadena)
datos = 0
j = 0
cont = 0
Set rs2 = mibd.OpenRecordset("select * from ordenadores", dbOpenDynaset)
rs2.Edit
For i = 0 To lon
If Mid(Right(cadena, lon - i), 1, 1) = "$" Then 'tomo cada
'caracter de la cadena y me lo compara con $
h = i - j - 1
'necesito q los datos se añadan en la tabla
'cada campo en su sitio
rs2.Fields(cont) = Mid(cadena, j + 2, h)
j = i
cont = cont + 1
'Esta vble guarda el contador para el array
'de los campos en la base de datos.
End If
Next i
rs2.Update
rs2.Close
separamodificar = True
End Function


'consulta para validar al usuario y password
Private Sub validar()
Dim path As String
Dim consulta As String
path = App.path & "\mantenimiento.mdb"
Set misesion = Workspaces(0)
Set mibd = misesion.OpenDatabase(path)
consulta = "select usuarios.usuario, usuarios.password "
consulta = consulta & "from usuarios WHERE(usuarios.usuario='" & usuario(conexion) & "') AND (usuarios.password='" & password(conexion) & "')"
Set rs2 = mibd.OpenRecordset(consulta, dbOpenDynaset)
If rs2.EOF = True And rs2.BOF = True Then
valido = False
Else
valido = True
End If
rs2.Close
End Sub


'funcion de busqueda en la BD
Private Sub buscar(cadena)
Dim path As String
Dim buscado As String
path = App.path & "\mantenimiento.mdb"
Set misesion = Workspaces(0)
Set mibd = misesion.OpenDatabase(path)
buscado = "select ordenadores.referencia "
buscado = buscado & "from ordenadores WHERE(ordenadores.referencia like '" & cadena & "');"
Set rs2 = mibd.OpenRecordset(buscado, dbOpenDynaset)
If rs2.EOF = True And rs2.BOF = True Then
encontrado = False
ws(conexion).SendData "6"
Else
encontrado = True
kierofila (cadena)
End If
End Sub


'funcion por si existe el campo(referencia) buscado devuelva el registro entero
Private Sub kierofila(cadena)
Dim datos As String
Dim i As Integer
Dim consulta As String
datos = "SELECT ordenadores.referencia, ordenadores.pc, ordenadores.aula, ordenadores.so, ordenadores.edificio "
datos = consulta & "From ordenadores "
datos = consulta & "WHERE (((ordenadores.referencia) LIKE '" & cadena & "');"
Set rs2 = mibd.OpenRecordset("select * from ordenadores WHERE referencia like '" & cadena & "'", dbOpenDynaset)
rs2.Edit
With rs2
ws(conexion).SendData "2" & .Fields("referencia") & "$"
For i = 1 To 4
ws(conexion).SendData .Fields(i) & "$"
Next i
End With
rs2.Update
rs2.Close
End Sub


'funcion para eliminar algun registro determinado
Private Sub baja(cadena)
Dim elimina As String
elimina = "Delete * from ordenadores "
elimina = elimina & " WHERE (((ordenadores.referencia) like '" & cadena & "'));"
mibd.Execute (elimina)
ws(conexion).SendData "5"
End Sub