Popolare automaticamente i campi

di il
2 risposte

Popolare automaticamente i campi

Salve ho un problema con il seguente codice,

Inserendo il numero di rate nella casella di testo mi aggiunge i record nella sottomaschera

Private Sub NumeroRatePagamentoFatturaFornitore_AfterUpdate()

Me.Recordset.Edit

Me.Recordset.Update

Dim intRate As Integer

Dim intCiclo As Integer

If Me.NumeroRatePagamentoFatturaFornitore = 1 Then

intRate = 1

Else

intRate = Right(Me.NumeroRatePagamentoFatturaFornitore, 2)

End If

For intCiclo = 1 To intRate

CurrentDb.Execute "INSERT INTO TbFattureFornitoriDataScadenza ( [NumeroRataFattForn], [ID_FATTURA_FORNITORI] ) SELECT " & intCiclo & " AS Espr1, " & Me.IdFatturaFornitori & " AS Espr2"

Next

Me.SottomascheraFattureFornitoriDataScadenza.requery

End Sub

------------

Inserendo la data della prima rata mi incrementa i restanti record di un mese

Private Sub DataScadenzaPagFattForn_AfterUpdate()

If Me.NumeroRataFattForn = 1 Then

Dim intRate As Integer

Dim intCiclo As Integer

intRate = DLookup("Max([NumeroRataFattForn])", "TbFattureFornitoriDataScadenza", "ID_FATTURA_FORNITORI = " & Me.ID_FATTURA_FORNITORI)

For intCiclo = 2 To intRate

CurrentDb.Execute "UPDATE TbFattureFornitoriDataScadenza SET DataScadenzaPagFattForn = #" & Format(DateAdd("m", (intCiclo - 1) * 1, Me.DataScadenzaPagFattForn), "mm/dd/yyyy") & "# WHERE [NumeroRataFattForn] = " & intCiclo

Next

Me.requery

End If

End Sub

Il problema è che ad ogni inserimento mi modifica i dati su tutti record della tabella come da seguente esempio:

Relazione 1 a molti.

MASCHERA PRINCIPALE - Nominativo ID 1 - Numero rate 5 (dopo aggiornamento mi inserisce 5 record nella sottomaschera )

SOTTOMASCHERA SCADENZA RATE - (Nominativo ID1) Inserendo la prima data (es.01/01/2022 ) vengono compilati tutti i record con la progressione della data

RATA N. DATA

1 01/01/2022

2 01/02/2022

3 01/03/2022

4 01/04/2022

5 01/05/2022

-Salvo ed esco

------------Poi-------

MASCHERA PRINCIPALE - Nominativo ID 2 - Numero rate 6 (dopo aggiornamento mi inserisce 6 record nella sottomaschera )

SOTTOMASCHERA SCADENZA RATE - (Nominativo ID2) Inserendo la prima data (es.10/01/2023 )vengono compilati tutti i record con la progressione della data

RATA N. DATA

1 10/01/2023

2 10/02/2023

3 10/03/2023

4 10/04/2023

5 10/05/2023

6 10/06/2023

Salvo ed esco

-----------------------

Andando a controllare trovo questa situazione:

Nominativo ID 1

1 01/01/2022

2 10/02/2023

3 10/03/2023

4 10/04/2023

5 10/05/2023

Nominativo ID 2

1 10/01/2023

2 10/02/2023

3 10/03/2023

4 10/04/2023

5 10/05/2023

6 10/06/2023

Spero di essere stato chiaro.

Grazie

2 Risposte

  • Re: Popolare automaticamente i campi

    Ciao. 

    Con il dovuto rispetto. 

    La domanda qual è?

    Come vorresti che funzionasse?

    Dovresti mettere il codice usando gli appositi tag. Così è difficile da leggere. 

  • Re: Popolare automaticamente i campi

    Innanzitutto il codice che scrivi va Pubblicato usando l'inserimento del codice non così… è incomprensibile.

    Ci sono poi molte stranezze in quelle 3 righe… cose inutili come:

    Me.Recordset.Edit
    Me.Recordset.Update

    Spero tu veda il motivo dell'inutilità di quanto segnalato.

    Di base poi NON si lavora sul Recordset ma sempre sul RecordsetClone, per evitare lo scrolling e l'aggiornamento dell'interfaccia, soprattutto se devi fare cicli, alla fine aggiorni con il requery.

    Da capire poi dal momento in cui puoi gestire direttamente i dati sull'Oggetto RecordsetClone, perchè fai un ciclo ed effettui una Query Action…?

    Insomma quel codice ha di base una certa insensatezza…

Devi accedere o registrarti per scrivere nel forum
2 risposte