** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Anexar Datos de una tabla a otra x Código
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoAnexar Datos de una tabla a otra x Código

 Responder Responder
Autor
Mensaje
ERJ Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 13/Junio/2019
Localización: Bogota
Estado: Sin conexión
Puntos: 1
Enlace directo a este mensaje Tema: Anexar Datos de una tabla a otra x Código
    Enviado: 13/Junio/2019 a las 22:39
Cordial Saludo. 

Requiero de la colaboración. 

Estoy tratando de anexar datos de una tabla (BANCASEGUROS) a otra (3001) por medio de código. Pero access me arroja: 

" Se ha producido el error '3134' en tiempo de ejecución: 

Error de sintaxis en la instrucción INSERT INTO.

Adjunto el código. Agradeceria si me pueden indicar ¿cúal podría ser el error?


Private Sub Cargar3001_Click()

Dim Cargar_3001 As String

Cargar_3001 = "INSERT INTO 3001(Orden,IdReporte,CIERRE,CODPROD, NUMPOL, STSPOL, FECINIVIGPOL, FECFINVIGPOL, FORMA_PAGO, SUCURSAL_SAP, RAMO_TECNICO, CCOSTO, " & _
"PRODUCTO_SAP, CODPLAN, REVPLAN, CODCANAL, CODSUBCANAL, NUMCERTRED, NUMCERT, TIPOID, NUMID, DVID, NOMASEG, INDASEGTIT, TIPOOP, NUMOPER, FACTURA, MTO_OPER, POBICA, MTOPRIMANETA, " & _
"MTOIVA, SUMASEG_ACUMULA_REA, RAMO_REA, DEPOSITO_RETENIDO, COMISION, PORCCTTO_RET, SUMACTTO_RET, PRIMACTTO_RET, COSTO_RET, PORCCTTO_RT1, SUMACTTO_RT1, PRIMACTTO_RT1, COSTO_RT1, " & _
"PORCCTTO_CUO, SUMACTTO_CUO, PRIMACTTO_CUO, PORCCTTO_1EX, SUMACTTO_1EX, PRIMACTTO_1EX, PORCCTTO_FPU, SUMACTTO_FPU, PRIMACTTO_FPU, PORCCTTO_FOB, SUMACTTO_FOB, PRIMACTTO_FOB, NIT, TOMADOR)" & _
"SELECT BANCASEGUROS.[Orden], BANCASEGUROS.[IdReporte], BANCASEGUROS.[CIERRE], BANCASEGUROS.[CODPROD], BANCASEGUROS.[NUMPOL], BANCASEGUROS.[STSPOL], BANCASEGUROS.[FECINIVIGPOL], " & _
"BANCASEGUROS.[FECFINVIGPOL], BANCASEGUROS.[FORMA_PAGO], BANCASEGUROS.[SUCURSAL_SAP], BANCASEGUROS.[RAMO_TECNICO], BANCASEGUROS.[CCOSTO], BANCASEGUROS.[PRODUCTO_SAP], " & _
"BANCASEGUROS.[CODPLAN], BANCASEGUROS.[REVPLAN], BANCASEGUROS.[CODCANAL], BANCASEGUROS.[CODSUBCANAL], BANCASEGUROS.[NUMCERTRED], BANCASEGUROS.[NUMCERT], BANCASEGUROS.[TIPOID],BANCASEGUROS.[NUMID], " & _
"BANCASEGUROS.[DVID],BANCASEGUROS.[NOMASEG], BANCASEGUROS.[INDASEGTIT], BANCASEGUROS.[TIPOOP], BANCASEGUROS.[NUMOPER], BANCASEGUROS.[FACTURA], BANCASEGUROS.[MTO_OPER], BANCASEGUROS.[POBICA], " & _
"BANCASEGUROS.[MTOPRIMANETA], BANCASEGUROS.[MTOIVA], BANCASEGUROS.[SUMASEG_ACUMULA_REA], BANCASEGUROS.[RAMO_REA], BANCASEGUROS.[DEPOSITO_RETENIDO], BANCASEGUROS.[COMISION], " & _
"BANCASEGUROS.[PORCCTTO_RET], BANCASEGUROS.[SUMACTTO_RET], BANCASEGUROS.[PRIMACTTO_RET], BANCASEGUROS.[COSTO_RET], BANCASEGUROS.[PORCCTTO_RT1], BANCASEGUROS.[SUMACTTO_RT1], " & _
"BANCASEGUROS.[PRIMACTTO_RT1], BANCASEGUROS.[COSTO_RT1], BANCASEGUROS.[PORCCTTO_CUO], BANCASEGUROS.[SUMACTTO_CUO], BANCASEGUROS.[PRIMACTTO_CUO], BANCASEGUROS.[PORCCTTO_1EX], " & _
"BANCASEGUROS.[SUMACTTO_1EX], BANCASEGUROS.[PRIMACTTO_1EX], BANCASEGUROS.[PORCCTTO_FPU], BANCASEGUROS.[SUMACTTO_FPU], BANCASEGUROS.[PRIMACTTO_FPU], BANCASEGUROS.[PORCCTTO_FOB], " & _
"BANCASEGUROS.[SUMACTTO_FOB], BANCASEGUROS.[PRIMACTTO_FOB], BANCASEGUROS.[NIT], BANCASEGUROS.[TOMADOR], " & _
"FROM BANCASEGUROS" & _
"WHERE (((BANCASEGUROS.CODPROD)=3001));"

DoCmd.RunSQL Cargar_3001

End Sub
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14734
Enlace directo a este mensaje Enviado: 13/Junio/2019 a las 22:59
Hola,

Así, a primera vista:

BANCASEGUROS.[SUMACTTO_FOB], BANCASEGUROS.[PRIMACTTO_FOB], BANCASEGUROS.[NIT], BANCASEGUROS.[TOMADOR], " & _
"FROM BANCASEGUROS" & _

la coma que te marco en rojo sobra

También falta un espacio antes de la palabra WHERE. 

"FROM BANCASEGUROS" & _
"WHERE (((BANCASEGUROS.CODPROD)=3001));"

Tal como lo tienes queda FROM BANCASEGUROSWHERE (((BANCASEGUROS.CODPROD)=3001)); y eso es un error.


Consejo: ya que todos los campos provienen de la misma tabla, puedes ahorrar el nombre de la tabla en la clausula SELECT (ni que sea para que resulte más "ligera" a la vista)


Xavi, un minyó de Terrassa

Mi web
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14734
Enlace directo a este mensaje Enviado: 13/Junio/2019 a las 23:11
Añado: si estas traspasando todos los campos y se llaman igual, podría resultar más limpio hacerlo con un doble recordset. Uno sobre el origen filtrado y otro sobre el destino como "solo-añadir". Recorriendo la colección de campos ya lo tienes

Dim rstO As DAO.Recordset
Dim rstD As DAO.Recordset
Dim fld Ad DAO.Field

Set rstO = CurrentDb.OpenRecordset("SELECT * FROM BANCASEGUROS WHERE CODPROD = 3001",,dbReadOnly)
Set rstD = CurrentDb.OpenRecordset("SELECT * FROM 3001",,dbAppendOnly)

' Prescindo de la comprobación de datos. Asumo que hay
rstD.AddNew
For Each fld In rstO.Fields
  rstD.Fields(fld.Name) = rstO.Fields(fld.Name)
Next
rstD.Update

' cierre de recordsets etc etc

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 3062
Enlace directo a este mensaje Enviado: 14/Junio/2019 a las 09:10
Yo lo hago con una consulta normal de datos anexados y la ejecuto desde vba y listo.

DoCmd.OpenQuery "NombreConsulta"


Si luego en esa consulta quieres meter alguna variable o alguna otra cosa me copio el codigo de esa consulta en vista SQL y la pego para VBA, la modifico y la ejecuto en vba como quieres hacer tu.

Este complemento esta muyyy bien tambien
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable