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

Pasar desde VB 6 datos de una Tabla Acces a otra

Estas en el tema de Pasar desde VB 6 datos de una Tabla Acces a otra en el foro de Visual Basic clásico en Foros del Web. A ver si hay un alma generosa por algún lado. Tengo una archivo en Acces que utilizo desde algunas aplicaciones de Visual Basic 6. El ...
  #1 (permalink)  
Antiguo 21/03/2011, 16:18
 
Fecha de Ingreso: marzo-2011
Ubicación: Florida-Uruguay
Mensajes: 74
Antigüedad: 13 años, 9 meses
Puntos: 4
Pregunta Pasar desde VB 6 datos de una Tabla Acces a otra

A ver si hay un alma generosa por algún lado. Tengo una archivo en Acces que utilizo desde algunas aplicaciones de Visual Basic 6. El Acces posee 2 tablas (Datos y DatosEliminados).

Y desde Visual quiero manipular estas tablas, usando 2 ListView cargados en 2 Form distintos. Puedo cargar cada ListView (ListView1-Datos y ListView2-DatosEliminados) desde Visual, pero lo que no puedo lograr es pasar la linea que selecciono de uno a otro (intento pasar toda la fila del item seleccionado).
Todo el codigo que utilizo es:

Private Sub Eliminar()
Dim cn As ADODB.Connection
Dim consulta As String
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\Alumnos\Alumnos.mdb"

With ListView2.SelectedItem
' pregunta
If MsgBox("Atención: Se va a mover al siguiente Alumno a la Base de Datos de registros primarios" & vbNewLine & _
String(74, "_") & vbNewLine & _
"Matrícula: " & .Text & vbNewLine & _
"Nombres: " & .ListSubItems(1).Text & String(20, " ") & "Apellidos: " & .ListSubItems(2).Text, _
vbExclamation + vbYesNo, "Registro de Alumnos - Opción Restaurar") = vbYes Then
' Elimina

End If
End With
consulta = "INSERT INTO Datos SELECT DatosEliminados.* FROM DatosEliminados"
cn.Execute (consulta)
cn.Close
Set cn = Nothing

End Sub
  #2 (permalink)  
Antiguo 22/03/2011, 16:48
Avatar de Gakex  
Fecha de Ingreso: enero-2009
Mensajes: 137
Antigüedad: 15 años, 11 meses
Puntos: 4
Respuesta: Pasar desde VB 6 datos de una Tabla Acces a otra

Hola no seria mejor que agregaras un campo que te indique el estado, por ejemplo que tenga dos estados: activado y desactivado, asi solo tienes una tabla y ademas utilizas un update para actualizar un campo de un registro, mucho mas simple que mover todo de un lado a otro.
  #3 (permalink)  
Antiguo 23/03/2011, 04:36
 
Fecha de Ingreso: marzo-2011
Ubicación: Florida-Uruguay
Mensajes: 74
Antigüedad: 13 años, 9 meses
Puntos: 4
Respuesta: Pasar desde VB 6 datos de una Tabla Acces a otra

El tema es que el proyecto lo tengo listo, el padron Datos y Datos Eliminados es de frecuente cambio y también el uso del Datareport, en el cual tengo todo listo. Se que, lo que deberiía cambiar es:

consulta = "INSERT INTO Datos SELECT DatosEliminados.* FROM DatosEliminados"

Lo que me esta haciendo falta es solo una parte de la sentencia que haga referencia a Selecteditem, algo como: "Si el elemento seleccionado es el registro N°.... pasar este registro a la tabla......" Es lo único a corregir.

Gracias por tu interés, es un gran dato a tener en cuenta antes de iniciar un nuevo proyecto.
  #4 (permalink)  
Antiguo 23/03/2011, 10:12
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 15 años, 2 meses
Puntos: 47
Respuesta: Pasar desde VB 6 datos de una Tabla Acces a otra

Hola!!
Puedes saber el item seleccionado asi:
Código vb:
Ver original
  1. Dim TMP
  2.     If lsvUNO.ListItems.Count > 0 Then
  3.         TMP = Abs(lsvUNO.SelectedItem)
  4.     Else
  5.         MsgBox "No hay registros para seleccionar!!", vbInformation
  6.         Exit Sub
  7.     End If
  8.    
  9. 'El select en un recordset
  10.    rstData.Open "SELECT * FROM TABLA WHERE CAMPO='" & lsvUNO.ListItems(Val(TMP)).SubItems(1) & "'", Conexion, adOpenStatic, adLockReadOnly
  #5 (permalink)  
Antiguo 23/03/2011, 16:03
Avatar de Gakex  
Fecha de Ingreso: enero-2009
Mensajes: 137
Antigüedad: 15 años, 11 meses
Puntos: 4
Respuesta: Pasar desde VB 6 datos de una Tabla Acces a otra

Bueno si tu campo clave es la matricula lo puedes hacer del siguiente modo:

Dim varMatriculaEliminada as integer
varMatriculaEliminada = Cint(ListView2.SelectedItem.text)
Primero creas una variable para cargar el valor de la matricula que quieres cambiar

y la sql creo que seria de la siguiente manera
Código vb:
Ver original
  1. SQL = "INSERT INTO datos SELECT * FROM DatosEliminados where matricula =" _
  2.  & varMatriculaEliminada

Unos tips que me funcionan en este caso al depurar:

Usa crtl + pausa cuando se cicla en un recordset, y lleva la flecha amarilla al cierre del recordset o al cierre de la coneccion, aveces casi siempre se cierra el vb cuando no se cierra un recordset defectuoso.
Tambien puedes usar F8 para ir paso a paso, si tienes muchas lineas antes de llegar a un problema que intentas arreglar, agrega un punto de interrupcion antes del problema, ejecuta con F5 y al llegar al punto sigue con F8.
  #6 (permalink)  
Antiguo 25/03/2011, 21:17
 
Fecha de Ingreso: marzo-2011
Ubicación: Florida-Uruguay
Mensajes: 74
Antigüedad: 13 años, 9 meses
Puntos: 4
Respuesta: Pasar desde VB 6 datos de una Tabla Acces a otra

Esta última intervención me ayudo mucho, la modifique un poco pero funcionó. GRACIAS!!!

Etiquetas: pasar, vb, tablas
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:09.