Option Compare Database
Option Explicit
Dim NF As Integer
Dim rs As Object
Dim Modificado As Boolean
Dim fechatxt As Variant
Dim fechaanio As Variant
Dim fechames As Variant
Dim fechadia As Variant
Dim facturano As Variant
Dim facturarealtxt As String
Private Sub Form_Load()
'Abrimos la tabla en la que se basa el formulario
Set rs = CurrentDb.OpenRecordset("tINVOICES_dynamic")
End Sub
Private Sub Form_Current()
If Nz(Me.invoiceserie) = 0 Then 'si no tiene nº de factura es nuevo
Me.invoiceserie = rs.RecordCount + 1 'le ponemos uno mas que el nº de registros de la tabla
'Me.invoicedate = DATE 'aqui debes darle formato, de lo contrario te traeria la fecha con hora
Modificado = True ' lo señalamos como modificado
End If
End Sub
Private Sub Form_Dirty(Cancel As Integer)
Modificado = True 'si se modifica un registro existente se señala como Modificado
End Sub
Private Sub Form_BeforeUpdate(Cancel As Integer)
fechames = Format(invoicedate, "MM")
fechaanio = Format(invoicedate, "yyyy")
fechadia = Format(invoicedate, "dd")
facturano = Format(Me.invoiceserie, "000")
facturarealtxt = fechaanio & fechames & fechadia & "-" & facturano
Me.invoice = facturarealtxt
If Modificado Then 'Antes de actualizar el registro comprobamos si cumple los requisitos
If MsgBox("RECORD MODIFIED" & vbCr & vbCr & "Save Changes ?", vbCritical + vbDefaultButton2 + vbYesNo) = vbNo Then
Cancel = True
Modificado = Not Modificado
Me.Undo
DoCmd.GoToRecord , , acLast
Else
If Nz(Me.invoice) = "" Or IsNull(Me.invoicedate) Then
MsgBox "No se genero el numero --> volver a hacerlo"
Me.invoicedate.SetFocus
Cancel = True
End If
End If
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
rs.Close
Set rs = Nothing
End Sub