Necesito ayuda en VB6

Hola!
Por favor si puedes ayudarme con un datagrid ya que lo que quiero hacer es:
En el formulario1 tengo un datagrid1 con columnas idénticas a los de un datagrid2 que esta en el formulario2 y con un comando que se llama "guardar" quiero mandar las actualizaciones del datagrid1 al datagrid2, teniendo el datagrid1 con la tabla "Aspirantes" y el datagrid2 con "Aceptados", por ejemplo:
Los datos del datagrid1 y 2 son:
id = 5  |  nombre = Juan  |  edad = 18  | domicilio = Y #1  | becado = N
id = 6  |  nombre = Abil  |  edad = 15  | domicilio = X #2  | becado = S 
Ahora en el formulario2 hago las modificaciones en (edad y becado):
id = 5  |  nombre = Juan  |  edad = 20  | domicilio = Y #1  | becado = S
y al darle clic en guardar las 2 se modifiquen y se guarden los cambios en la tabla "Aceptados" quedando asi:
id = 5  |  nombre = Juan  |  edad = 20  | domicilio = Y #1  | becado = S
id = 6  |  nombre = Abi  |  edad = 15  | domicilio = X #2  | becado = S
Si puedes, en verdad te agradecería mucho..
Saludos!..

3 Respuestas

Respuesta
1
Es más complicado mandar los resultados de un grid hacia el otro, porque habría que hacer un recorrido del grid y todos aquellos que fueron modificados irlos cambiando en la otra.
Es más fácil actualizar simultáneamente en las dos tablas, ya casi no trabajo con VB6, pero si no estoy mal, el grid tiene un evento on change, entonces en el evento onchange averiguar que id cambia, para buscar ese id en el otro grid y hacer el cambio también. Al finalizar, se graban los dos datagrid.
Sino se me ocurre ir creando una lista (con un listbox) donde se ponen todos los id que se van modificando, al darle click en guardar se procede a verificar la lista y todos los datos que fueron modificados se extraen del datagrid y se actualiza el otro con los nuevos datos.
Otra solución vendría modificando el diseño de la base de datos, si las dos tablas son iguales (aspirantes y aceptados) entonces no vale al pena tenerlos en dos tablas distintas, es más sencillo manejarlas en una sola tabla sabiendo que el campo que las diferencia es "becado", ya que en unos dirá que "S" y en otros dirá que "N". De esa manera se simplificaría ese mantenimiento. Porque según veo, parece ser que el aspirante está simultáneamente en ambas tablas.
Julius
-Guatemala-
Gracias en vErdad amigo0!
Mira ps aclaraste vArias idEas ke tEniia xD, ps el codigo kedo mazo - asii:
rs3.MoveFirst
    While Not rs3.EOF
        rsSelect.Close
        rsSelect.Open "Select * From Medicamentos where CodigoMedicamento=" & DataGrid1.Columns.Item(0).Text, cn, adOpenStatic, adLockOptimistic
        cn.Execute "Update Medicamentos Set CantidadExistencias = " & (Val(DataGrid2.Columns.Item(2).Text) + Val(DataGrid1.Columns.Item(2).Text)) & ", PrecioCompra = " & (Val(DataGrid1.Columns.Item(3).Text)) & ", PrecioVenta = " & (Val(DataGrid1.Columns.Item(4).Text)) & " Where CodigoMedicamento = " & DataGrid1.Columns.Item(0).Text
        rs3.MoveNext
    Wend
Aunke era uN eJempl0o el dE las bEcAs me ayudAste eN la logicA...
dE antemano0 gRazias!!!
Respuesta
1
Te puedo ayudar, pero no se si será 100% compatible con VB6, hace muchos años que no programo en ese lenguaje, desde el 2003 que programo en .NET así que ojalá y le haga.
Lo principal de esto es hacer una variable del objeto Form, y en esa variable encontrarás el objeto DataGrid 2.
Lo que deberás hacer es ir cargando los datos aceptados en el DG2 a medida que se va produciendo en el DG1.
Otro usuario hace poco me hizo casi la misma pregunta, la solución con él te ayudará a ti así que te dejo el link para que lo leas:
http://www.todoexpertos.com/mitodoexpertos/expert/questions/view/2448021/cargar-un-list-del-form2-de-uncombbox-de-otro-form
También te puede ayudar este link:
http://msdn.microsoft.com/es-es/library/ms171925(VS.80).aspx
Si tienes alguna duda me lo haces saber.
Respuesta
1
Lo que debes hacer es al momento de hacer clic en el botón guardar que refresque la conexión a la base de datos del datagrig 2, ¿estos los tienes conectados vía linea de código o por el otro método que no recuerdo que se la da la opción?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas