A voir également:
- Requêtes et formuliares ACCESS..
- Access appdata - Guide
- Acer quick access ✓ - Forum PC portable
- Exemple base de données access à télécharger gratuit ✓ - Forum Logiciels
- Exemple de base de données access - Forum Access
- Quick acces ✓ - Forum Windows
5 réponses
Salut,
J'ai bien peur de ne pas comprendre grand chose à la structure de tes données et/ou à la manière dont tu organises les données.
Tu m'inquiètes quand tu écris qu'un formulaire se base sur deux autre formulaires...
Pourrais-tu nous donner la structure de tes tables?
En principe, un formulaire est basé sur une table ou une requête et tu peux choisir les champs présents dans la liste des champs.
Si le champ souhaité est absent, il faut modifier la requête pour l'inclure.
J'ai bien peur de ne pas comprendre grand chose à la structure de tes données et/ou à la manière dont tu organises les données.
Tu m'inquiètes quand tu écris qu'un formulaire se base sur deux autre formulaires...
Pourrais-tu nous donner la structure de tes tables?
En principe, un formulaire est basé sur une table ou une requête et tu peux choisir les champs présents dans la liste des champs.
Si le champ souhaité est absent, il faut modifier la requête pour l'inclure.
Je dispose d'un formulaire "menu principal avec plusieurs bouton dont "reception de composant" quand je clique dessus il execute la procedure suivante:
Private Sub Bouton9_Click()
On Error GoTo Err_Bouton9_Click
Dim DocName As String
Dim LinkCriteria As String
DoCmd.Close
DocName = "Demande champ 1 et 6"
DoCmd.OpenForm DocName, , , LinkCriteria
Nom_form_Next = "Réception de composant"
Nom_form_Before = "Menu principal"
Exit_Bouton9_Click:
Exit Sub
Err_Bouton9_Click:
MsgBox Error$
Resume Exit_Bouton9_Click
End Sub
Le formulaire "reception de composant" contient plusieurs cases par exemple N°de DE dont la source contrôle pointe sur =[Formulaires]![Demande champ 1 et 6]![Liste] ou bien la case N° d'activité qui pointe sur =[Formulaires]![Demande champ 1 et 6]![Champ7] et d'autres infos (Banc d'essai,condition essai,date debut,machine)
Et en bas de ce formulaire il y a un lien sur un un sous formulaire reception de composant ou il ya definition composant,Ref composant, N°de piece, date de reception, origien, N°DL/DT, et une case que j'ai rajouté date_recep_reele pointant sur le champs "date_recep_reelle" de la table Composant..
Le formulaire "demande champ 1et6" contient deux parties:
une partie demandant le numero de la Demande d'Essai
nom: liste,
origine source: table/requete,
contenu:SELECT DISTINCTROW DE.[n° DE], First([DE]![Objet]) AS Objet FROM DE INNER JOIN ACTIVITE ON DE.[n° DE] = ACTIVITE.[n° DE] GROUP BY DE.[n° DE], ACTIVITE.Etat HAVING (((ACTIVITE.Etat) Is Null Or (ACTIVITE.Etat)="Planifié" Or (ACTIVITE.Etat)="Réalisé")) ORDER BY DE.[n° DE] DESC;
et une procedure apres MAJ :
Private Sub Liste_AfterUpdate()
Me![Champ21] = Me![Liste]
' Actualise la zone de liste Choisissez un exemple.
Me![Champ7].Requery
End Sub
Et la deuxieme partie de "demande champs 1et6" demande le numero d'activité pour cet essai:
Nom: Champ7
Origine source: table requete
contenu:SELECT DISTINCTROW ACTIVITE.[n° activité], ACTIVITE.[Type d'essai], ACTIVITE.Etat FROM DE INNER JOIN ACTIVITE ON DE.[n° DE] = ACTIVITE.[n° DE] WHERE ((DE.[n° DE]=[Formulaires]![Demande champ 1 et 6]![Champ21]));
procedure apres MAJ:
Private Sub Champ7_DblClick(Cancel As Integer)
DoCmd.OpenForm Nom_form_Next
End Sub
Je dispose aussi d'une sous requête reception composant dont le SQL donne
SELECT DISTINCTROW COMPOSANT.[Définition produit], COMPOSANT.[Date réception], COMPOSANT.[Réf produit], COMPOSANT.Origine, COMPOSANT.[n° DL], COMPOSANT.[n° pièce], COMPOSANT.[n° activité], COMPOSANT.Date_recep_reelle
FROM COMPOSANT
WHERE (((COMPOSANT.[n° activité])=[Formulaires]![Réception de composant]![n° activité]));
ce qui est en gras je l'ai rajouté..
Merci de me répondre car c'est trop compliqué pour moi!!!!
Private Sub Bouton9_Click()
On Error GoTo Err_Bouton9_Click
Dim DocName As String
Dim LinkCriteria As String
DoCmd.Close
DocName = "Demande champ 1 et 6"
DoCmd.OpenForm DocName, , , LinkCriteria
Nom_form_Next = "Réception de composant"
Nom_form_Before = "Menu principal"
Exit_Bouton9_Click:
Exit Sub
Err_Bouton9_Click:
MsgBox Error$
Resume Exit_Bouton9_Click
End Sub
Le formulaire "reception de composant" contient plusieurs cases par exemple N°de DE dont la source contrôle pointe sur =[Formulaires]![Demande champ 1 et 6]![Liste] ou bien la case N° d'activité qui pointe sur =[Formulaires]![Demande champ 1 et 6]![Champ7] et d'autres infos (Banc d'essai,condition essai,date debut,machine)
Et en bas de ce formulaire il y a un lien sur un un sous formulaire reception de composant ou il ya definition composant,Ref composant, N°de piece, date de reception, origien, N°DL/DT, et une case que j'ai rajouté date_recep_reele pointant sur le champs "date_recep_reelle" de la table Composant..
Le formulaire "demande champ 1et6" contient deux parties:
une partie demandant le numero de la Demande d'Essai
nom: liste,
origine source: table/requete,
contenu:SELECT DISTINCTROW DE.[n° DE], First([DE]![Objet]) AS Objet FROM DE INNER JOIN ACTIVITE ON DE.[n° DE] = ACTIVITE.[n° DE] GROUP BY DE.[n° DE], ACTIVITE.Etat HAVING (((ACTIVITE.Etat) Is Null Or (ACTIVITE.Etat)="Planifié" Or (ACTIVITE.Etat)="Réalisé")) ORDER BY DE.[n° DE] DESC;
et une procedure apres MAJ :
Private Sub Liste_AfterUpdate()
Me![Champ21] = Me![Liste]
' Actualise la zone de liste Choisissez un exemple.
Me![Champ7].Requery
End Sub
Et la deuxieme partie de "demande champs 1et6" demande le numero d'activité pour cet essai:
Nom: Champ7
Origine source: table requete
contenu:SELECT DISTINCTROW ACTIVITE.[n° activité], ACTIVITE.[Type d'essai], ACTIVITE.Etat FROM DE INNER JOIN ACTIVITE ON DE.[n° DE] = ACTIVITE.[n° DE] WHERE ((DE.[n° DE]=[Formulaires]![Demande champ 1 et 6]![Champ21]));
procedure apres MAJ:
Private Sub Champ7_DblClick(Cancel As Integer)
DoCmd.OpenForm Nom_form_Next
End Sub
Je dispose aussi d'une sous requête reception composant dont le SQL donne
SELECT DISTINCTROW COMPOSANT.[Définition produit], COMPOSANT.[Date réception], COMPOSANT.[Réf produit], COMPOSANT.Origine, COMPOSANT.[n° DL], COMPOSANT.[n° pièce], COMPOSANT.[n° activité], COMPOSANT.Date_recep_reelle
FROM COMPOSANT
WHERE (((COMPOSANT.[n° activité])=[Formulaires]![Réception de composant]![n° activité]));
ce qui est en gras je l'ai rajouté..
Merci de me répondre car c'est trop compliqué pour moi!!!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Désolé de tarder à répondre...
Je postule que tout fonctionne sauf le champ que tu ajoutes même si je ne vois pas bien comment tout ça s'imbrique.
As-tu essayé d'exécuter ta requête modifiée (en enlevant la clause WHERE)?
J'imagine que tes données s'affichent par le biais d'un formulaire. Est-ce que, en mode création, le champ ajouté apparaît bien dans la liste des champs?
Méfie toi aussi des espaces et des accents dans les noms des champs et des formulaires. Si tu tiens à les utiliser, n'oublie pas d'ajouter systématiquement des [ ].
Je postule que tout fonctionne sauf le champ que tu ajoutes même si je ne vois pas bien comment tout ça s'imbrique.
As-tu essayé d'exécuter ta requête modifiée (en enlevant la clause WHERE)?
J'imagine que tes données s'affichent par le biais d'un formulaire. Est-ce que, en mode création, le champ ajouté apparaît bien dans la liste des champs?
Méfie toi aussi des espaces et des accents dans les noms des champs et des formulaires. Si tu tiens à les utiliser, n'oublie pas d'ajouter systématiquement des [ ].