Aggiornamento contatore in una tabella correllata

di Erin il
5 risposte

Salve, sono alle prime armi con Access e avrei bisogno di un aiuto.

Ho una tabella studenti correllata ad una seconda tabella attestati.

Nella tabella attestati ho creato un contatore( diverso da ID) così da poter avere contezza degli attestati totali. 

Ho creato una maschera studenti con pulsante elimina studente e una maschera attestati totali con un elenco numerato con tutti gli attestati. 

Il problema è il seguente: se elimino uno studente dalla tabella studenti in automatico mi elimina gli attestati, e questo mi sta bene, il problema è che non mi aggiorna il contatore della tabella attestati.

Esempio

se per esempio lo studenti Mario Rossi ha conseguito due attestati e lo studente Pippo Verdi ha conseguito un attestato, 

la maschera attestati totali sarà così:

1)Attestato inglese Mario Rossi

2)Attestato informatica Mario

3) Attestato Inglese Pippo Verdi

Se elimino Mario Rossi dalla tabella studenti, nella maschera attestati totali avrò:

3) Attestato Inglese Pippo Verdi

Vorrei trovare un modo per sistemare la numerazione.

Quello che vorrei ottenere sarebbe: 

1)Attestato Inglese Pippo Verdi

Quindi dalla maschera studenti cliccando su elimina studenti mi elimina lo studente e gli attestati, ma poi mi deve aggiornare la numerazione.

Se elimino un singolo attestato dalla maschera stessa con pulsante Elimina, con il seguente codice funziona.  ma non è quello che voglio.

Private Sub EliminaAttestati_Click()
Dim prog As Integer
prog = Contatore.Value
DoCmd.RunSQL "delete from Attestati where Contatore= " & Contatore.Value
DoCmd.RunSQL "update Attestati set Contatore=Contatore-1 where Contatore>" & prog
Me.Requery
End Sub

Grazie in anticipo!

5 Risposte

  • Ciao… 

    mancherebbe solo la logica con la quale devono essere numerati e/o ordinati gli attestati.

    Comunque dovrai scorrere la tabella attestati e rinumerare la colonna numero attestato progressivo.
    Non metterei questa colonna come tipo Contatore ma semplicemente con Numerico Intero.


    A questo punto quando inserisci un nuovo attestato non farai atro che reperire l'ultimo numero di attestato e incrementarlo di uno.
    Se elimini un attestato o uno studente, allora esegui la rinumerazione scorrendo il recordset di attestati e aggiorni tale numero in modo progressivo.

  • Grazie per l’aiuto tempestivo. 
     Il problema è che non ho idea di come eseguire questa azione all’interno della maschera studenti, cliccando sul tasto elimina studente. Dato che devo andare ad aggiornare una seconda maschera. 

  • 20/09/2023 - Erin ha scritto:


    Grazie per l’aiuto tempestivo. 
     Il problema è che non ho idea di come eseguire questa azione all’interno della maschera studenti, cliccando sul tasto elimina studente. Dato che devo andare ad aggiornare una seconda maschera. 

    Manda un immagine con la struttura tabella Attestati e indica su quale  base si deve ordinare la lettura della tabella prima di rinumerare gli attestati  

Devi accedere o registrarti per scrivere nel forum
5 risposte