Comment créer votre propre formulaire de fractionnement dans Access à l'aide de VBA

Partage maintenant:

Les formulaires fractionnés dans Access sont extrêmement utiles. Malheureusement, ils ne fonctionnent pas lorsque vous les placez dans un formulaire de navigation. Découvrez comment vous pouvez créer une fonction VBA qui simulera les fonctionnalités de formulaire fractionné d'Access et le fera fonctionner même dans un formulaire de navigation.

Le formulaire fractionné vous permet d'avoir deux vues de vos enregistrements en même temps - la vue formulaire et la vue feuille de données. Il vous permet d'avoir une vue d'ensemble de tous vos enregistrements tout en vous donnant en même temps la possibilité de les visualiser et de les modifier un par un.

Malheureusement, les formulaires fractionnés ne fonctionneront pas lorsque vous les placez dans un formulaire de navigation - quelque chose qui me déconcerte. Heureusement qu'il existe une solution à ce problème. En utilisant VBA, vous pouvez créer votre propre fonction qui simulera le formulaire fractionné d'Access. Suivez simplement les étapes ci-dessous.

Téléchargez

Si vous souhaitez commencer à utiliser cette fonctionnalité dès que possible, vous pouvez :

Téléchargez l'exemple de base de données avec les codes VBA maintenant

Sinon, si vous voulez bricoler, vous pouvez lire le contenu ci-dessous.

Étapes pour créer votre propre formulaire de fractionnement dans Access à l'aide de VBA

1. Ouvrez votre formulaire fractionné et mettez à jour la vue par défaut en formulaire unique. Ouvrez votre formulaire fractionné et mettez à jour la vue par défaut en un seul formulaire

  1. Ouvrez votre formulaire fractionné.
  2. En mode création, sélectionnez le formulaire.
  3. Accédez à l'onglet Feuille de propriétés (ALT + Entrée) > Formulaire.
  4. Changez la vue par défaut en : Formulaire unique.
  5. Fermez le formulaire et enregistrez.

2. Créez une copie du formulaire. Cela servira de vue de feuille de données.

  1. Accédez au volet de navigation.
  2. Faites un clic droit sur votre formulaire et sélectionnez Copier.
  3. Faites un clic droit sur une zone vide dans le volet de navigation et sélectionnez Coller.
  4. Modifiez le nom du formulaire. Ajoutez-le avec "_Datasheet".

Exemple :

  • Formulaire : Membres
  • Copie du formulaire : Members_Datasheet

3. Ouvrez le formulaire de feuille de données et mettez à jour ses propriétés d'affichage de formulaire.

  1. Ouvrez le formulaire Feuille de données.
  2. En mode création, sélectionnez le formulaire.
  3. Accédez à l'onglet Feuille de propriétés > Formulaire.
  4. Mettez à jour les propriétés suivantes :
    • Vue par défaut: Fiche technique
    • Autoriser l'affichage de la feuille de données : Oui
    • Autoriser le mode formulaire : Non
  5. Fermez le formulaire et enregistrez.

4. Rouvrez le formulaire principal et ajoutez le formulaire de feuille de données en tant que sous-formulaire.

  1. Ouvrez le formulaire principal (celui qui a été copié) en mode création.
  2. Ajoutez un sous-formulaire.
    • Allez dans le menu Conception. Sélectionnez Sous-formulaire/Sous-rapport.Sélectionnez le sous-formulaire
    • Cliquez sur la zone Détails du formulaire.
    • L'assistant de sous-formulaire apparaîtra.L'assistant de sous-formulaire

1. Cliquez sur 'Utiliser un formulaire existant'.

2.Sélectionnez votre formulaire de feuille de données.

3.Cliquez sur Suivant.Sélectionnez "Définir le mien"

4.Sélectionnez 'Définir le mien'.

5.Click Terminer.

3. Le formulaire de feuille de données est maintenant un sous-formulaire de votre formulaire principal. Ajustez-le à la taille et à la position souhaitées.

5. Enfin, ajoutez le code.

  1. Ouvrez l'éditeur VBA (ALT + F11).
  2. Sélectionnez le formulaire principal et collez le code qui suit.Sélectionnez le formulaire principal et collez le code
'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. Après avoir copié le code, remplacez toutes les instances du mot Fiche_données_membres avec le nom réel de votre formulaire de feuille de données.
  2. Une fois terminé, sélectionnez votre formulaire de feuille de données dans le menu Projet et copiez le code ci-dessous.
'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. Mettez à jour les valeurs des variables suivantes :
  • pk_tbox – fait référence à la zone de texte contenant la clé primaire.
  • pk_champ – fait référence au champ de clé primaire de la source d'enregistrement.

Ils ont chacun un astérisque (*) dans la section des commentaires afin que vous puissiez les trouver facilement.

  1. Une fois terminé, enregistrez les modifications (CTRL + S) et fermez l'éditeur VBA.

Maintenant, vous pouvez ajouter votre propre formulaire fractionné dans le formulaire de navigation. Essaye le!

Réparer la base de données Access endommagée (.accdb)

Il existe de nombreuses raisons pour lesquelles une base de données Access peut être corrompue. Malheureusement, nous n'avons aucun contrôle sur la plupart d'entre elles. Si cela vous arrive, sachez qu'il est toujours possible de la récupérer. DataNumen Inc. a créé un logiciel qui effectue réparation accdb. Vérifiez-le.

Introduction de l'auteur:

Jayme Stack est un expert en récupération de données dans DataNumen, Inc., qui est le leader mondial des technologies de récupération de données, y compris récupération SQL et des produits logiciels de récupération Excel. Pour plus d'informations, visitez www.datanumen.com

Partage maintenant:

Les commentaires sont fermés.