Si applica a
Access per Microsoft 365 Access 2021 Access 2019

Selezionare uno degli argomenti seguenti per informazioni sulla gestione di società in Northwind Developer Edition. 

Nota: Questa pagina viene indicata in Access Developer Showcase Edition

In Northwind Starter Edition , Customer è l'unico tipo di società. Nell'edizione per sviluppatori questa edizione è stata espansa per includere clienti, corrieri e fornitori

Inoltre, sono stati espansi i prodotti per includere più fornitori per un prodotto.   

Ogni società può essere di un solo tipo: Cliente, Corriere o Fornitore. Il business case per quando è possibile modificare il tipo di società è descritto nella sezione frmCompanyDetail di questo articolo. '

Tipi di società e dove vengono utilizzati 

  • Cliente per un ordine

  • Corriere per un ordine

  • Fornitore per un ordine di acquisto

  • Fornitore per un prodotto

Inoltre, le società nella versione Northwind Per sviluppatori possono avere più contatti. '

Società sulla barra multifunzione

Se si seleziona Società sulla barra multifunzione, in Northwind viene visualizzato Società in frmCompanyList

Elenco società - frmCompanyList

Nella versione northwind per sviluppatori , frmCompanyList è una maschera divisa. Una maschera divisa offre due visualizzazioni dei dati contemporaneamente, ovvero Visualizzazione Maschera e Visualizzazione Foglio dati. Include anche un'intestazione e un piè di pagina.  In questa implementazione non verrà visualizzata la visualizzazione maschera. Se non si visualizza la visualizzazione Maschera, si avrà un foglio dati con un'intestazione e un piè di pagina.  

Ecco come ottenere questo risultato:  

In frmCompanyList la barra di divisione tra l'intestazione e il foglio dati non è visibile. La proprietà maschera Barra di divisione maschera divisa è impostata su No, nascondendo così la visualizzazione della maschera. 

Le maschere divise e le maschere Foglio dati sono simili ai fogli di lavoro di Excel. Supportano il filtro e l'ordinamento ed è possibile visualizzare, nascondere o spostare campi o colonne. È inoltre possibile calcolare il totale delle colonne. 

Le sezioni intestazione e piè di pagina di una maschera divisa consentono di usare pulsanti di comando, immagini, testo(etichette) e qualsiasi altro controllo modulo di accesso che si desidera migliorare l'esperienza dell'utente. Per altre informazioni sui moduli e sulle maschere divise, è possibile iniziare da qui. I fogli dati non visualizzano le sezioni di intestazione e piè di pagina.

Per altre informazioni, vedere Introduzione alle maschere e Creare una maschera divisa '

Il modulo Elenco società supporta queste cinque azioni:

  • Applicare un filtro personalizzato predefinito, un filtro su richiesta o entrambi

  • Mostrare/nascondere campi

  • Creare etichette

  • Mostra filtro

  • Aggiungere una nuova società

Fare doppio clic in un punto qualsiasi della riga di dettaglio per aprire la maschera Dettagli società (non solo sull'ID come in altre maschere).  '

Filtri predefiniti e filtri su richiesta

La maschera frmCompanyList offre opportunità per filtrare società in Northwind.  Nella parte superiore dello schermo è possibile filtrare usando questi pulsanti di opzione:

  • Tutte le società (impostazione predefinita)

  • Solo clienti

  • Solo spedizionieri

  • Solo fornitori

Sono inoltre disponibili le opzioni di filtro predefinite e su richiesta del foglio dati. Tutti i filtri applicati alla maschera Elenco società (predefiniti o su richiesta) vengono passati e applicati a frmCompanyDetail quando viene aperto.  

Per passare i filtri da una maschera a un'altra, è necessario innanzitutto pulire la stringa di filtro della maschera in modo che contenga solo i nomi dei campi. Esaminare il modulo di codice Open_frmCompanyDetail per una spiegazione più dettagliata di come viene eseguita e in frmCompanyDetail i commenti per Form_Load per vedere come viene applicato.

Le informazioni di filtro vengono passate alla maschera Dettagli società tramite la proprietà OpenArgs della maschera invece di aprire la maschera con una condizione where .  Altre informazioni su OpenArgs sono disponibili qui.

Mostrare/nascondere campi

Selezionare Mostra/Nascondi campi per aprire una finestra di dialogo con un elenco di tutti i campi disponibili; è possibile selezionare o deselezionare una o più colonne. Il layout selezionato viene mantenuto da una sessione a un'altra finché non viene distribuita una nuova versione dell'applicazione. Vedere Visualizzare o nascondere colonne in un foglio dati. 

Creare etichette

Il pulsante Crea etichette apre la Creazione guidata Etichetta di Access. Altre informazioni sulla creazione guidata etichetta sono disponibili qui: Creare etichette indirizzi in Access. 

Aprire i dettagli della società

Fare doppio clic in un punto qualsiasi di una riga di dettaglio per aprire frmCompanyDetail

Fare clic sul campo ID (configurato come collegamento ipertestuale) oppure fare doppio clic su qualsiasi altro campo nella riga di dettaglio per aprire frmCompanyDetail sulla società selezionata e passare qualsiasi filtro di modulo applicato all'elenco società a frmCompanyDetail.

Dettagli società - frmCompanyDetail

A prima vista, frmCompanyDetail può sembrare relativamente semplice.  Tuttavia, non lo è.  Nel codice dietro il modulo, sta accadendo molto!  Il modulo evidenzia le azioni e le caratteristiche seguenti:

  • Diversi pulsanti di comando e collegamenti

    • Aggiungi società

    • Email elenco delle società

    • Mostra filtro

    • Elimina società

    • Aprire una mappa in base a un indirizzo

    • Aprire un sito Web da un collegamento ipertestuale

  • Annullare o salvare azioni in modalità di aggiunta/modifica

  • Regole aziendali per controllare quando è possibile modificare un tipo di società

  • Controllo dell'integrità referenziale prima dell'evento di eliminazione '

L'evento Form_Load include le azioni seguenti:

  • Usare più parametri passati alla maschera tramite OpenArgs e la funzione Northwind StringToDictionary personalizzata

  • Usare la proprietà del modulo OpenArgs per consentire a un utente di aggiungere una nuova società durante l'acquisizione di un ordine

  • Usare la tecnica GoToRecord per aggiungere una nuova società

  • Usare la tecnica SearchForRecord per passare alla società selezionata in frmCompanyList

  • Opzioni di diramazione/esecuzione condizionale (vedere Form_Load evento)

    • Opzione 1 - Istruzione caso

    • Opzione 2 - Annidata se else

    • Opzione 3 - ElseIf

    • Opzione 4 - Annidato If Else e ElseIf '

Nell'evento Form_Current si verifica quanto segue: 

  • Modificare una sottomaschera didascalia e un oggetto di origine in fase di esecuzione chiamando il sub ManageFormOptions(). Questa subroutine viene chiamata da più posizioni in questa forma.  '

Annullare o salvare azioni in modalità di aggiunta o modifica. 

Le maschere di Access sono associate.  Cosa significa?  Da Microsoft: una maschera "associata" è una maschera collegata direttamente a un'origine dati, ad esempio una tabella o una query, e può essere usata per immettere, modificare o visualizzare dati da tale origine dati.

Con le maschere associate, Access non richiede di "salvare" esplicitamente i dati.  Quando si passa da un record al successivo, Access salva automaticamente i dati.  Spesso funziona nel modo desiderato.  Ma cosa succede se un utente deve eseguire un'azione per indicare che è pronto per il salvataggio? 

Ad esempio, il modulo frmCompanyDetail ha una sottomaschera per Contatti (sfrmCompanyDetail_Contacts).  Quindi, cosa succede se si inizia ad aggiungere o modificare i dati aziendali, ad esempio il numero di telefono, e si sospende per correggere un errore di digitazione segnalato nelle informazioni di un contatto?  Per impostazione predefinita, le modifiche apportate al record della società verranno salvate automaticamente quando si fa clic sul record del contatto, che non corrisponde a quello desiderato. 

In questo modulo viene illustrato un modo per eseguire questa operazione con un singolo record per una società.

Qual è il motivo per cui è presente il pulsante Annulla ? Il tasto ESC annulla i dati immessi o modificati, ma non salvati, in un controllo della maschera. In questo stato, l'icona a forma di matita viene visualizzata nel selettore di record (una barra verticale grigia all'estrema sinistra della riga).

Tuttavia, dopo aver fatto clic sul pulsante Aggiungi società , si noterà che non esiste un'icona a forma di matita finché non si inizia a immettere i dati nel nuovo record aziendale. Cosa succede se si cambia idea sull'aggiunta di una nuova società a questo punto? Se premi il tasto ESC, non succede nulla perché non hai ancora immesso alcun dato. Ecco perché abbiamo il pulsante Annulla.

Fare clic sul pulsante Annulla funziona sempre; il tasto ESC funziona solo dopo aver immesso o modificato i dati.  

Se si inizia ad aggiungere o modificare dati e quindi si chiude la maschera senza fare clic su Salva o annulla, per impostazione predefinita Access salva i dati.  

Regola aziendale: Come regola aziendale Northwind per le aziende, si vuole che venga indicato esplicitamente che si vuole "Salvare".  Per fare in modo che, dobbiamo verificare se l'utente ha fatto clic su salva nell'evento Form_BeforeUpdate e se non ha fatto clic su salva, chiedere all'utente di indicare se vuole salvare o annullare le modifiche. '

Modifica del tipo di società

Regola aziendale: Se una società ha ordini, ordini di acquisto o è un fornitore per un prodotto, l'utente non può modificare il tipo di società. È stata creata una funzione , CompanyIsActive(), per determinare se esistono una delle condizioni precedenti. In questo caso, l'utente non può modificare il tipo di società finché questi riferimenti non vengono cancellati (eliminati). 

Questa regola viene applicata solo in questo modulo.  In un'applicazione pronta per la produzione, non si consente agli utenti di modificare i dati aprendo direttamente la tabella.  In Northwind è possibile aprire le tabelle ed eseguire le operazioni desiderate.  Questo è un ottimo modo per imparare, ma ti lascia anche libero di apportare modifiche che potrebbero violare le regole. 

Dovresti sempre programmare sulla difensiva. Pianificare l'evento imprevisto. Anche se l'azienda è attualmente uno spedizioniere, ciò non significa che a un certo momento non erano un fornitore o un cliente. L'ID potrebbe essere trovato nei record precedenti nelle tabelle ProductVendor o PurchaseOrder . '

Modulo di dialogo personalizzato.

Per visualizzare i risultati, cboCompanyTypeID_BeforeUpdate usa una maschera di dialogo, frmGenericDialog. Questa può essere un'ottima alternativa alla finestra di messaggio standard quando si hanno molte informazioni da visualizzare. Viene usato anche con il modulo dipendente per uno scopo simile.'  Delete Referential Integrity Check

In Northwind Starter Edition il comportamento predefinito di Access informa che una società non può essere eliminata quando ha record correlati.  

In Northwind Developer Edition viene visualizzata una notifica prima dell'eliminazione, invece di accettare il comportamento predefinito di Access.  Lo facciamo usando la stessa funzione che abbiamo fatto il Cambia tipo di società; CompanyIsActive().

La differenza è che ci interessa solo gli ordini o gli ordini di acquisto. Se non sono presenti ordini o ordini di acquisto, confermiamo l'intenzione di eliminarli e elimineremo il fornitore del prodotto e i contatti , se esistono per te. 

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.