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

Ayuda con este problema

Estas en el tema de Ayuda con este problema en el foro de Visual Basic clásico en Foros del Web. Hola.. bueno sere rapido y breve :D Tengo un programa que genera una base de datos con access. Al principio por no saber .. convertia ...
  #1 (permalink)  
Antiguo 28/07/2005, 08:39
Avatar de UID
UID
 
Fecha de Ingreso: febrero-2004
Ubicación: Villahermosa tabasco cent
Mensajes: 251
Antigüedad: 20 años, 2 meses
Puntos: 0
Ayuda con este problema

Hola.. bueno sere rapido y breve :D
Tengo un programa que genera una base de datos con access.
Al principio por no saber .. convertia la base de datos a acess 97 pero como ya se que con el control ADO (adodc ) se puede utilizar access 2000 y ya no tengo la necesidad de transformarla a access 97.
Ahora el problema esta en modificar la informacion en esa base de datos.
Para modificarla tenia el control ADO y EL Control DAO.
COn el Ado cargaba la lista de datos y con el Control DAO modificaba y guardaba y remplazaba la nueva informacion.

Este es el codio del DAO:
Código:
Private Sub save_Click()

Data1.Refresh
    Data1.Recordset.Edit
    Data1.Recordset.Fields("regoexp") = Text2.Text
    Data1.Recordset.Fields("barra") = Text3.Text
    Data1.Recordset.Fields("mnemonico") = Text4.Text
    Data1.Recordset.Fields("caja") = Text5.Text
    Data1.Recordset.Fields("pozo") = Text6.Text
    Data1.Recordset.Fields("observacion") = Text1.Text
    Data1.Recordset.Update
    Data1.Recordset.Close
    Call load_Click
    MsgBox "Error Modificado", vbInformation
    Text1.Text = ""
    Text2.Text = ""
    Text3.Text = ""
    Text4.Text = ""
    Text5.Text = ""
    Text6.Text = ""

End Sub
Lo que quiero es no usar el DAO ( data1 ) sino usar el ADO
Intente utilizar el siguiente codigo pero pues no funciona solo me agrega otro registro no modifica.

Codigo ADO:

Código:
Private Sub save_Click()
bd.Refresh
bd.Recordset.AddNew
        bd.Recordset.Fields("regoexp") = Text1.Text
        bd.Recordset.Fields("barra") = Text2.Text
        bd.Recordset.Fields("mnemonico") = Text3.Text
         bd.Recordset.Fields("observacion") = Text4.Text
          bd.Recordset.Fields("caja") = Text5.Text
           bd.Recordset.Fields("pozo") = Text6.Text
                    bd.Recordset.Update
        bd.Recordset.Close
        MsgBox "Error Agregado", vbInformation
        Text1.Text = ""
        Text2.Text = ""
        Text3.Text = ""
        Text4.Text = ""
        Text5.Text = ""
        Text6.Text = ""
        Text1.SetFocus
End Sub
con ese codigo me agrega pero no me lo modifica.. que tengo que cambiarle.. intente cambiar la siguiente linea:
Código:
bd.Recordset.AddNew
por esta linea
Código:
bd.Recordset.EditMode
y no funciono y luego lo intente cambiar por este:
Código:
bd.Recordset.RecordCount
y no funcion y por ultimo lo cambie por este:
Código:
bd.Recordset.Save
y tampoco funciono.. Sera que me puedan ayudar??

digo que tengo que cambiar esa linea ya que es la unica que cambia con el control DAO.. osea hice una comparacion con DAO y ADO y utilizan el mismo codigo a excepcion del que yo modifique ahi se pueden dar cuenta.

Codigo DAO:
Código:
Data1.Recordset.Edit
Codigo ADO:
Código:
bd.Recordset.AddNew
Espero su ayuda. Gracias de antemano.
__________________
http://www.xpresatelibre.com La Xpresion Al Maximo Nivel
  #2 (permalink)  
Antiguo 29/07/2005, 03:37
Avatar de Kelpie  
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 22 años, 2 meses
Puntos: 8
Empleando ADO un recordset entra en edición de manera automática cuando se modifica. Si empleas el método addNew, evidentemente te añade un registro nuevo. Si lo que quieres es solo modificarlo intentalo a pelo... :

Código:
Private Sub save_Click()
bd.Recordset.Fields("regoexp") = Text1.Text bd.Recordset.Fields("barra") = Text2.Text bd.Recordset.Fields("mnemonico") = Text3.Text bd.Recordset.Fields("observacion") = Text4.Text bd.Recordset.Fields("caja") = Text5.Text bd.Recordset.Fields("pozo") = Text6.Text bd.Recordset.Update bd.Recordset.Close MsgBox "Error Agregado", vbInformation Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Text5.Text = "" Text6.Text = "" Text1.SetFocus
End Sub
Lo que no entiendo es porqué cierras el recordset...

Saludos
__________________
Kelpie
  #3 (permalink)  
Antiguo 29/07/2005, 06:33
Avatar de UID
UID
 
Fecha de Ingreso: febrero-2004
Ubicación: Villahermosa tabasco cent
Mensajes: 251
Antigüedad: 20 años, 2 meses
Puntos: 0
:D a pues lo cierro por que como al principio no sabia mucho o aun no se mucho sobre como usar los comandos para modificar y crear base de datos. Entonces estudiando y con comentarios de mis cuates "programadores" me decian. "Y ya aqui cierras con un recordset.close", por eso es que lo pongo.. pero pues nose si es necesario ponerlo o quitarlo, tu que me sugieres...??? Que por cierto gracias por el consejo si me sirvio :D
__________________
http://www.xpresatelibre.com La Xpresion Al Maximo Nivel
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 23:11.