Problema con Secuencia SQL en Access 2010
Ante todo, desearos un buen año nuevo y daros las gracias por vuestro tiempo y atención.
Poco a poco, y gracias a la ayuda de personas como vosotros, uno le va perdiendo el miedo (no el respeto) a la programación. Así pues me he aventurado a montar una mini aplicación de gestión en Access 2010. Todo parece ir bien por separado, pero al intentar montar una sección de Facturación me encuentro con este problema, os explico.
Tengo 3 tablas Tbl_GesFacturas, Tbl_GesAlbaranes y TblLineasDetalle.
Estoy en el punto de convertir un Albarán en Factura, para lo cual, he desarrollado este fragmento de código, que os adjunto:
----------------------------------------------------------------
Private Sub Btn_ConvertirEnFactura_Click()
Dim Tbl_GesAlbaranes As Recordset
Dim Tbl_GesFacturas As Recordset
Dim Tbl_LineasDetalle As Recordset
Dim NumeroFactura, Fecha, Doc As String
Dim SQL As String
DoCmd.SetWarnings False ' Desactivar avisos del sistema
' Obtener registros de Detalle mediante consulta
SQL = "SELECT Tbl_LineasDetalle.NumDoc, Tbl_LineasDetalle.Descripcion, Tbl_LineasDetalle.Cantidad, " & _
"Tbl_LineasDetalle.Precio INTO Temporal From Tbl_LineasDetalle " & _
"WHERE (((Tbl_LineasDetalle.NumDoc)=[Formularios]![Frm_GesAlbaranes]![NumDoc]));"
DoCmd.RunSQL SQL
Set Tbl_GesFacturas = CurrentDb.OpenRecordset("Tbl_GesFacturas")
Tbl_GesFacturas.AddNew
' Añadir nueva Factura y actualizar el número de Documento
NumeroFactura = LTrim(Str(Year(Now()))) & "/FA" & Format(Tbl_GesFacturas!NumFactura.Value, "00000")
Fecha = LTrim(Str(Year(Now())))
Doc = Format(Tbl_GesFacturas!NumFactura.Value, "00000")
' Duplicar registros como entradas de Factura
SQL = "INSERT INTO Tbl_LineasDetalle ( NumDoc, Descripcion, Cantidad, Precio ) " & _
"SELECT [" & NumeroFactura & "], Temporal.Descripcion, Temporal.Cantidad, Temporal.Precio FROM Temporal;"
DoCmd.RunSQL SQL
Tbl_GesFacturas!NumDoc = NumeroFactura
Tbl_GesFacturas!NumCli = Me!NumCli
Tbl_GesFacturas!Fecha = Now()
Tbl_GesFacturas.Update
Tbl_GesFacturas.Close
' Registro añadido
Facturado = True ' Marcar campo Facturado como Si
DoCmd.DeleteObject acTable, "Temporal" ' Eliminar Tabla Temporal
DoCmd.SetWarnings True ' Reactivar avisos del Sistema
End Sub
------------------------------------------------------------------------
El código cumple mis necesidades de:
1.- Añadir un registro en la tabla de Facturas
2.- Aumentar el contador de las mismas
3.- Duplicar las líneas de detalle, con lo que las tengo tanto para el Albarán con su correspondiente número de documento, como para la Factura.
Pero al escribir el nuevo número de documento, en las líneas de detalle de la Factura (corresponde al segundo (DoCmd. RunSQL SQL), me aparece un cuadro de diálogo, que me solicita el valor del mismo.
Donde me veo obligado a copiar y pegar el número en cuestión.
No consigo entender el motivo de este suceso, supongo que debo haber escrito mal la sentencia SQL, o quizás algún carácter extraño...
Mi petición es, si por favor alguien puede darme una solución a este "desastre". Una anotación más, quiero que la barra inclinada aparezca.