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é.
- En mode création, sélectionnez le formulaire.
- Accédez à l'onglet Feuille de propriétés (ALT + Entrée) > Formulaire.
- Changez la vue par défaut en : Formulaire unique.
- Fermez le formulaire et enregistrez.
2. Créez une copie du formulaire. Cela servira de vue de feuille de données.
- Accédez au volet de navigation.
- Faites un clic droit sur votre formulaire et sélectionnez Copier.
- Faites un clic droit sur une zone vide dans le volet de navigation et sélectionnez Coller.
- 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.
- Ouvrez le formulaire Feuille de données.
- En mode création, sélectionnez le formulaire.
- Accédez à l'onglet Feuille de propriétés > Formulaire.
- 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
- Fermez le formulaire et enregistrez.
4. Rouvrez le formulaire principal et ajoutez le formulaire de feuille de données en tant que sous-formulaire.
- Ouvrez le formulaire principal (celui qui a été copié) en mode création.
- Ajoutez un sous-formulaire.
- Allez dans le menu Conception. Sélectionnez Sous-formulaire/Sous-rapport.
- Cliquez sur la zone Détails du formulaire.
- L'assistant de sous-formulaire apparaîtra.
- Allez dans le menu Conception. Sélectionnez Sous-formulaire/Sous-rapport.
1. Cliquez sur 'Utiliser un formulaire existant'.
2.Sélectionnez votre formulaire de feuille de données.
3.Cliquez sur Suivant.
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.
- Ouvrez l'éditeur VBA (ALT + F11).
- Sélectionnez le formulaire principal et collez le code qui suit.
'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
- 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.
- 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
- 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.
- 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



