j'ai une base de donnée extrêmement compliquée que j'ai acheté chez un fournisseur pour ma gestion de stock de matériel de sonorisation.
Je suis débutant en access mais je commence à comprendre des choses...
j'ai voulu modifier un peu la base en rajoutant un sous formulaire puis un état qui s'affiche à laide d'une requête. Je m'explique :
Ce que je veux créer c'est un nouvel état avec les infos suivantes : nombre de repas à prévoir, date d'hébergement. (faisons avec 2 pour commencer)
Dans le sous formulaire je rempli donc la case repas : j'inscris 2 et la case hébergement j'inscris 01/01/2001.
Autre chose à prendre en considération. Dans mon sous formulaire apparait aussi le n° du devis appelé ''N°Devis'' (qui proviens du formulaire principal dans lequel il a le nom ''Pnum'')
Pour imprimer mon formulaire, j'ai donc crée un état et une requete. J'ai créé mon état avec l'assistant d'access donc je vois pas comment il ne pourrai pas être bon.
Puis en mode création sous l'état j'ai cliqué sur source pour pouvoir mettre ma requette.
Pour la colone 1 j'ai mis * pour champ, j'ai rentré ma table et afficher, c'est tout.
Pour la colone 2 j'ai mis dans le champ ''N°Devis'', j'ai rentré ma table, je n'ai pas affiché et dans critère j'ai mis [Formulaires]![verso pretstaion]![N° Devis]
[Verso pretstaion] étant le nom du sous formulaire mais aussi de l'état et de la table.
On arrive à la fin.. mais peut être voyez vous déjà le soucis...
Je ferme tout je me remet en affichage normal, je rentre mes données dans le formulaire et lorsque eje veux visualiser l'état il me met :
''entrer une valeur de paramètre Formulaires!verso pretstaion!N° Devis''
Désolé si je suis long mais je sais à quel point c'est désagréable de ne rien avoir comme infos sur le sujet...
Très bien le développement du problème, même si il faut s'y retrouver. Il est vrai que très peu de débutants"osent" montrer leurs "oeuvres". Appelons ça de la pudeur pour ne pas employer un autre mot. Il est difficile d'aider sans quelques explications.
Pour notre problème, qui appelle sa solution :
De suite nous interpelle le nom du formulaire-->verso pretstaion
Hormis le nom quelque peu surprenant, il faut éviter les espaces dans les noms d'objets.
Et que découvrent mes yeux esbaudis : Il en serait de même pour une table et un état?
Vite modifions! Access va se mettre à hurler ne sachant à qui s'adresser.
On va préfixer tout ceci. Exemple :
Table--------------> tbl__versoPrestation
Requête-----------> qry__versoPrestation
Formulaire--------> frm__versoPrestation
Sous-formulaire--> fsub_versoPrestation
Etat (Rapport)----> rpt_versoPrestation
Sous-état----------> rsub_versoPrestation
Ta requête possède un champ-->[N°Devis].
La démarche n'est pas trop mauvaise en écrivant :
[Formulaires]![verso pretstaion]![N° Devis]
Il manque juste le formulaire principal. Access veut qu'on le lui indique :
Mais pourquoi référer au sous form si ce Numéro existe sur le formulaire principal:
Forms!TonFormulairePrincipal!Pnum
Francois35 dit : j'ai une base de donnée extrêmement compliquée que j'ai acheté chez un fournisseur pour ma gestion de stock de matériel de sonorisation.
C'est sur une copie que tu travailles. En développement on ne travaille jamais sur la base utilisateur.
Francois35 dit : Bref, j'attends votre coup de main par pitié....
L'entraide, ou la solidarité sur ce forum n'ont rien à voir avec la pitié. Juste le désir d'aider les autres à progresser.
Cordialement.
Ps : En citation le "ç" ne passe pas correctement.
__________________________
Le peu que je sais, c'est à mon ignorance que je le dois. Sacha Guitry
Bonjour et merci de m'être intéressé à mon problème...
tout d'abord, effectivement j'ai eut un soucis en créant le nom de ma table ''Verso Pretstaion'' au lieu de ''Verso Prestation''. Est-il possible de changer le nom de tout ça sans incidence dans la base? ou faudra-t-il tout refaire?
d'autre part le premier problème que je décrivait est résolu...
J'en ai un autre maintenant.
Dans un formulaire j'ai plusieurs cases à cochcer. on va les appeler C1, C2, C3, C4 pour faire simple.
Dans un état j'ai 4 étiquettes : E1, E2, E3, E4
Je souhaite que lorsque je coche la case C1, l'étiquette E1 appariasse sur le devis. Si elle n'est pas cochée, elle n'apparaisse pas...
Ca ce serai déjà pas mal. J'ai rentré :
If [case à cocher] = -1 Then
Reports![nom de l'état]![nom de l'étiquette].Visible = True
Else
Reports![nom de l'état]![nom de l'étiquette].Visible = False
End If
dans ''après MAJ'' de la case à cocher du formulaire
et
If Forms![formulaire]![sous formulaire]![case à cocher] = -1 Then
Reports![nom de l'état]![nom de l'étiquette].Visible = True
Else
Reports![nom de l'état]![nom de l'étiquette].Visible = False
End If
dans l'évènement ''au formatage '' du détail de mon état.
Le truc c'est que ça ne fonctionne que si l'état est ouvert.... Déjà je m'étonne qu'un état puisse être modifié oune fois ouvert... et en plus c'est pas très pratique...
qu'ai-je fais de mauvais?
ET pour courronner le tout, le top du top!! serai que si la case 2 et 3 ne sont pas cochées, l'étiquette 4 sur l'état prenne la place de l'étiquette 2. Pour éviter d'avoir trop de gros trous moches sur la page....