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

Modificar registros desde un datagrid con vb6.0

Estas en el tema de Modificar registros desde un datagrid con vb6.0 en el foro de Visual Basic clásico en Foros del Web. Bien tengo un formulario que busca 1 registro atravez de un boton para luego poder modificarlo o eliminarlo de la tabla EMPLEADOS cuyos campos son ...
  #1 (permalink)  
Antiguo 06/02/2008, 15:28
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 10 meses
Puntos: 10
Modificar registros desde un datagrid con vb6.0

Bien tengo un formulario que busca 1 registro atravez de un boton para luego poder modificarlo o eliminarlo de la tabla EMPLEADOS cuyos campos son CODIGO,APELLIDOS,NOMBRES y los controles utilizados en mi form son text1,text2,text3,CMDBUSCAR,CMDMODIFICAR,CMDELIMIN AR

El codigo completo de mi aplicacion es el sigte es muy basico y facil de entender
Código:
Dim BD As ADODB.Connection
Dim RG_EMPLEADOS As ADODB.Recordset

Private Sub Form_Load()
Set BD = New ADODB.Connection
Set RG_EMPLEADOS = New ADODB.Recordset
BD.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\MODIFICARDATOS.mdb;Persist Security Info=False"
RG_EMPLEADOS.Open "SELECT * FROM EMPLEADOS", BD, adOpenStatic, adLockOptimistic
End Sub

Private Sub PRESENTAR()
With RG_EMPLEADOS
Text1 = !CODIGO
Text2 = !APELLIDOS
Text3 = !NOMBRES
End With
End Sub

Private Sub CMDBUSCAR_Click()
With RG_EMPLEADOS
C = InputBox("Ingrese dato", "")
.MoveFirst
.Find "CODIGO='" & C & "'"
If .EOF = False Then
PRESENTAR
CMDELIMINAR.Enabled = True
CMDMODIFICAR.Enabled = True
Else
MsgBox "NO EXISTE CODIGO"
Text1 = ""
Text2 = ""
Text3 = ""
Text1.SetFocus
End If
End With
End Sub

Private Sub CMDMODIFICAR_Click()
With RG_EMPLEADOS
!CODIGO = Text1
!APELLIDOS = Text2
!NOMBRES = Text3
.Update
End With
CMDELIMINAR.Enabled = False
CMDMODIFICAR.Enabled = False
MsgBox "Se modifico el registro"
End Sub

Private Sub CMDELIMINAR_Click()
With RG_EMPLEADOS
.Delete
End With
CMDELIMINAR.Enabled = False
CMDMODIFICAR.Enabled = False
MsgBox "Se elimino el registro"
End Sub 
Mi pregunta es como hago para mostrar los registros de la tabla EMPLEADOS en una datagrid y al pulsar sobre un fila llame al formulario que tengo, pero con los datos de la fila que se seleeciono en el datagrid.

Todo esto seria para ya no tener que buscar mediante un boton el registro que deseo modificar o eliminar

saludos y espero me haya dejado entender

Última edición por franko1809; 06/02/2008 a las 19:07
  #2 (permalink)  
Antiguo 07/02/2008, 02:59
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 10 meses
Puntos: 37
Re: Modificar registros desde un datagrid con vb6.0

Al ser el DataGrid un control enlazado, cada vez que te muevas por él al mismo tiempo lo estás haciendo por el recordset.

Para cargar el DataGrid le pones esta instrucción en el Form Load (a continuación de abrir el recordset)

Set DataGrid1.DataSource = RG_EMPLEADOS

y para mostrar en los TextBox los datos del registros seleccionado

Código:
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
PRESENTAR
End Sub
y ya puedes modificar o eliminar los datos.
  #3 (permalink)  
Antiguo 07/02/2008, 10:20
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 10 meses
Puntos: 10
Re: Modificar registros desde un datagrid con vb6.0

Se presento lo siguiete, al agregar la linea que me diste es decir

RG_EMPLEADOS.Open "SELECT * FROM EMPLEADOS", BD, adOpenStatic, adLockOptimistic
Set DataGrid1.DataSource = RG_EMPLEADOS

1.-El datagrid no carga nada al ejecutar, a que se debe eso, acaso tengo que habilitar alguna opcion o algo, por que cargue los datos al datagird mediante un control adodc1 con la misma propiedad datasource y si lo cargo, esto me ha dejado algo intrigado

2.-Al cargar los registros con el adodc1 y colocar en el evento RowColChange la funcion PRESENTAR siempre ve el primer registro al seleccionar una fila, es decir si cambio de filas siempre me muestra el primer registro

Espero me puedas ayudar, saludos
  #4 (permalink)  
Antiguo 07/02/2008, 11:39
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 10 meses
Puntos: 37
Re: Modificar registros desde un datagrid con vb6.0

Prueba poniendo la propiedad CursorLocation del recordset del lado cliente antes de abrirlo:

Código:
Set RG_EMPLEADOS = New ADODB.Recordset
RG_EMPLEADOS.CursorLocation = adUseClient
  #5 (permalink)  
Antiguo 07/02/2008, 12:53
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 10 meses
Puntos: 10
Re: Modificar registros desde un datagrid con vb6.0

Perfecto ahora si corre pero que significa la linea RG_EMPLEADOS.CursorLocation = adUseClient

Ahora lo que falta es que el datagrid tiene que estar en un form1 y al hacer click o dobleclick en una fila llame a un form2 donde deberan estar cargados en los text los registros de la fila que se seleciono en el datagrid del form1 para poder modificarlos

Última edición por franko1809; 08/02/2008 a las 15:13
  #6 (permalink)  
Antiguo 07/02/2008, 12:54
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 10 meses
Puntos: 10
Re: Modificar registros desde un datagrid con vb6.0

Alguien que aporte algunas ideas de como solucionar mi problema?

saludos

Última edición por franko1809; 08/02/2008 a las 15:14
  #7 (permalink)  
Antiguo 09/02/2008, 13:59
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 10 meses
Puntos: 10
Re: Modificar registros desde un datagrid con vb6.0

Ya solucione el problema era de lo mas sencillo no se como nadie quizo responder.

Private Sub DataGrid1_DblClick()
Form2.Show
Form2.Text1.Text = DataGrid1.Columns(0).Text
Form2.Text2.Text = DataGrid1.Columns(1).Text
Form2.Text3.Text = DataGrid1.Columns(2).Text
End Sub

Ahora se presento otro problema.
¿Como actualizo el datagrid del form1 desde el form2 donde se hizo la modificacion de l registrp? o es imposible hacerlo y tendre que cerrar el form1 para volver a cargarlo desde el form2 espero su respuesta
  #8 (permalink)  
Antiguo 25/06/2011, 18:59
 
Fecha de Ingreso: octubre-2009
Mensajes: 1
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Re: Modificar registros desde un datagrid con vb6.0

Form1.Data1.Refresh ----->actualiza la data.
Form1.DBGrid.Refresh ------->actualiza el DBGrid.
yo lo pondria en el boton GUARDAR!
ESPERO TE SIRVA!
  #9 (permalink)  
Antiguo 27/06/2011, 08:26
 
Fecha de Ingreso: noviembre-2006
Mensajes: 227
Antigüedad: 18 años
Puntos: 6
Respuesta: Modificar registros desde un datagrid con vb6.0

yo creo que desde el 2008 hasta el 2011 han pasado varios añitos, asi que como dijo anteriormente ya esta solucionado creo que llegaste un poquito tarde. sin ofender.
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

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 01:40.