** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - duplicar formulario con subformularios incluidos
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoduplicar formulario con subformularios incluidos

 Responder Responder
Autor
Mensaje
bokejos Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 15/Octubre/2015
Localización: Malaga
Estado: Sin conexión
Puntos: 19
Enlace directo a este mensaje Tema: duplicar formulario con subformularios incluidos
    Enviado: 29/Enero/2016 a las 11:35

Te comento el tema. Tengo un formulario llamado FACTURA_PRINCIPA_VOLTIAM, tiene unos campos de la tabla FACTURA_PRINCIPAL_VO (COD FACTURA, FECHA FACTURA, ESTADO, CLIENTE,OBRA,CIF,EMAIL,DESCRIPCION,IMPORTE……..) Y UN SUBINFORME CON ORIGEN EN LA TABLA FACTURA_SECUANDARIA_VO con los campos ORIGEN, UNIDADES, CONCEPTO,%,€ UNIDAD.TOTAL. y este subinforme esta relacionado con los campos de la taba FACTURA_PRINCIPAL_VO por el campo COD FACTURA.

Pues bien, lo que necesito hacer es duplicar una factura completa, tanto los campos de la tabla FACTURA_PRINCIPAL_VO como los de la tabla FACTURA_SECUNDARIA_VO. Claro esta, que al duplicar la factura, el COD FACTURA cambia y el subinforme debe de estar relacionado con este COD FACTURA nuevo que se crea

A ver si lo consigo que es de lo pco que me queda para terminar mi base.

Muchas gracias de antemano

 

 

 

 

 

 

 

 

 

BOKEJOS
Arriba
E. Feijoo Ver desplegable
Moderador
Moderador


Unido: 16/Abril/2004
Localización: España
Estado: Sin conexión
Puntos: 19948
Enlace directo a este mensaje Enviado: 29/Enero/2016 a las 12:18
Yo cambiaria (o tendría en cuenta) mas cosas, no solo el código sino el numero de factura y si ha lugar la fecha (que también se utiliza para verificar la correlatividad de las facturas).

En principio se debería generar un nuevo 'código-factura' (y el resto que precisen la adecuada modificación) ya en e momento de la copia (siempre se ha de generar el registro principal y creado este el/los secudarios) seria el momento de tomar los campos a copiar, añadir los nuevos en lugar de los obsoletos y efectuar la acción de copiar.

Por ejemplo (y con una consulta grafica):
.- Se toma la tabla principal y de ella todos sus campos
.- se la condiciona (en principio es una consulta de selección) para que devuelva el registro a copiar.
(en este punto se da por supuesto que anteriormente se genero el siguiente numero y fecha ... etc. y están ¿en un formulario?).
.- Se eliminan los datos a modificar (el campo cod_factura, asumo que factura y si ha lugar la fecha), en su lugar se generan datos calculados (o alias) que en una consulta en modo grafico seria asi:

Cod_Factura: Formularios!nombreDelFormulario!CampoConElNuevoCodigoDeFectura

(se repite con cada campo a modificar)
Si se ejecutase la consulta debería 'aparecer' los datos correctos de la nueva factura, si no es asi ... se corrige hasta lograrlo

.- Se cambia la consulta (actualmente de selección) a consulta de datos añadidos, solicitara una tabla (se le indica la que será el destino)

Aparece una nueva línea con el encabezado 'Anexar a:' y en el desplegable bajo cada campo se selecciona el destino (muchos podrán aparecer seleccionados si Access encuentra correspondencia)

Al ejecutarla aparecerá el nuevo registro en la principal y si se guarda la consulta es 'reutilizable' (en el formulario se seleccionaría la factura que se copiaría, se crearían los datos ... etc)

Para copiar el secundario es 'mas de lo mismo', la única diferencia es que en lugar de afectar (o copiar) un registro, se copiarían un conjunto de ellos, pero el nuevo Cod_Factura (dato que se supone relaciona las tablas sigue estando en el formulario y 'se puede reutilizar'.
Arriba
bokejos Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 15/Octubre/2015
Localización: Malaga
Estado: Sin conexión
Puntos: 19
Enlace directo a este mensaje Enviado: 29/Enero/2016 a las 12:54
Muy buenas feijoo, te comento que no soy muy lucho con el codigo, hago mis cositas pero poco. Me podias dar un ejemplo???
Estoy miranfo el codigo de una base de demo que es este:

Dim strSQL As String, _
    lngSiguiente As Long

' calculo el número de pedido que le toca
lngSiguiente = DMax("idPedido", "Pedidos") + 1

' construyo la sentencia SQL para insertar el nuevo registro con todos los datos iguales que el actual y el nuevo id
strSQL = "INSERT INTO Pedidos ( IdPedido, IdCliente, IdEmpleado, FechaPedido, FechaEntrega, FechaEnvío, FormaEnvío, Cargo, Destinatario, DirecciónDestinatario, CiudadDestinatario, RegiónDestinatario, CódPostalDestinatario, PaísDestinatario )"
strSQL = strSQL & " SELECT " & lngSiguiente & " , IdCliente, IdEmpleado, #" & Format(Date, "mm/dd/yy") & "#, FechaEntrega, FechaEnvío, FormaEnvío, Cargo, Destinatario, DirecciónDestinatario, CiudadDestinatario, RegiónDestinatario, CódPostalDestinatario, PaísDestinatario"
strSQL = strSQL & " FROM Pedidos"
strSQL = strSQL & " WHERE IdPedido = " & Me.txtIdPedido

' ejecuto la inserción del pedido
CurrentDb.Execute strSQL, dbFailOnError

strSQL = "INSERT INTO [Detalles de pedidos] ( IdPedido, IdProducto, PrecioUnidad, Cantidad, Descuento )"
strSQL = strSQL & " SELECT " & lngSiguiente & " , IdProducto, PrecioUnidad, Cantidad, Descuento"
strSQL = strSQL & " FROM [Detalles de pedidos]"
strSQL = strSQL & " WHERE IdPedido = " & Me.txtIdPedido

' ejecuto la inserción de los detalles del pedido
CurrentDb.Execute strSQL, dbFailOnError

Me.Requery
DoCmd.GoToRecord , , acLast
End Sub

pero me falla en la linea CurrentDb.Execute strSQL, dbFailOnError y no se el porque.

a ver si los magos lo me ayudais
BOKEJOS
Arriba
E. Feijoo Ver desplegable
Moderador
Moderador


Unido: 16/Abril/2004
Localización: España
Estado: Sin conexión
Puntos: 19948
Enlace directo a este mensaje Enviado: 29/Enero/2016 a las 17:53
No conozco ese entorno, mas que lo expuesto y una consulta de inserción puede fallar por múltiples motivos (basta dejar atrás un campo o cambiarlo de ubicación).

Supuestamente esa SQL se puede pegar en la vista diseño del generador de consultas (a lo sumo sustituir referencias locales por absolutas o aplicar datos fijos), es una forma de utilizar los recursos de Access para que analice donde esta el problema.
Arriba
ximo Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 03/Marzo/2006
Localización: España
Estado: Sin conexión
Puntos: 1925
Enlace directo a este mensaje Enviado: 31/Enero/2016 a las 00:49
Hola,
Mira en la web de Emilio Sancha el ejemplo 81.



Saludos, ximo
La incansable busqueda de información abre nuestras mentes

Saludos desde Burriana
Arriba
bokejos Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 15/Octubre/2015
Localización: Malaga
Estado: Sin conexión
Puntos: 19
Enlace directo a este mensaje Enviado: 02/Febrero/2016 a las 09:04
ximo, ese ejemplo duplica los campos del formulario, pero no los de ningun subformulario. Estoy deseperado ya con eso, es lo que me queda para terminar en programita :(
Alguna otra idea por ahi???
BOKEJOS
Arriba
OmniPresente Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 10/Febrero/2009
Localización: España
Estado: Sin conexión
Puntos: 1858
Enlace directo a este mensaje Enviado: 02/Febrero/2016 a las 11:04
¿Y el error que te da es...?
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable