Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Error con RecordSet

Estas en el tema de Error con RecordSet en el foro de Visual Basic clásico en Foros del Web. Hoal Amigos Bueno, estoy desarrollado un Programa y transfiero Datos de un Form a Otros. ¿Como Funciona? Bien, mira Form3 tiene 7 TextBox y está ...
  #1 (permalink)  
Antiguo 23/10/2004, 21:29
 
Fecha de Ingreso: septiembre-2003
Ubicación: Santo Domingo - R. Dominicana
Mensajes: 606
Antigüedad: 20 años, 7 meses
Puntos: 0
Error con RecordSet

Hoal Amigos

Bueno, estoy desarrollado un Programa y transfiero Datos de un Form a Otros. ¿Como Funciona?

Bien, mira Form3 tiene 7 TextBox y está conectado a una BD. Tambien este Form tiene varios Botones como son (Editar - Guardar - Buscar)

En Form7 está compuesto por: 1DBList y un Boton. Tambien por un Data.

En este DBlist se visualizan los Nombres de las Personas que estan en la BD.

Ahora. Cuando entro al Form7 que le doy a Buscar me sale ese Form. Despues coje y me sale la lista con los Nombres seleccione uno y cuando le doy a Aceptar automaticamente me lo envia al Form3 al TextBox (txtNombre) y despues automaticamente graciasa SQL el Form busca los Datos de ese Nombre y los Visualiza en los demas TextBox. Asta ahí vamos Bien. Despues le doy a Editar y todo bien. Se actiba el cmdGuardar y hago las Modificaciones y cuando le doy a Guardar me salo lo siguiente:



Despues cuando le doy Depurar me sale lo Siguiente:

Cita:
rs.Update
Para Conectarme a mi BD estoy utilizando el Siguiente Código:

Código PHP:
Dim Cn As New ADODB.Connection
Dim rs 
As New ADODB.Recordset
Dim sql 
As String

Private Sub cmdBuscar_Click()
    
On Local Error Resume Next
    Load Form7
    Form7
.Show vbModal
    txtNombre 
Nombre
    sql 
"select Nombre,Telefono,Celular,Fax,Email,Direccion from Directorio where Nombre like '%" txtNombre.Text "%'"
    
Set rs Cn.Execute(sql)
    If 
rs.BOF True Then
    MsgBox 
"        No Existen registros        "
    
Else
    
txtNombre.Text rs!Nombre
    txtTelefono
.Text rs!telefono
    txtCelular
.Text rs!celular
    txtFax
.Text rs!fax
    txtEmail
.Text rs!email
    txtDireccion
.Text rs!direccion
    End 
If
End Sub

Private Sub cmdSalir_Click()
    
Unload Me
    Load Form1
    Form1
.Show vbModal
End Sub

Private Sub cmdEditar_Click()
    If 
Trim(txtNombre.Text) = "" Then
    MsgBox 
"Debe escribir el nombre del Contácto."vbInformation"Información"
    
txtNombre.SetFocus
    
Exit Sub
    End 
If
    
ModoEditar True
End Sub

Private Sub CmdGuardar_Click()
    If 
Trim(txtNombre.Text) = "" Then
    MsgBox 
"Debe escribir el nombre del Contácto."vbInformation"Información"
    
txtNombre.SetFocus
    
Exit Sub
    End 
If
    
rs.Update
    ModoEditar False
End Sub

Private Sub Form_Load()
    
ModoEditar False
    Cn
.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=" App.Path "\Directorio.mdb ;Admin=Admin;Pwd=896576560;"
    
rs.CursorType adOpenKeyset
    rs
.Open "Select * From Directorio"CnadOpenStaticadLockOptimistic
    Label8
.Caption rs.RecordCount " Contactos Agregados a su lista"
    
Set txtNombre.DataSource rs
    txtNombre
.DataField "Nombre"
    
Set txtTelefono.DataSource rs
    txtTelefono
.DataField "Telefono"
    
Set txtCelular.DataSource rs
    txtCelular
.DataField "Celular"
    
Set txtFax.DataSource rs
    txtFax
.DataField "Fax"
    
Set txtEmail.DataSource rs
    txtEmail
.DataField "Email"
    
Set txtDireccion.DataSource rs
    txtDireccion
.DataField "Direccion"
    
If Ok Then txtNombre.SetFocus
    rs
.AddNew
End Sub

Private Sub ModoEditar(ByVal Ok As Boolean)
    
txtNombre.Locked Not Ok
    txtTelefono
.Locked Not Ok
    txtCelular
.Locked Not Ok
    txtFax
.Locked Not Ok
    txtEmail
.Locked Not Ok
    txtDireccion
.Locked Not Ok
    cmdBuscar
.Enabled Not Ok
    cmdEditar
.Enabled Not Ok
    cmdGuardar
.Enabled Ok
    cmdSalir
.Enabled Not Ok
    cmdAyuda
.Enabled Not Ok
    
If Ok Then txtNombre.SetFocus
End Sub

Private Sub Form_Unload(Cancel As Integer)
    
Cn.Close
    Set Cn 
Nothing
End Sub 
Lo mismo me pasa a la hora de Borrar. El codigo del Boton cmdEliminar es:

Código PHP:
Private Sub CmdEliminar_Click()
    If 
Trim(txtNombre.Text) = "" Then
    MsgBox 
"No hay Registros"vbInformation"Información"
    
txtNombre.SetFocus
    
Exit Sub
    End 
If
    
rs.Delete
    
If rs.EOF Then
        rs
.MoveLast
    End 
If
    
Unload Me
    Load Form4
    Form4
.Show vbModal
End Sub 
Pero en vez de rs.Update es:

Cita:
rs.Detele
Como Arreglo esto.

Saludos
  #2 (permalink)  
Antiguo 24/10/2004, 13:04
 
Fecha de Ingreso: septiembre-2003
Ubicación: Santo Domingo - R. Dominicana
Mensajes: 606
Antigüedad: 20 años, 7 meses
Puntos: 0
Detectar IP y Nombre de la PC

Hola Amigos

Bueno, me gustaría saber como puedo hacer para Detectar en VB la IP y el Nombre del Computador. Y despues ponerlo en un TextBox

Saludos
  #3 (permalink)  
Antiguo 24/02/2005, 22:05
 
Fecha de Ingreso: febrero-2005
Ubicación: Campos y árboles
Mensajes: 44
Antigüedad: 19 años, 2 meses
Puntos: 0
La respuesta no te la voy a dar, me interesa más que intentes cambiar la metodología de trabajo.

Private Sub cmdEditar_Click()
If Trim(txtNombre.Text) = "" Then
MsgBox "Debe escribir el nombre del Contácto.", vbInformation, "Información"
txtNombre.SetFocus
Exit Sub
End If
ModoEditar True
End Sub

Private Sub CmdGuardar_Click()
If Trim(txtNombre.Text) = "" Then
MsgBox "Debe escribir el nombre del Contácto.", vbInformation, "Información"
txtNombre.SetFocus
Exit Sub
End If
rs.Update
ModoEditar False
End Sub



si te das cuen esto no es programación capitalista.

prueba hacer un modulo de mesg donde colocar
MsgBox "Debe escribir el nombre del Contácto.", vbInformation, "Información"
solo una vez.
  #4 (permalink)  
Antiguo 25/02/2005, 17:09
Avatar de lic_dahool  
Fecha de Ingreso: noviembre-2003
Mensajes: 418
Antigüedad: 20 años, 6 meses
Puntos: 0
Yo por otro lado, voy a hacer otro aporte, no respondo a tu pregunta porque no veo la imágen donde se supone dice el error, así que no se cual es el problema, pero te recomendaría que cambies tu metodología de programación, pones todo el código de negocio en los eventos Click del comando, aunque funciona esto no es bueno y te puede traer muchos problemas en un futuro, te recomiendo que limpies un poco tú código. Puedes crear clases y aplicar (dentro de lo que VB6 permite) las características de la POO, o crear módulos para separar el trabajo. Sino puedes irte a lo mínimo y por lo menos quitar el código de los eventos y hacer que estos simplemente llamen a una función o procedimiento.

Es simplemente una recomendación sobre las buenas costumbres de programación. Y te será muy útil cuando tengas que modificar o ampliar tu código.

Saludos.
__________________
La cantidad total de inteligencia del planeta permanece constante.
La población, sin embargo, sigue aumentando.

COLE


:cool: Los ordenadores no resuelven problemas ... ejecutan soluciones.
Laurent Gasser


Tienes alguna duda :pensando: ? >>> www.google.com :aplauso: <<<
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:43.