Bonjour,
Je suis débutant en Access et je suis actuellement en train de créer une base de données permettant de gérer de la documentation (vidéos, images, cartes, audio...). J'ai cherché des solutions à ma question un peu partout mais rien n'y fait, je n'arrive pas à transposer à mon cas...
J'ai créé 2 formulaires: un permettant la recherche de documentation dans la base (F_Search) et un autre pour créer un nouveau document dans la base (F_Documents). Un peu de code VBA pour chaque formulaire et 2 modules VBA avec des fonctions. Jusque là, tout va bien: les formulaires fonctionnent et font ce qu'on leur demande notamment le formulaire F_Documents possèdent un bouton "Save and Add Document" qui "sur clic" appellent les fonctions du module Macro_SaveDocument. Basiquement, le module check que les champs du formulaire F_Documents ne soient pas vides et ajoute un nouveau document à la table T_Documents.
Pour la forme, j'ai voulu créer un formulaire de navigation (F_Navigation) et c'est là que je me casse les dents! J'ai déposé mes formulaires F_Search et F_Documents dans les onglets de F_Navigation. Mes formulaires s'affichent correctement dans les onglets mais mes fonctions ne marchent plus. Par exemple, sur clic de "Save and Add Document" depuis le deuxième onglet du formulaire de navigation (qui contient le formulaire F_Documents) , j'ai l'erreur:
"Microsoft Access ne trouve pas le champ F_Documents auquel il fait référence dans votre expression".
Dans Macro_SaveDocument , je fais référence à F_Documents avec Forms!F_Documents.Control. J'ai essayé différentes syntaxes mais rien n'y fait: Forms!F_Navigation!F_Documents.Control ou Forms!F_Navigation!F_Documents.Form!Control etc... Bref, j'ai mis des "." et des "!" et essayé toutes sortes de combinaisons que j'ai trouvé sur internet mais access refuse d'accéder à mon formulaire. Quelle serait la syntaxe correcte?
Un extrait du module Macro_SaveDocument:
Un grand merci d'avance pour votre aide!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Function CheckForEmpty() As Boolean CheckForEmpty = True Dim ctrl As Control If Forms!F_Navigation!F_Documents.Digitized_New = True & IsNull(Forms!F_Navigation!F_Documents.DigitalLocation_New) Then CheckForEmpty = False Forms!F_Navigation!F_Documents.DigitalLocation_New.Tag = "MANDATORY" End If For Each ctrl In Forms!F_Navigation!F_Documents.Controls If ctrl.Tag = "MANDATORY" Then If IsNull(ctrl) Or Len(ctrl) = 0 Then ctrl.BorderColor = vbRed CheckForEmpty = False End If End If Next
Marc
Partager