Come creare il proprio modulo diviso in Access utilizzando VBA

Condividi ora:

I moduli divisi in Access sono estremamente utili. Sfortunatamente, non funzionano quando li inserisci in un modulo di navigazione. Scopri come puoi creare una funzione VBA che simulerà le funzionalità dei moduli divisi di Access e la farà funzionare anche all'interno di un modulo di navigazione.

Il modulo diviso ti consente di avere due visualizzazioni dei tuoi record contemporaneamente: visualizzazione modulo e visualizzazione foglio dati. Ti consente di avere una panoramica di tutti i tuoi record mentre allo stesso tempo ti dà la possibilità di visualizzarli e modificarli uno per uno.

Sfortunatamente, i moduli divisi non funzionano quando li inserisci in un modulo di navigazione, cosa che mi lascia perplesso. Meno male che c'è una soluzione per questo. Usando VBA, puoi creare la tua funzione che simulerà il modulo diviso di Access. Basta seguire i passaggi seguenti.

Scarica Ora

Se vuoi start per utilizzare la funzione il prima possibile, puoi:

Scarica ora il database di esempio con i codici VBA

Altrimenti, se vuoi fare il fai-da-te, puoi leggere i contenuti di seguito.

Passaggi per creare il tuo modulo diviso in Access utilizzando VBA

1. Apri il modulo diviso e aggiorna la visualizzazione predefinita a Modulo singolo. Apri il tuo modulo diviso e aggiorna la visualizzazione predefinita a un singolo modulo

  1. Apri il tuo modulo diviso.
  2. In visualizzazione struttura selezionare il modulo.
  3. Vai alla finestra delle proprietà (ALT + Invio) > scheda Modulo.
  4. Cambia la visualizzazione predefinita in: Modulo singolo.
  5. Chiudi il modulo e salva.

2. Creare una copia del modulo. Questo servirà come visualizzazione del foglio dati.

  1. Vai al riquadro di navigazione.
  2. Fare clic con il tasto destro sul modulo e selezionare Copia.
  3. Fare clic con il tasto destro su un'area vuota nel riquadro di navigazione e selezionare Incolla.
  4. Cambia il nome del modulo. Aggiungilo con "_Datasheet".

Esempio:

  • Forma: membri
  • Copia del modulo: Members_Datasheet

3. Aprire il modulo Foglio dati e aggiornare le proprietà della visualizzazione modulo.

  1. Apri il modulo Foglio dati.
  2. In visualizzazione struttura selezionare il modulo.
  3. Vai alla finestra delle proprietà > scheda Modulo.
  4. Aggiorna le seguenti proprietà:
    • Visualizzazione predefinita: Datasheet
    • Consenti visualizzazione Foglio dati: Si
    • Consenti visualizzazione modulo: Non
  5. Chiudi il modulo e salva.

4. Riaprire il Modulo principale e aggiungere il Modulo Foglio dati come sottomodulo.

  1. Apri il modulo principale (quello che è stato copiato) in visualizzazione struttura.
  2. Aggiungi una sottomaschera.
    • Vai al menu Progettazione. Selezionare Sottomaschera/Sottoreport.Seleziona Sottomodulo
    • Fare clic sull'area Dettagli del modulo.
    • Apparirà la procedura guidata SubForm.La procedura guidata Sottomodulo

1. Fare clic su "Utilizza un modulo esistente".

2.Selezionare il modulo del foglio dati.

3.Fare clic su Avanti.Seleziona "Definisci il mio"

4.Selezionare 'Definisci il mio'.

5.Click Fine.

3. Il modulo del foglio dati è ora un sottomodulo del modulo principale. Regolalo nella dimensione e nella posizione desiderate.

5. Infine, aggiungi il codice.

  1. Apri l'editor VBA (ALT + F11).
  2. Seleziona il modulo principale e incolla il codice che segue.Seleziona il modulo principale e incolla il codice
'MAIN FORM
Option Explicit

Private Sub Form_AfterUpdate()
   Me.Members_Datasheet.Requery
End Sub

Private Sub Form_Current()
   If Me.NewRecord Then
     Me.Members_Datasheet.Form.Recordset.AddNew
   Else
     Me.Members_Datasheet.Requery
   End If
End Sub
  1. Dopo aver copiato il codice, sostituisci tutte le occorrenze della parola Membri_Scheda dati con il nome effettivo del modulo del foglio dati.
  2. Al termine, seleziona il modulo Foglio dati dal menu Progetto e copia il codice sottostante.
'SUBFORM/DATASHEET FORM
Option Explicit

Private Sub Form_AfterUpdate()
   Me.Parent.Form.Requery
End Sub

Private Sub Form_Current()

  Dim pk_field As String, pk_tbox As Control
  Dim primaryKey As String, strSearch As String
 
  Set pk_tbox = Me.Member_ID 'textbox containing primary key *
  pk_field = "Member_ID" 'primary key field name *

  primaryKey = Nz(pk_tbox.Value, 0) 'change value to 0 if null
  pk_field = "[" & pk_field & "]" 'enclose field name with brackets
 
  If primaryKey <> 0 Then 'if not null (or not a new record)
    strSearch = pk_field & "=" & primaryKey
    Me.Parent.Recordset.FindFirst strSearch
  Else
     Me.Parent.Form.Recordset.AddNew
  End If

End Sub
  1. Aggiorna i valori per le seguenti variabili:
  • pk_tbox – si riferisce alla casella di testo contenente la chiave primaria.
  • pk_field – si riferisce al campo della chiave primaria della sorgente del record.

Ognuno di essi ha un asterisco (*) nella sezione dei commenti in modo da poterli trovare facilmente.

  1. Al termine, salva le modifiche (CTRL + S) e chiudi l'editor VBA.

Ora puoi aggiungere il tuo modulo diviso all'interno del modulo di navigazione. Provalo!

Correggi database di accesso danneggiato (.accdb)

Ci possono essere molte ragioni per cui un database di Access viene danneggiato. Purtroppo, non abbiamo il controllo su most di loro. Se ti capita, ricorda che c'è ancora un modo per recuperarlo. DataNumen Inc. ha creato un software che funziona riparazione accdb. Controlla.

Introduzione dell'autore:

Jayme Stack è un esperto di recupero dati in DataNumen, Inc., che è il leader mondiale nelle tecnologie di recupero dati, tra cui ripristino sql ed eccellere prodotti software di recupero. Per maggiori informazioni visita www.datanumen.com

Condividi ora:

I commenti sono chiusi.