Duplicar un registro del mismo formulario
Estoy intentando replicar un ejemplo que he visto para duplicar un registro del mismo formulario, pero me da error, y no sé dónde está el fallo. El código es el siguiente:
Private Sub CmdCopiar_Click()
Dim vUltimo As Variant
Dim vAño As Long
'Le damos a la variable vAño el valor del año actual: Las dos cifras finales
vAño = Val(Right(Year(Date), 2))
'vUltimo es igual al Número de Registros del año +1, que se sumará abajo
vUltimo = Nz(DCount("[CodigoPresupuesto]", "[TPresupuestos]", "[Año] = " & Year(Date)), 0)
'Si vUltimo es nulo, es porque no hay ningún NumJustifica, entonces le damos valor 0
If IsNull(vUltimo) Then
vUltimo = 0
End If
'Sumamos 1 al valor anterior
vUltimo = vUltimo + 1
CodigoPresupuesto = "P-" & vAño & "-" & Format(vUltimo, "00000")
Dim strSQL As String
Dim lngSiguiente As Long
LngSiguiente = DMax("id", "TPresupuestos") + 1
strSQL = "INSERT INTO TPresupuestos ( id, CodigoPresupuesto, CodigoCliente, FechaSolicitud, Observaciones, Año, CodigoComercial, CodigoFormaDePago, Transporte, Montaje, Obra, CodigoEstado, EsDeposito, Deposito, PorcentajeDeBeneficio, CodigoFactura, CodigoIVATransporte, CodigoIVAMontaje, IVAPresupuestos, TransporteProrrateado, CodigoTipoDePresupuesto, CodigoProveedor, EsTransporteInternacional )"
strSQL = strSQL & " SELECT " & lngSiguiente & " , CodigoPresupuesto, CodigoCliente, FechaSolicitud, Observaciones, Año, CodigoComercial, CodigoFormaDePago, Transporte, Montaje, Obra, CodigoEstado, EsDeposito, Deposito, PorcentajeDeBeneficio, CodigoFactura, CodigoIVATransporte, CodigoIVAMontaje, IVAPresupuestos, TransporteProrrateado, CodigoTipoDePresupuesto, CodigoProveedor, EsTransporteInternacional"
strSQL = strSQL & " FROM TPresupuestos"
strSQL = strSQL & " WHERE CodigoPresupuesto = " & Me.CodigoPresupuesto
CurrentDb.Execute strSQL, dbFailOnError
StrSQL = "INSERT INTO TPresupuestosSubtabla ( ID, CodigoPresupuesto, Cantidad, Caracteristicas, Concepto, Precio, CodigoIVA, Imagen, Posicion, EsPorcentajeDeBeneficio, PorcentajeDeBeneficioArticulo )"
strSQL = strSQL & " SELECT " & lngSiguiente & " , CodigoPresupuesto, Cantidad, Caracteristicas, Concepto, Precio, CodigoIVA, Imagen, Posicion, EsPorcentajeDeBeneficio, PorcentajeDeBeneficioArticulo"
strSQL = strSQL & " FROM TPresupuestosSubtabla"
strSQL = strSQL & " WHERE CodigoPresupuesto = " & Me.CodigoPresupuesto
CurrentDb.Execute strSQL, dbFailOnErrorAhí tenéis el fallo:

Cuando pongo en un campo "Codigo...", es mi manera de saber que ese campo está relacionado con otro del mismo nombre de otra tabla. Asimismo, necesito que cree un nuevo código de presupuesto, de ahí el código del principio, pero ¿cómo lo meto?
1 Respuesta
Respuesta de Sveinbjorn El Rojo
1
