Pulsante per aggiornare una tabella da una maschera

Problema: ho creato una form per l’inserimento dei dati relativi ad un libro in un DB Biblioteca. Sto inserendo uno dei testi della mia biblioteca e, cercando di inserire l’autore, mi accorgo che nella tabella autori non è presente. Che si fa per aggiungere un autore “al volo” e tornare alla maschera su cui stavo effettuando l’inserimento?

Ricordiamo che, quando su una form è presente una combobox che “pesca” dati da un’altra tabella, i dati visualizzati sono “fotografati” (snapshot) in un particolare stato del database all’apertura della maschera.

Dunque se inserissimo un nuovo autore nella tabella autori, questo nuovo record non figurerebbe tra quelli disponibili.

Una prima strada, veloce, è quella di aprire la tabella autori, inserire il nuovo autore, chiuderla e premere la sequenza di tasti ALT D A (in sequenza, non contemporaneamente, fidatevi). In alternativa funziona benissimo anche il tasto funzione F9, più semplice ma ormai non sempre presente su tutte le tastiere.

Questa operazione effettuerà una nuova snapshot alla tabella Autori, aggiornando il contenuto della combo-box.

Un metodo più elegante è il seguente:

creo un pulsante “Aggiungi nuovo Autore” sulla form e, in VBA, scrivo il seguente codice:

DoCmd.OpenForm "nome_form_inserimento", acFormDS
Me.campo_da_aggiornare.SetFocus
Me.campo_da_aggiornare.Requery
'oppure
'SendKeys "{F9}"
'oppure ancora
'SendKeys "{%da}"

dove, al posto di “nome_form_inserimento” metterò il nome, nell’esempio, della form Autori, nome_tabella è la tabella nella quale avete inserito il nuovo dato (Autori), id_campo è lo ID della medesima tabella (ID_Autore).

Alla chiusura della tabella o form richiamata il codice proseguirà portantdo il focus nel “campo_da_aggiornare” sulla form che sarà il nome del controllo, una combobox, dove compare l’elenco degli autori.

L’ultimo comando effettua una requery sul campo a cui abbiamo assegnato il focus. In alternativa è possibile usare anche SendKeys, che in questo caso invia il tasto funzione F9, alternativo alla sequenza di tasti che abbiamo visto prima.

No thoughts on “Pulsante per aggiornare una tabella da una maschera”