Ronald, primero que nada lo felicito por tan excelente tutorial, ahora la pregunta...
estoy elaborando un pequeño proyecto de prueba ( y para mi aprendizaje) siguiendo su totorial, en el VT11, se me presenta un problema al ejecutar el cmdOk.
Se supone que el procedimiento Usuario es cargado en el form load al ejecutar el programa y dentro de este se valida que la tabla o este abierta para poder ingresar.
Al momento que ejecuto el programa y una vez que este valida los campos User y Pass entra en el Recordset y actualiza la tabla. alli se detiene y muestra el error 3704 te dejo mi codigo tanto en los modulos con en el form. Espero puedas ayudarme a entender lo que sucede.
**** ModuleDeclare***
Public Conex As New ADODB.Connection
Public Rs As New ADODB.Recordset
***ModuleSentencias***
Public Sub main() 'creando rutina de conexion
With Conex 'variable de conexion a la base de datos
.CursorLocation = adUseClient
.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Mlab.mdb;Persist Security Info=False"
LoginForm.Show
End With
End Sub
Public Sub Usuario1() 'verifica el estado de la tabla y si esta abierta la cierra
With Rs
If Rs.State = 1 Then
Rs.Close
Rs.Open " select * from usuario", Conex, adOpenStatic, adLockOptimistic
End If
End With
End Sub
******Form*****
Private Sub cmdcerrar_Click()
Unload Me
End Sub
Private Sub CmdOk_Click()
'validamos que las cajas de texto no esten vacias
If txtuser = "" Then
MsgBox " Ingrese Nombre de Usuario", vbInformation, "AViso": txtuser.SetFocus: Exit Sub
Else
If txtpass = "" Then
MsgBox " Ingrese Clave de Usuario", vbInformation, "AViso": txtpass.SetFocus: Exit Sub
End If
End If
'vamos a la conexion con la base de datos
With Rs
.Requery 'actualiza la tabla
.Find "id='" & Trim(txtuser.Text) & "'" ' realiza la busqueda comparando ID con txtuser
If .EOF Then 'si llego al final del registro y no se encuentro nada en la tabla
MsgBox " Usuario no Registrado", vbInformation, "Aviso" 'envio mensaje de error
txtuser.Text = ""
Exit Sub ' y dejo de ejecutar este sub
Else ' si no
If !clave = Trim(txtpass.Text) Then ' si la clave es igual al txtpass
NewUserForm.Show ' llamo al siguiente formulario
Unload Me
Else
MsgBox "Clave Incorrecta", vbInformation, "Aviso" 'sino lo es envio este mensaje
txtpass.Text = ""
Exit Sub
End If
End If
End With
End Sub
Private Sub Form_Load()
Usuario1 'llama al procedimiento usuario creado en el modulo sentencia
End Sub
Gracias de antemano y espero poder contar con su apoyo en lo sucesivo
[email protected]