Gracias de antemano
Con una pequeña instrucción SQL puedes hacerlo,
1º Antes de ejecutar la consulta deberías introducir todos los condicionales
para que se pueda copiar, eso te lo dejo a tí.
2º Declaramos una variable de tipo cadena.
3º A la variable le asignamos la instrucción SQL
4º Mediante el objeto DoCmd ejecutamos la instrucción.
El código sería algo así:
'==========================================
Dim strSQL As String
strSQL = "INSERT INTO tabla2 ( IdAsiento,IdFactura)" _
& "SELECT tabla1.IdAsiento,tabla1.Idfactura FROM tabla1 WHERE ......."
DoCmd.RunSQL strSQL
'===========================================
En la instrucción SQL si te fijas no he puesto ninguna condición, eso te lo
dejo a tí también.
Otra cosa mariposa, si deseas borrar la línea de la primera tabla, puesto
que la has copiado en la segunda tabla, con otra instrucción SQL pero usando
DELETE (busca en la ayuda) podrás hacerlo o como estás usando un formulario
con el código que te genera un botón comando de borrar lo introduces
inmediatamente después del código DoCmd.RunSQL strSQL.
Espero que te sirva.
Saludos desde un lugar de la Mancha.
"tron" escribió:
Gracias de antemano
Un saludo desde otro lugar de la mancha
"jmmiralles" <jmmir...@discussions.microsoft.com> escribió en el mensaje
de noticias news:ED5BBBC3-8DDE-49D5...@microsoft.com...
"jmmiralles" <jmmir...@discussions.microsoft.com> escribió en el mensaje
de noticias news:ED5BBBC3-8DDE-49D5...@microsoft.com...
En este link te dejo un pequeño ejemplo de como se puede hacer.
http://cid-cb16876469337616.skydrive.live.com/self.aspx/P%c3%bablico/CopiaTabla2-Tabla3.mdb
Para copiar de una tabla a otra puedes hacer una consulta de Datos Anexados
y para borrar el registro puedes hacer una consulta de eliminación o en el
formulario pones el botón de eliminar.
Otra opción es:
1º Creas un consulta de Datos Anexado y otra de eliminación con las
condiciones que se tienen que dar para que se realice la consulta.
2º Copias el código SQL que te crea la consulta y la pegas en la
instrucción que yo te pongo.
Ya cuentas cómo te ha ido,
Gracias por tu respuesta que me ha servido de mucho pero de mucho.
No lo sabes bien , eres un fiera te lo agradezco un monton , ojala hubiera
mas gente como tu.
un saludo muy fuerte y te debo una cerveza minimo.
"jmmiralles" <jmmir...@discussions.microsoft.com> escribió en el mensaje
de noticias news:CD8098EF-2DB9-43D8...@microsoft.com...
Hay dos cosas que me tomo muy en serio, un café y una buena cerveza, con lo
cual cuidado que algún día te puedo reclamar esa cerveza, je, je
Cuando tengas dudas pues ya sabes, en este foro cualquiera te ayudará de
forma desinteresada, que eso es lo bonito.
Saludos desde un lugar de la Mancha
"tron" escribió:
PD: Dime que bar y te la dejo pagada por paypal ;-)
"jmmiralles" <jmmir...@discussions.microsoft.com> escribió en el mensaje
de noticias news:FE963F84-DEA1-4A22...@microsoft.com...
''Si la casilla de verificaci�n chBaja est� activada entonces
If Me.Verificaci�n109.Value = -1 Then
''Desactivamos las advertencias de access
DoCmd.SetWarnings False
Me.Requery
''lanzamos un mensaje para indicar si queremos copiar el
registro
respuesta = MsgBox("�Quieres introducir la carga a
efectuada?", vbInformation + vbYesNo, "Introducir")
''si la respuesta del usuario es SI entonces
If respuesta = vbYes Then
''ejecutamos la instrucci�n SQL de copiar registros
strSQL = "INSERT INTO incidencias
(idCARGADO,CLIENTE,FECHAsalida,FECHAllegada,REMITENTE,DESTINATARIO,CODIGOINTERNO,EXPORT,IMPORT,NACIONAL,CARGACOMPLETA,NBULTOS,VOLUMEN,ML,MERCANCIA,COBRAMOS,TRANSPORTISTA,MATRICULA,PAGAMOS,PESO)
SELECT
cargasefectuadas.idcargado,cargasefectuadas.CLIENTE,cargasefectuadas.FECHACARGA,cargasefectuadas.FECHADESCARGA,cargasefectuadas.REMITENTE,cargasefectuadas.DESTINATARIO,cargasefectuadas.CODIGOINTERNO,cargasefectuadas.export,cargasefectuadas.import,cargasefectuadas.nacional,cargasefectuadas.cargacompleta,cargasefectuadas.nbultos,cargasefectuadas.volumen,cargasefectuadas.ml,cargasefectuadas.MERCANCIA,cargasefectuadas.COBRAMOS,cargasefectuadas.TRANSPORTISTA,cargasefectuadas.MATRICULA,cargasefectuadas.PAGAMOS,cargasefectuadas.PESO
FROM cargasefectuadas WHERE cargasefectuadas.idcargado=idcargado.Value"
DoCmd.RunSQL strSQL
Else
''en caso contrario, es decir, pulsa NO
''a la casilla de verificaci�n la desactivamos y salimos
de la sub
Me.Verificaci�n109.Value = 0
Exit Sub
End If
''Si llegamos a este punto es porque hemos copiado el registro
anteriormente
''Preguntamos si queremos borrar el registro
respuesta2 = MsgBox("�Deseas borrar el contenido de las cargas
disponibles?", vbInformation + vbYesNo, "Eliminar")
''Si la respuesta es SI
If respuesta2 = vbYes Then
''ejecutamos la instrucci�n para borrar el registro
''actualizamos el formulario
''la casilla de verificaci�n la desactivamos
strSQL2 = "DELETE
idCARGADO,CLIENTE,FECHACARGA,FECHADESCARGA,REMITENTE,DESTINATARIO,CODIGOINTERNO,MERCANCIA,COBRAMOS,TRANSPORTISTA,MATRICULA,PAGAMOS,PESO,OBSERVACIONES
FROM cargasefectuadas WHERE IdCARGADO=IdCARGADO.Value"
DoCmd.RunSQL strSQL2
'DoCmd.RunCommand acCmdSelectRecord
'DoCmd.RunCommand acCmdDeleteRecord
Me.Requery
Me.Verificaci�n109.Value = 0
Else
''si pulsa NO solamente salimos de la Sub.
Exit Sub
End If
Else
''Si la casilla de verificaci�n chBaja est� desactivada
''No hacemos nada
End If
''Activamos las advertencias de Access
DoCmd.SetWarnings True
Vale todo me sale correcto pero.... que pasa si le pincho que no quiero
borrar el registro, pues se me queda todo igual menos la casilla que la
quiero activada no desactivada. Quiero decir que en cada registro no borrado
se quede la casilla en la opcion marcada.
Gracias anticipadamente
"tron" <webm...@klanesp.com> escribi� en el mensaje de noticias
news:051CD90B-A227-4BB0...@microsoft.com...
En la sección del código donde se borran los registros tienes el siguiente
comentario:
''si pulsa NO solamente salimos de la Sub.
Después de ese comentario escribe el siguente código:
Me.Verificacin109.Value = 0
Lo demás lo dejas tal cual, el código se quedaría algo asi:
Else
''si pulsa NO solamente salimos de la Sub.
Me.Verificacin109.Value = 0
Exit Sub
End If
======================================
En las casillas de verificación el valor activado es -1 y desactivado es 0.
Con esto creo que me he ganado la cerveza del viernes.
Espero te sirva.
Saludos desde un lugar de la Mancha.
"tron" escribió:
> bueno parecia resuelto pero ahora viene otra dificultad, el codigo es este
> ....
> Dim strSQL As String 'le asignaremos la instruccin SQL para Insertar o
> Copiar
> Dim strSQL2 As String 'Le asignaremos la instruccin SQL para Borrar
> Dim respuesta As String 'Recogera la respuesta del usuario de Copiar
> SI/NO
> Dim respuesta2 As String 'Recogera la respuesta del usuario de
> Borrar SI/NO
>
> ''Si la casilla de verificacin chBaja est activada entonces
> If Me.Verificacin109.Value = -1 Then
> ''Desactivamos las advertencias de access
> DoCmd.SetWarnings False
> Me.Requery
> ''lanzamos un mensaje para indicar si queremos copiar el
> registro
> respuesta = MsgBox("Quieres introducir la carga a
> efectuada?", vbInformation + vbYesNo, "Introducir")
> ''si la respuesta del usuario es SI entonces
> If respuesta = vbYes Then
> ''ejecutamos la instruccin SQL de copiar registros
> strSQL = "INSERT INTO incidencias
> (idCARGADO,CLIENTE,FECHAsalida,FECHAllegada,REMITENTE,DESTINATARIO,CODIGOINTERNO,EXPORT,IMPORT,NACIONAL,CARGACOMPLETA,NBULTOS,VOLUMEN,ML,MERCANCIA,COBRAMOS,TRANSPORTISTA,MATRICULA,PAGAMOS,PESO)
> SELECT
> cargasefectuadas.idcargado,cargasefectuadas.CLIENTE,cargasefectuadas.FECHACARGA,cargasefectuadas.FECHADESCARGA,cargasefectuadas.REMITENTE,cargasefectuadas.DESTINATARIO,cargasefectuadas.CODIGOINTERNO,cargasefectuadas.export,cargasefectuadas.import,cargasefectuadas.nacional,cargasefectuadas.cargacompleta,cargasefectuadas.nbultos,cargasefectuadas.volumen,cargasefectuadas.ml,cargasefectuadas.MERCANCIA,cargasefectuadas.COBRAMOS,cargasefectuadas.TRANSPORTISTA,cargasefectuadas.MATRICULA,cargasefectuadas.PAGAMOS,cargasefectuadas.PESO
> FROM cargasefectuadas WHERE cargasefectuadas.idcargado=idcargado.Value"
> DoCmd.RunSQL strSQL
>
> Else
> ''en caso contrario, es decir, pulsa NO
> ''a la casilla de verificacin la desactivamos y salimos
> de la sub
> Me.Verificacin109.Value = 0
>
> Exit Sub
> End If
> ''Si llegamos a este punto es porque hemos copiado el registro
> anteriormente
> ''Preguntamos si queremos borrar el registro
> respuesta2 = MsgBox("Deseas borrar el contenido de las cargas
> disponibles?", vbInformation + vbYesNo, "Eliminar")
> ''Si la respuesta es SI
>
> If respuesta2 = vbYes Then
> ''ejecutamos la instruccin para borrar el registro
> ''actualizamos el formulario
> ''la casilla de verificacin la desactivamos
> strSQL2 = "DELETE
> idCARGADO,CLIENTE,FECHACARGA,FECHADESCARGA,REMITENTE,DESTINATARIO,CODIGOINTERNO,MERCANCIA,COBRAMOS,TRANSPORTISTA,MATRICULA,PAGAMOS,PESO,OBSERVACIONES
> FROM cargasefectuadas WHERE IdCARGADO=IdCARGADO.Value"
> DoCmd.RunSQL strSQL2
> 'DoCmd.RunCommand acCmdSelectRecord
> 'DoCmd.RunCommand acCmdDeleteRecord
> Me.Requery
> Me.Verificacin109.Value = 0
> Else
> ''si pulsa NO solamente salimos de la Sub.
> Exit Sub
> End If
> Else
> ''Si la casilla de verificacin chBaja est desactivada
Por ejemplo, quieres copiar de una tabla a otra, pero cuando pulsas la
opción no borrar ¿qué es lo que necesitas que te haga el código?
porque tienes varias opciones:
1ª lo dejas tal cual está.
2ª que te diga que el registro esta copiado en otra tabla y aquí tienes
varias opciones:
a) bloquear el registro para no poder copiar y que no se produzcan
duplicados.
b) dejar que se pueda copiar el registro en la otra tabla.
c) etc, etc
Ten presente, que si copias de una tabla a otra y no borras en la primera
tabla, siempre podrás volvar a copiar el mismo registro, llegando incluso a
tener las 2 Gigas de memoria en una tabla con el mismo registro, eso sería
muchas copias.
Es importante saber qué necesitas y para qué, porque se podría hacer un
código en función a tus necesidades,
desde buscar en la segunda tabla si exite el registro, es decir, si se ha
copiado con anterioridad, y si se ha copiado
entonces, permitir borrarlo de la primera tabla o dejarlo bloqueado etc.
Espero noticias.
Saludos desde un lugar de la Mancha.
"tron" escribió:
> bueno parecia resuelto pero ahora viene otra dificultad, el codigo es este
> ....
> Dim strSQL As String 'le asignaremos la instruccin SQL para Insertar o
> Copiar
> Dim strSQL2 As String 'Le asignaremos la instruccin SQL para Borrar
> Dim respuesta As String 'Recogera la respuesta del usuario de Copiar
> SI/NO
> Dim respuesta2 As String 'Recogera la respuesta del usuario de
> Borrar SI/NO
>
> ''Si la casilla de verificacin chBaja est activada entonces
> If Me.Verificacin109.Value = -1 Then
> ''Desactivamos las advertencias de access
> DoCmd.SetWarnings False
> Me.Requery
> ''lanzamos un mensaje para indicar si queremos copiar el
> registro
> respuesta = MsgBox("Quieres introducir la carga a
> efectuada?", vbInformation + vbYesNo, "Introducir")
> ''si la respuesta del usuario es SI entonces
> If respuesta = vbYes Then
> ''ejecutamos la instruccin SQL de copiar registros
> strSQL = "INSERT INTO incidencias
> (idCARGADO,CLIENTE,FECHAsalida,FECHAllegada,REMITENTE,DESTINATARIO,CODIGOINTERNO,EXPORT,IMPORT,NACIONAL,CARGACOMPLETA,NBULTOS,VOLUMEN,ML,MERCANCIA,COBRAMOS,TRANSPORTISTA,MATRICULA,PAGAMOS,PESO)
> SELECT
> cargasefectuadas.idcargado,cargasefectuadas.CLIENTE,cargasefectuadas.FECHACARGA,cargasefectuadas.FECHADESCARGA,cargasefectuadas.REMITENTE,cargasefectuadas.DESTINATARIO,cargasefectuadas.CODIGOINTERNO,cargasefectuadas.export,cargasefectuadas.import,cargasefectuadas.nacional,cargasefectuadas.cargacompleta,cargasefectuadas.nbultos,cargasefectuadas.volumen,cargasefectuadas.ml,cargasefectuadas.MERCANCIA,cargasefectuadas.COBRAMOS,cargasefectuadas.TRANSPORTISTA,cargasefectuadas.MATRICULA,cargasefectuadas.PAGAMOS,cargasefectuadas.PESO
> FROM cargasefectuadas WHERE cargasefectuadas.idcargado=idcargado.Value"
> DoCmd.RunSQL strSQL
>
> Else
> ''en caso contrario, es decir, pulsa NO
> ''a la casilla de verificacin la desactivamos y salimos
> de la sub
> Me.Verificacin109.Value = 0
>
> Exit Sub
> End If
> ''Si llegamos a este punto es porque hemos copiado el registro
> anteriormente
> ''Preguntamos si queremos borrar el registro
> respuesta2 = MsgBox("Deseas borrar el contenido de las cargas
> disponibles?", vbInformation + vbYesNo, "Eliminar")
> ''Si la respuesta es SI
>
> If respuesta2 = vbYes Then
> ''ejecutamos la instruccin para borrar el registro
> ''actualizamos el formulario
> ''la casilla de verificacin la desactivamos
> strSQL2 = "DELETE
> idCARGADO,CLIENTE,FECHACARGA,FECHADESCARGA,REMITENTE,DESTINATARIO,CODIGOINTERNO,MERCANCIA,COBRAMOS,TRANSPORTISTA,MATRICULA,PAGAMOS,PESO,OBSERVACIONES
> FROM cargasefectuadas WHERE IdCARGADO=IdCARGADO.Value"
> DoCmd.RunSQL strSQL2
> 'DoCmd.RunCommand acCmdSelectRecord
> 'DoCmd.RunCommand acCmdDeleteRecord
> Me.Requery
> Me.Verificacin109.Value = 0
> Else
> ''si pulsa NO solamente salimos de la Sub.
> Exit Sub
> End If
> Else
> ''Si la casilla de verificacin chBaja est desactivada
Buff se me complica las cosas cada dia maaaasss.
Gracias por tu tiempo y ya te digo que la cerveza cuando tu digas :-)
"jmmiralles" <jmmir...@discussions.microsoft.com> escribió en el mensaje
de noticias news:2FEEC768-11F1-4264...@microsoft.com...
- Si no quieres que te salga el mensaje, lo podrías cambiar por una etiqueta
(label) poniendo "Registro Copiado" y hacerla visible cuando el registro este
copiado
e invisible cuando no, pero esto es otra opción más o incluso puedes hacer
el mensaje y la etiqueta a la vez, lo que vos desee.
-Como la busqueda la he hecho con un recordset de ADO tendrás que activar su
referencia, si no sabes como hacerlo en los comentarios del ejemplo te digo
como
activarla.
http://cid-cb16876469337616.skydrive.live.com/self.aspx/P%c3%bablico/CopiaTabla2-Tabla3.mdb
Espero te sirva, ya cuentas algo.