ACCESS - Parcours de formulaire - Syntaxe

Julaie -  
 Julaie -
Bonjour,

Je cherche à faire des parcours de formulaire et des ses sous formulaires mon problème c que je n'arrive pas à appeller mon sous-formulaire cf le designer
J ai un variable de type form qui designe mon formulaire courant quelle est la syntaxe pour designer le sous formulaire ?
Merci d avance

Julie.

23 réponses

blux Messages postés 27918 Date d'inscription   Statut Modérateur Dernière intervention   3 364
 
Salut,

sans explication, pas moyen de trouver :-)))
Forms![principal].Form![SF_Start_Group-G].Visible = True
Cette ligne rend visible le sous-formulaire nommé "SF_Start_Group-G" situé dans le formulaire "principal"...

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
Nerva Messages postés 320 Statut Membre 49
 
Bonjour Julie,

Je n'arrive pas bien à saisir ta question ; est-ce que tu veux lier ton sous-formulaire à ton formulaire principal ?
0
Julaie
 
Re :) Merci pour les reponses déjà je vais réexpliquer
Mon formulaire est déjà fait mais lorsque la saisie est fini je veux pouvoir faire un controle sur ce qui a été saisie.
Je souhaite verifié la valeur d'un champ de mon formulaire principal et si elle me convient allez voir dans le sous formulaire si les valeurs me conviennent aussi. Pour cela je fais du recursif je verifie mes valeurs dans le formulaire courant puis je rapl ma fonction sur le sous formulaire et ainsi de suite mon problème c'est lorsque je veux rapl ma fonction sur le sous formulaire je n'arrive pas à trouver la bonne syntaxe pour désigner ce sous formulaire

ublic Function testFormulaire(mon_form As Form) As Boolean
    Dim ctl As Control
    MsgBox ("Entree dans " & mon_form.Name)
    
    If mon_form![Somme_fin] <> 1 Then
        MsgBox ("Somme_fin différent de 100% ! Veuillez modifier vos valeurs")
        testFormulaire = False
    Else
        MsgBox ("Entree else")
        For Each ctl In mon_form.Controls
        If ctl.Name = "Pourcentage" Then
        MsgBox ("Valeur " & ctl.Name & ":" & ctl.Value)
            If ctl.Value <> 0 Then
                Select Case mon_form.Name
                    Case "Silhouette_ss-form"
                    MsgBox ("Cas 1")
                        testFormulaire = testFormulaire(Forms!Ligne_Contrat!Silhouette_ss - Form!Finitions_ss - Form)
                    Case "Finitions_ss-form"
                    MsgBox ("Cas 2")
                        testFormulaire = testFormulaire(mon_form.Motor_sous_formulaire)
                    Case "Motor_form"
                    MsgBox ("Cas 3")
                        testFormulaire = testFormulaire(mon_form.Couleur_ext_form)
                    Case "Couleur_ext_form"
                    MsgBox ("Cas 4")
                        testFormulaire = testFormulaire(mon_form.Couleur_int_form)
                    Case "Couleur_int_form"
                    MsgBox ("Cas 5")
                        testFormulaire = True
                End Select
            End If
        End If
        Next ctl
    End If
End Function


Voila le code c en mode debugage pour l instant donc je sais pas si ca va etre clair j espere en tout cas que mes explications etaient plus clair :)
G mis en gras ou mon probleme se pose

Julie.
0
blux Messages postés 27918 Date d'inscription   Statut Modérateur Dernière intervention   3 364
 
Pour moi, le problème est qu'un formulaire ne s'appelle pas avec la même syntaxe qu'un sous-formulaire, donc en récursif, il faudrait rajouter le début du nom (ou le concaténer avant l'appel)...

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Julaie
 
Je n ai pas compris ce que tu dis qu il faut concaténer
Merci,

Julie.
0
blux Messages postés 27918 Date d'inscription   Statut Modérateur Dernière intervention   3 364
 
En clair, ta ligne "cas1", n'a pas la syntaxe correcte pour référencer un sous-formulaire.

pour un sous-formulaire : forms!nom_form.form!nom_de_sous_form
pour un formulaire : forms!nom_form

Il faut donc appeler différemment un sous-formulaire, i.e rajouter .form!.... si tu veux faire passer le nom dans une fonction récursive.

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
Julaie
 
OK mais j ai essayé de mette le nom complet :
testFormulaire = testFormulaire(Forms!Silhouette_ss - Form.Form!Finitions_ss - Form)

Le prob c que mon formulaire s'apl Silhouette_ss-form avec un petit "f" et Access me mets un grand F d'où le problème et si je change le nom de mon formulaire ca me boussille mon formulaire au nivo des requetes donc mission impossible ...
:(

Julaie.
0
blux Messages postés 27918 Date d'inscription   Statut Modérateur Dernière intervention   3 364
 
Quand un obJet ACCESS contient des caractères spéciaux (espace...), on le met généralement entre crochets : [mon form]...

Il doit reconnaitre le '-' comme caractère spécial (c'est le signe de la soustraction en VBA, et il n'aime pas qu'on le mette dans les noms d'objets, son analyseur de syntaxe se perd un peu les pédales...)

Ca t'aiderait ?

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
julaie
 
Bon au moins il execute avec ca :) merci bien
mais ca fait pas encore ce que je veux mais ca doit etre mon prog qui est foireux ;) faut que je debug merci bien :)

Julie.
0
blux Messages postés 27918 Date d'inscription   Statut Modérateur Dernière intervention   3 364
 
Ah ben voui !
Je debuggue pas l'algorithmique dans les pensées... ;-)

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
Julaie
 
Bonjour,

Bon g ce problème de caractères spécials et si je modifie le nom de mes formulaires g des requetes qui foire (meme en changeant les noms dedans ! je vois pas pkoi) ke faire ? HELP

Julie.
0
blux Messages postés 27918 Date d'inscription   Statut Modérateur Dernière intervention   3 364
 
Elles foirent ?
C'est quoi le message d'erreur ?
Tu as mis des [] pour les noms de champ avec des caractères "spécials" ?

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
Julaie
 
lol caractères spéciaux pardon oué g mis les [] mais il es pas content du coup je change le nom de mes formulaires en les simplifiant mais maintenant mon formulaire foire sur une liste déroulante : dans mon dernier sous formulaire j ai une liste déroulante qui trouve ses valeurs grace à une requete SQL mais cette requete utilise la clé qui est dans ce formulaire sur la meme ligne la requete en elle meme marche bien mais quand j execute le formulaire il me trouve pas cette clé qui est pourtant dans le formulaire il m ouvre alors une boite de dialogue pour me la demander ... Galère :(

Julie.
0
blux Messages postés 27918 Date d'inscription   Statut Modérateur Dernière intervention   3 364
 
Il se peut qu'ACCESS n'ait pas véritablement changé le nom du sous-formulaire, cela arrive lorsqu'on le renomme. Vérifie que le nom est correct partout (cliquer une fois sur le sous-form et vérifier ses propriétés...)

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
Julaie
 
Mais c de la folie c pas sorcier ce que je veux faire et j y arrive pas ! J hallucine :(
Maintenant que j ai mon problème précédent, j ai changé mes noms de formulaires il reconnait jamais le formulaire l'erreur c
"impossible de trouver le formulaire ..."
0
blux Messages postés 27918 Date d'inscription   Statut Modérateur Dernière intervention   3 364
 
C'est ce que je dis, il a gardé quelque part l'ancien nom, cela arrive avec les sous-formulaires, vois mon message 14...

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
Julaie
 
Oué j ai refait le tour et tout remis correctement effectivement ca avait pas tout modifié et ma requete marche com ca mais mon prob de formulaire est tjs le meme :(

Julie.
0
Julaie
 
Bon je vais donner toutes les infos peut etre quelqu un pourra me donner la reponse :
Voici la hierarchie de mes formulaires
Ligne_Contrat>silhouette>Finitions>Motorisation>Couleur_ext>Couleur_int

J ai la variable mon_form = silhouette
Je veux apl ma fonction sur le sous formulaire Finitions
testFormulaire = testFormulaire(????)
Que dois je mettre dans ????
J ai test Forms!silhouette.Form!Finitions
et d autre à chaque fois il me repond impossible de trouver le formulaire 'silhouette'

Merci (notamment à Blux pour sa patience ;) )

Julie.
0
blux Messages postés 27918 Date d'inscription   Statut Modérateur Dernière intervention   3 364
 
J'ai jamais mis plus de 2 forms en sous-forms, amis je verrais plutôt cela comme syntaxe :

forms![ligne_contrat].form![silhouette].form![finitions]
ou
forms![ligne_contrat].forms![silhouette].form![finitions]

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
Julaie
 
Ca compte les majuscule minuscule non ?

Julie.
0
blux Messages postés 27918 Date d'inscription   Statut Modérateur Dernière intervention   3 364
 
Non.

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
Julaie
 
"Impossible de trouver le formulaire 'Ligne_Contrat' ..."
:(
Merci tout de même peut etre que le contexte ne lui permet pas de situer le formulaire

Julie.
0
blux Messages postés 27918 Date d'inscription   Statut Modérateur Dernière intervention   3 364
 
Jette un oeil ici :

http://access.seneque.free.fr/sous_formulaires.htm

C'est drôle !

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0