Io ho usato questo sistema...
ho creato una tabella tbModPaga con questi campi
ID
Descrizione -> x es Ri.Ba 60 gg Fine Mese
Scadenze con questa stringa "60ggFM"
ora tramite vba quando devo creare un pagamento lancio questa sub
Public Sub insScadenze(nDoc As Integer, TipoPag As Byte, TOTale As Currency)
'TOTale è il totale del documento
'TipoPag è il tipo di pagamento inserito in tabella
Dim scadenze As Variant
Dim rigaScad, tScad As String
Dim immediato As Boolean
Dim dataPag, nscad As Date
Dim Parziale As Currency
Dim x, TotScad As Integer
'
' variabili per aprire il database
'
Dim rInt, dInt As Integer
Dim dbs As Database
Dim rst As DAO.Recordset
Dim Tabella As String
Tabella = "tbPagamento"
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(Tabella, dbOpenDynaset)
MsgBox TOTale
rigaScad = DLookup("[scadenze]", "[tbModPaga]", "[IDMod] = " & TipoPag)
Cassa = DLookup("[cassa]", "[tbModPaga]", "[IDMod] = " & TipoPag)
dataPag = DLookup("[DataDoc]", "[tbDocumento]", "[ID] = " & nDoc)
scadenze = Split(rigaScad, "gg")
'
' Divido in stringhe la riga del campo scadenze es
' "Rid 30 60 90gg Data Documento" 30gg60gg90ggDF
' crea 4 stringhe una con 30 una con 60 una con 90 e una con DF
'
TotScad = UBound(scadenze)
'
' rileva quante stringhe ci sono nel vettore totscad (3)
'
tScad = scadenze(TotScad)
Parziale = 0
If scadenze(TotScad) = "FM" Then
quando = "Fine Mese"
Else
quando = "Data Documento"
End If
If TotScad = 1 Then
If scadenze(0) = 0 Then immediato = True
Else
diviso = TOTale / TotScad
For x = 0 To TotScad - 2
Parziale = Parziale + diviso
With rst
.AddNew
!IDDocumento = nDoc
!Descrizione = "Acconto " & scadenze(x) & " giorni " & quando
nscad = SommaData(scadenze(x), tScad, dataPag)
If immediato Then !DataPagamento = nscad
!ScadPagamento = nscad
!Imponibile = diviso
!Cassa = Cassa
.Update
End With
Next
End If
With rst
.AddNew
!IDDocumento = nDoc
nscad = SommaData(scadenze(x), tScad, dataPag)
If immediato Then
!DataPagamento = nscad
!Descrizione = "Saldo Immediato"
Else
!Descrizione = "Saldo " & scadenze(x) & " giorni " & quando
End If
!ScadPagamento = nscad
!Imponibile = TOTale - Parziale
!Cassa = Cassa
.Update
End With
End Sub
questa sub crea automaticamente le scadenze dividendo e dividendo anche gli importi se sono composte da acconti ...