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

Mover registros de tabla a otra con vb6

Estas en el tema de Mover registros de tabla a otra con vb6 en el foro de Visual Basic clásico en Foros del Web. Hola, buenas tardes, quisiera que me ayudaran para poder mover ciertos registros de una tabla de access que cumplan una condicion de un rango de ...
  #1 (permalink)  
Antiguo 18/07/2005, 09:59
 
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 19 años
Puntos: 0
Mover registros de tabla a otra con vb6

Hola, buenas tardes, quisiera que me ayudaran para poder mover ciertos registros de una tabla de access que cumplan una condicion de un rango de fechas .
Lo que necesito es eliminar de la primer tabla (tabla1) los registros que seleccione el usuario y pasar esos mismos registros otra tabla (tabla2) de access para hacer reportes historicos con datareport.
La tabla1 y tabla2 tienen los mismos campos.


Gracias por su ayuda.
  #2 (permalink)  
Antiguo 18/07/2005, 10:51
Avatar de Samaris  
Fecha de Ingreso: enero-2002
Mensajes: 280
Antigüedad: 22 años, 4 meses
Puntos: 0
Osea... lo que quieres es trabajar con una tabla temporal...
suponiendo que hay dos dtpicker donde el usuario indica el rango de fechas.. y suponiendo que el primer campo en ambas tablas es la dichosa fecha...

Bueno me imagino que en SQL debe hacerse chevere, pero yo me fui a "piesmente", No lo probe, pero deberia hacerlo sin problemas


with rsttabla1
.movefirst
do while not .eof
if .fields(0)>=dtpicker1 and .fields(0)<=dtpicker2 then
rsttabla2.addnew
rsttabla2.fields(0)=.fields(0)
rsttabla2.update
.delete
end if
.movenext
loop
end with

pd: disculpa la falta de identacion, pero aun no aprendo a hacerlo por aca sin que me salgan tantas lineas
__________________
:corazon:Besos Venezolanos:corazon:
Samaris
  #3 (permalink)  
Antiguo 18/07/2005, 11:40
 
Fecha de Ingreso: agosto-2002
Mensajes: 230
Antigüedad: 21 años, 9 meses
Puntos: 1
creo que sería mejor hacerlo con dos consultas sql directamente pero así también valdría claro
  #4 (permalink)  
Antiguo 18/07/2005, 11:54
Avatar de Samaris  
Fecha de Ingreso: enero-2002
Mensajes: 280
Antigüedad: 22 años, 4 meses
Puntos: 0
a ver.. a mi me gustaria saber como hacer eso en SQL, en realidad la consulta es facil, pero lo que quisiera ver es la inclusion en la otra tabla a la vez que se borra de la primera
__________________
:corazon:Besos Venezolanos:corazon:
Samaris
  #5 (permalink)  
Antiguo 18/07/2005, 12:03
 
Fecha de Ingreso: agosto-2002
Mensajes: 230
Antigüedad: 21 años, 9 meses
Puntos: 1
si interesa la parte de sql se debería mover el post al foro de base de datos, pero ya que estoy en ello te comento.

tienes que hacer dos consultas, una en la que insertas los datos en la tabla 2 y otra en la que eliminas los datos de la tabla 1 y evidentemente en ese orden

la primera consulta sería algo así

Código:
INSERT INTO TABLA2 ( 
SELECT * FROM TABLA1 WHERE FECHA>= miFecha1 AND FECHA< miFecha2)
y la segunda consulta sería

Código:
DELETE FROM TABLA1 WHERE id_tabla1 IN (
SELECT id_tabla1 FROM TABLA1 WHERE FECHA>= miFecha1 AND FECHA< miFecha2)
espero que os quede claro
  #6 (permalink)  
Antiguo 18/07/2005, 12:07
Avatar de Samaris  
Fecha de Ingreso: enero-2002
Mensajes: 280
Antigüedad: 22 años, 4 meses
Puntos: 0
Chevere! gracias, bueno, ahora el el amigo gavafra tiene dos maneras
__________________
:corazon:Besos Venezolanos:corazon:
Samaris
  #7 (permalink)  
Antiguo 18/07/2005, 13:37
 
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 19 años
Puntos: 0
Muchas gracias a los dos probare de las dos maneras y les aviso cual me sirvio mejor.
De nuevo gracias.
  #8 (permalink)  
Antiguo 18/07/2005, 18:14
 
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 19 años
Puntos: 0
Ya los probe pero no, no me funciona. tengo el sig codigo
Tengo una tabla en access que se llama FOLIOS_USADOS a la cual le hago la siguiente consulta sql

Adodc1.RecordSource = "SELECT * FROM FOLIOS_USADOS WHERE DEFECHA BETWEEN #" & Text1 & "# And #" & Text2 & "#"
Ahora lo que quiero es insertar los registros que cumplan esa condicion a otra tabla llamada FOLIOS_HISTORICOS y puse la siguiente sql

Adodc2.RecordSource = "INSERT INTO FOLIOS_HISTORICOS SELECT * FROM FOLIOS_USADOS WHERE DEFECHA BETWEEN #" & Text1 & "# AND #" & Text2 & "#"

pero no me devuelve ningun registro.

No he puesto la sentencia sql DELETE porque quiero que primero me funcione la de pasar los registros a la tabla FOLIOS_HISTORICOS.
Alguna idea ? toda su ayuda ssera apreciada.
  #9 (permalink)  
Antiguo 19/07/2005, 01:19
 
Fecha de Ingreso: agosto-2002
Mensajes: 230
Antigüedad: 21 años, 9 meses
Puntos: 1
una sentencia de insert no devuelve registros, ¿te insertó los registros en la tabla FOLIOS_HISTORICOS?
  #10 (permalink)  
Antiguo 19/07/2005, 07:46
 
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 19 años
Puntos: 0
no xaquin, no inserta nada.
  #11 (permalink)  
Antiguo 19/07/2005, 08:15
 
Fecha de Ingreso: agosto-2002
Mensajes: 230
Antigüedad: 21 años, 9 meses
Puntos: 1
y el select te devuleve los registros que buscas?
  #12 (permalink)  
Antiguo 19/07/2005, 08:58
Avatar de Samaris  
Fecha de Ingreso: enero-2002
Mensajes: 280
Antigüedad: 22 años, 4 meses
Puntos: 0
Tengo una guia que dice asi:

INSERT INTO tabladestino SELECT tablaorigen.* FROM tablaorigen

y si intentas hacerlo indicando todos los campos?
__________________
:corazon:Besos Venezolanos:corazon:
Samaris

Última edición por Samaris; 19/07/2005 a las 09:07
  #13 (permalink)  
Antiguo 20/07/2005, 08:42
 
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 19 años
Puntos: 0
Gracias Samaris, lo voy a probar como dices.
Xaquin, si me devuelve los registros el select solito, pero no inserta nada.
raro no?
  #14 (permalink)  
Antiguo 20/07/2005, 11:22
 
Fecha de Ingreso: agosto-2002
Mensajes: 230
Antigüedad: 21 años, 9 meses
Puntos: 1
pues la verdad es que sí, prueba a ponerle los paréntesis por si eso tuviera algo que ver o a modificar la consulta de manera que inserte sólo uno a ver si lo consigues
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:39.