voici mon petit casse tête dont la solution doit être simple pour ceux qui
maitrisent mais je n'ai pas trouvé de solution sur le forum.
J'ai 3 tables A, B, C
Ma table C est liée par ses champs "ChampA" et "ChampB" à mes tables A et B
J'arrive à faire ma première étape qui consiste à créer via un formulaire
mes Enregistrements de la Table A et de créer par un sous-fourmulaire associé
mes Enregistrements associés de la Table C
C'est à l'étape 2 que je bloque, je voudrais sur un formulaire créer mes
enregistrements de ma Table B et via un sous formulaire par exemple choisir
les enregistrements de la Table C (Déjà créés précédemment à l'étape 1) que
je veux associé à ce nouvel enregistrement ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Dragan
Bonjour, d'après ce que j'ai compris les enegistrements de la tableC que tu cherches sont ceux qui ont un champA non-null et champB null.
"franck001" a écrit :
Bonjour à tous,
voici mon petit casse tête dont la solution doit être simple pour ceux qui maitrisent mais je n'ai pas trouvé de solution sur le forum. J'ai 3 tables A, B, C Ma table C est liée par ses champs "ChampA" et "ChampB" à mes tables A et B J'arrive à faire ma première étape qui consiste à créer via un formulaire mes Enregistrements de la Table A et de créer par un sous-fourmulaire associé mes Enregistrements associés de la Table C
C'est à l'étape 2 que je bloque, je voudrais sur un formulaire créer mes enregistrements de ma Table B et via un sous formulaire par exemple choisir les enregistrements de la Table C (Déjà créés précédemment à l'étape 1) que je veux associé à ce nouvel enregistrement ?
Bonjour,
d'après ce que j'ai compris les enegistrements de la tableC que tu cherches
sont ceux qui ont un champA non-null et champB null.
"franck001" a écrit :
Bonjour à tous,
voici mon petit casse tête dont la solution doit être simple pour ceux qui
maitrisent mais je n'ai pas trouvé de solution sur le forum.
J'ai 3 tables A, B, C
Ma table C est liée par ses champs "ChampA" et "ChampB" à mes tables A et B
J'arrive à faire ma première étape qui consiste à créer via un formulaire
mes Enregistrements de la Table A et de créer par un sous-fourmulaire associé
mes Enregistrements associés de la Table C
C'est à l'étape 2 que je bloque, je voudrais sur un formulaire créer mes
enregistrements de ma Table B et via un sous formulaire par exemple choisir
les enregistrements de la Table C (Déjà créés précédemment à l'étape 1) que
je veux associé à ce nouvel enregistrement ?
Bonjour, d'après ce que j'ai compris les enegistrements de la tableC que tu cherches sont ceux qui ont un champA non-null et champB null.
"franck001" a écrit :
Bonjour à tous,
voici mon petit casse tête dont la solution doit être simple pour ceux qui maitrisent mais je n'ai pas trouvé de solution sur le forum. J'ai 3 tables A, B, C Ma table C est liée par ses champs "ChampA" et "ChampB" à mes tables A et B J'arrive à faire ma première étape qui consiste à créer via un formulaire mes Enregistrements de la Table A et de créer par un sous-fourmulaire associé mes Enregistrements associés de la Table C
C'est à l'étape 2 que je bloque, je voudrais sur un formulaire créer mes enregistrements de ma Table B et via un sous formulaire par exemple choisir les enregistrements de la Table C (Déjà créés précédemment à l'étape 1) que je veux associé à ce nouvel enregistrement ?
Le problème n'est pas d'afficher les enregistrements qui ont un champA non-null et champB null. C'est de trouver une manière de pouvoir associé les enregistrements de la table C à la table B en partant d'un formulaire de création d'un enregistrement de la table B.
Bonjour, d'après ce que j'ai compris les enegistrements de la tableC que tu cherches sont ceux qui ont un champA non-null et champB null.
"franck001" a écrit :
> Bonjour à tous, > > voici mon petit casse tête dont la solution doit être simple pour ceux qui > maitrisent mais je n'ai pas trouvé de solution sur le forum. > J'ai 3 tables A, B, C > Ma table C est liée par ses champs "ChampA" et "ChampB" à mes tables A et B > J'arrive à faire ma première étape qui consiste à créer via un formulaire > mes Enregistrements de la Table A et de créer par un sous-fourmulaire associé > mes Enregistrements associés de la Table C > > C'est à l'étape 2 que je bloque, je voudrais sur un formulaire créer mes > enregistrements de ma Table B et via un sous formulaire par exemple choisir > les enregistrements de la Table C (Déjà créés précédemment à l'étape 1) que > je veux associé à ce nouvel enregistrement ? > > Avez vous quelque chsoe dans le genre? > > Merci d'avance > > ------(-_-)°zZz------ > Franck > http://www.deschamps-web.com
Le problème n'est pas d'afficher les enregistrements qui ont un champA
non-null et champB null. C'est de trouver une manière de pouvoir associé les
enregistrements de la table C à la table B en partant d'un formulaire de
création d'un enregistrement de la table B.
Bonjour,
d'après ce que j'ai compris les enegistrements de la tableC que tu cherches
sont ceux qui ont un champA non-null et champB null.
"franck001" a écrit :
> Bonjour à tous,
>
> voici mon petit casse tête dont la solution doit être simple pour ceux qui
> maitrisent mais je n'ai pas trouvé de solution sur le forum.
> J'ai 3 tables A, B, C
> Ma table C est liée par ses champs "ChampA" et "ChampB" à mes tables A et B
> J'arrive à faire ma première étape qui consiste à créer via un formulaire
> mes Enregistrements de la Table A et de créer par un sous-fourmulaire associé
> mes Enregistrements associés de la Table C
>
> C'est à l'étape 2 que je bloque, je voudrais sur un formulaire créer mes
> enregistrements de ma Table B et via un sous formulaire par exemple choisir
> les enregistrements de la Table C (Déjà créés précédemment à l'étape 1) que
> je veux associé à ce nouvel enregistrement ?
>
> Avez vous quelque chsoe dans le genre?
>
> Merci d'avance
>
> ------(-_-)°zZz------
> Franck
> http://www.deschamps-web.com
Le problème n'est pas d'afficher les enregistrements qui ont un champA non-null et champB null. C'est de trouver une manière de pouvoir associé les enregistrements de la table C à la table B en partant d'un formulaire de création d'un enregistrement de la table B.
Bonjour, d'après ce que j'ai compris les enegistrements de la tableC que tu cherches sont ceux qui ont un champA non-null et champB null.
"franck001" a écrit :
> Bonjour à tous, > > voici mon petit casse tête dont la solution doit être simple pour ceux qui > maitrisent mais je n'ai pas trouvé de solution sur le forum. > J'ai 3 tables A, B, C > Ma table C est liée par ses champs "ChampA" et "ChampB" à mes tables A et B > J'arrive à faire ma première étape qui consiste à créer via un formulaire > mes Enregistrements de la Table A et de créer par un sous-fourmulaire associé > mes Enregistrements associés de la Table C > > C'est à l'étape 2 que je bloque, je voudrais sur un formulaire créer mes > enregistrements de ma Table B et via un sous formulaire par exemple choisir > les enregistrements de la Table C (Déjà créés précédemment à l'étape 1) que > je veux associé à ce nouvel enregistrement ? > > Avez vous quelque chsoe dans le genre? > > Merci d'avance > > ------(-_-)°zZz------ > Franck > http://www.deschamps-web.com
Dragan
Oui, et donc. tu dis avoir une tableC contenant un CHAMPA commun avec la tableA et CHAMPB commun avec la tableB. Tu as créé un enregistrement dans la tableA, et les enregistrements correspondant dans la tableC; par conséquent ces enregistrements ont un CHAMPB null ou ="" ou =0. Lors de la création d'un enrgistrement dans la tableB seul les enregistrements de la tableC dont le CHAMPB n'a pas déjà été rempli sont concernés. Maintenant, tu as le choix :
Soit tu fais le choix d'ajouter un enregitrement dans B en cliquant dans la colonne correspondante dans le sousformulaireC.
Soit dans le formulaireB; tu ajoutes une liste contenant les enregistrements de C dont le champB est null (ou="" ou =0) et tu mets à jour le champb de ceux tu auras sélectionné parmi cette liste.
Soit c'est uniquement à partir d'un formulaire pour C que tu : 1) Sélectionnes ou ajoutes un enregistrement de A 2) Sélectionnes ou ajoutes un enregistrement de B
Oui, et donc.
tu dis avoir une tableC contenant un CHAMPA commun avec la tableA et CHAMPB
commun avec la tableB.
Tu as créé un enregistrement dans la tableA, et les enregistrements
correspondant dans la tableC; par conséquent ces enregistrements ont un
CHAMPB null ou ="" ou =0.
Lors de la création d'un enrgistrement dans la tableB seul les
enregistrements de la tableC dont le CHAMPB n'a pas déjà été rempli sont
concernés.
Maintenant, tu as le choix :
Soit tu fais le choix d'ajouter un enregitrement dans B en cliquant dans la
colonne correspondante dans le sousformulaireC.
Soit dans le formulaireB; tu ajoutes une liste contenant les
enregistrements de C dont le champB est null (ou="" ou =0) et tu mets à jour
le champb de ceux tu auras sélectionné parmi cette liste.
Soit c'est uniquement à partir d'un formulaire pour C que tu :
1) Sélectionnes ou ajoutes un enregistrement de A
2) Sélectionnes ou ajoutes un enregistrement de B
Oui, et donc. tu dis avoir une tableC contenant un CHAMPA commun avec la tableA et CHAMPB commun avec la tableB. Tu as créé un enregistrement dans la tableA, et les enregistrements correspondant dans la tableC; par conséquent ces enregistrements ont un CHAMPB null ou ="" ou =0. Lors de la création d'un enrgistrement dans la tableB seul les enregistrements de la tableC dont le CHAMPB n'a pas déjà été rempli sont concernés. Maintenant, tu as le choix :
Soit tu fais le choix d'ajouter un enregitrement dans B en cliquant dans la colonne correspondante dans le sousformulaireC.
Soit dans le formulaireB; tu ajoutes une liste contenant les enregistrements de C dont le champB est null (ou="" ou =0) et tu mets à jour le champb de ceux tu auras sélectionné parmi cette liste.
Soit c'est uniquement à partir d'un formulaire pour C que tu : 1) Sélectionnes ou ajoutes un enregistrement de A 2) Sélectionnes ou ajoutes un enregistrement de B
franck001
Bonjour Dragan,
merci de passer du temps sur mon pb, donc effectivement ej veux faire ta solution 2: "dans le formulaireB; tu ajoutes une liste contenant les enregistrements de C dont le champB est null (ou="" ou =0) et tu mets à jour le champb de ceux tu auras sélectionné parmi cette liste."
Comment fais tu pour "ajouter une liste" en allant taper dans les enregistrements C dont ChampB est Null.
Merci encore
Franck
"Dragan" a écrit :
Oui, et donc. tu dis avoir une tableC contenant un CHAMPA commun avec la tableA et CHAMPB commun avec la tableB. Tu as créé un enregistrement dans la tableA, et les enregistrements correspondant dans la tableC; par conséquent ces enregistrements ont un CHAMPB null ou ="" ou =0. Lors de la création d'un enrgistrement dans la tableB seul les enregistrements de la tableC dont le CHAMPB n'a pas déjà été rempli sont concernés. Maintenant, tu as le choix :
Soit tu fais le choix d'ajouter un enregitrement dans B en cliquant dans la colonne correspondante dans le sousformulaireC.
Soit dans le formulaireB; tu ajoutes une liste contenant les enregistrements de C dont le champB est null (ou="" ou =0) et tu mets à jour le champb de ceux tu auras sélectionné parmi cette liste.
Soit c'est uniquement à partir d'un formulaire pour C que tu : 1) Sélectionnes ou ajoutes un enregistrement de A 2) Sélectionnes ou ajoutes un enregistrement de B
Bonjour Dragan,
merci de passer du temps sur mon pb, donc effectivement ej veux faire ta
solution 2: "dans le formulaireB; tu ajoutes une liste contenant les
enregistrements de C dont le champB est null (ou="" ou =0) et tu mets à jour
le champb de ceux tu auras sélectionné parmi cette liste."
Comment fais tu pour "ajouter une liste" en allant taper dans les
enregistrements C dont ChampB est Null.
Merci encore
Franck
"Dragan" a écrit :
Oui, et donc.
tu dis avoir une tableC contenant un CHAMPA commun avec la tableA et CHAMPB
commun avec la tableB.
Tu as créé un enregistrement dans la tableA, et les enregistrements
correspondant dans la tableC; par conséquent ces enregistrements ont un
CHAMPB null ou ="" ou =0.
Lors de la création d'un enrgistrement dans la tableB seul les
enregistrements de la tableC dont le CHAMPB n'a pas déjà été rempli sont
concernés.
Maintenant, tu as le choix :
Soit tu fais le choix d'ajouter un enregitrement dans B en cliquant dans la
colonne correspondante dans le sousformulaireC.
Soit dans le formulaireB; tu ajoutes une liste contenant les
enregistrements de C dont le champB est null (ou="" ou =0) et tu mets à jour
le champb de ceux tu auras sélectionné parmi cette liste.
Soit c'est uniquement à partir d'un formulaire pour C que tu :
1) Sélectionnes ou ajoutes un enregistrement de A
2) Sélectionnes ou ajoutes un enregistrement de B
merci de passer du temps sur mon pb, donc effectivement ej veux faire ta solution 2: "dans le formulaireB; tu ajoutes une liste contenant les enregistrements de C dont le champB est null (ou="" ou =0) et tu mets à jour le champb de ceux tu auras sélectionné parmi cette liste."
Comment fais tu pour "ajouter une liste" en allant taper dans les enregistrements C dont ChampB est Null.
Merci encore
Franck
"Dragan" a écrit :
Oui, et donc. tu dis avoir une tableC contenant un CHAMPA commun avec la tableA et CHAMPB commun avec la tableB. Tu as créé un enregistrement dans la tableA, et les enregistrements correspondant dans la tableC; par conséquent ces enregistrements ont un CHAMPB null ou ="" ou =0. Lors de la création d'un enrgistrement dans la tableB seul les enregistrements de la tableC dont le CHAMPB n'a pas déjà été rempli sont concernés. Maintenant, tu as le choix :
Soit tu fais le choix d'ajouter un enregitrement dans B en cliquant dans la colonne correspondante dans le sousformulaireC.
Soit dans le formulaireB; tu ajoutes une liste contenant les enregistrements de C dont le champB est null (ou="" ou =0) et tu mets à jour le champb de ceux tu auras sélectionné parmi cette liste.
Soit c'est uniquement à partir d'un formulaire pour C que tu : 1) Sélectionnes ou ajoutes un enregistrement de A 2) Sélectionnes ou ajoutes un enregistrement de B
Dragan
Bonjour,
Pour l'exemple j'appelle : - ChampB, le champ commun aux TableB et TableC - CleC, la clé primaire de la TableC - SousFormC, le contrôle sous-formulaire de la TableC - ListeC, le contrôle zone de liste
1) place dans le formulaire B le sous-formulaire C pour pouvoir consulter les enregistrements de C. 2) crée une liste dans formulaire B dont la requête source est : SELECT * FROM TableC WHERE ChampB=0; (si le champB est numérique , ="" si c'est du texte..)
3) Choisis "Procédure événementielle" pour l'événement Sur double Clique de la liste LISTEC puis Clique sur le bouton ... (à droite) et tu écris ce code
Private Sub ListeC_DblClick(Cancel as Integer) 'Si l'enregistrement TableB n' a pas été créé alors Ne rien faire IF ISNULL([ChampB]) THEN CANCEL=1:EXIT SUB 'Mis à jour du champB de l'enregistrement de la TableC choisis lors du DblClique DOCMD.RUNSQL "UPDATE TableC SET ChampB=" & [ChampB] & " WHERE [CleC]=" & ListeC.Value 'Rafraichissement de sous-formulaire C; pour voir le nouvel enregistrement dans la liste SOUSFORMC.FORM.REQUERY 'Rafraichissement de la liste LISTEC pour ne plus voir l'enregistrement de la TableC mis à jour LISTEC.REQUERY End sub
Bonjour,
Pour l'exemple j'appelle :
- ChampB, le champ commun aux TableB et TableC
- CleC, la clé primaire de la TableC
- SousFormC, le contrôle sous-formulaire de la TableC
- ListeC, le contrôle zone de liste
1) place dans le formulaire B le sous-formulaire C pour pouvoir consulter
les enregistrements de C.
2) crée une liste dans formulaire B dont la requête source est :
SELECT * FROM TableC WHERE ChampB=0; (si le champB est numérique , ="" si
c'est du texte..)
3) Choisis "Procédure événementielle" pour l'événement Sur double Clique de
la liste LISTEC puis Clique sur le bouton ... (à droite) et tu écris ce code
Private Sub ListeC_DblClick(Cancel as Integer)
'Si l'enregistrement TableB n' a pas été créé alors Ne rien faire
IF ISNULL([ChampB]) THEN CANCEL=1:EXIT SUB
'Mis à jour du champB de l'enregistrement de la TableC choisis lors du
DblClique
DOCMD.RUNSQL "UPDATE TableC SET ChampB=" & [ChampB] & " WHERE [CleC]=" &
ListeC.Value
'Rafraichissement de sous-formulaire C; pour voir le nouvel enregistrement
dans la liste
SOUSFORMC.FORM.REQUERY
'Rafraichissement de la liste LISTEC pour ne plus voir l'enregistrement de
la TableC mis à jour
LISTEC.REQUERY
End sub
Pour l'exemple j'appelle : - ChampB, le champ commun aux TableB et TableC - CleC, la clé primaire de la TableC - SousFormC, le contrôle sous-formulaire de la TableC - ListeC, le contrôle zone de liste
1) place dans le formulaire B le sous-formulaire C pour pouvoir consulter les enregistrements de C. 2) crée une liste dans formulaire B dont la requête source est : SELECT * FROM TableC WHERE ChampB=0; (si le champB est numérique , ="" si c'est du texte..)
3) Choisis "Procédure événementielle" pour l'événement Sur double Clique de la liste LISTEC puis Clique sur le bouton ... (à droite) et tu écris ce code
Private Sub ListeC_DblClick(Cancel as Integer) 'Si l'enregistrement TableB n' a pas été créé alors Ne rien faire IF ISNULL([ChampB]) THEN CANCEL=1:EXIT SUB 'Mis à jour du champB de l'enregistrement de la TableC choisis lors du DblClique DOCMD.RUNSQL "UPDATE TableC SET ChampB=" & [ChampB] & " WHERE [CleC]=" & ListeC.Value 'Rafraichissement de sous-formulaire C; pour voir le nouvel enregistrement dans la liste SOUSFORMC.FORM.REQUERY 'Rafraichissement de la liste LISTEC pour ne plus voir l'enregistrement de la TableC mis à jour LISTEC.REQUERY End sub
Pour l'exemple j'appelle : - ChampB, le champ commun aux TableB et TableC - CleC, la clé primaire de la TableC - SousFormC, le contrôle sous-formulaire de la TableC - ListeC, le contrôle zone de liste
1) place dans le formulaire B le sous-formulaire C pour pouvoir consulter les enregistrements de C. 2) crée une liste dans formulaire B dont la requête source est : SELECT * FROM TableC WHERE ChampB=0; (si le champB est numérique , ="" si c'est du texte..)
3) Choisis "Procédure événementielle" pour l'événement Sur double Clique de la liste LISTEC puis Clique sur le bouton ... (à droite) et tu écris ce code
Private Sub ListeC_DblClick(Cancel as Integer) 'Si l'enregistrement TableB n' a pas été créé alors Ne rien faire IF ISNULL([ChampB]) THEN CANCEL=1:EXIT SUB 'Mis à jour du champB de l'enregistrement de la TableC choisis lors du DblClique DOCMD.RUNSQL "UPDATE TableC SET ChampB=" & [ChampB] & " WHERE [CleC]=" & ListeC.Value 'Rafraichissement de sous-formulaire C; pour voir le nouvel enregistrement dans la liste SOUSFORMC.FORM.REQUERY 'Rafraichissement de la liste LISTEC pour ne plus voir l'enregistrement de la TableC mis à jour LISTEC.REQUERY End sub
Pour l'exemple j'appelle :
- ChampB, le champ commun aux TableB et TableC
- CleC, la clé primaire de la TableC
- SousFormC, le contrôle sous-formulaire de la TableC
- ListeC, le contrôle zone de liste
1) place dans le formulaire B le sous-formulaire C pour pouvoir consulter
les enregistrements de C.
2) crée une liste dans formulaire B dont la requête source est :
SELECT * FROM TableC WHERE ChampB=0; (si le champB est numérique , ="" si
c'est du texte..)
3) Choisis "Procédure événementielle" pour l'événement Sur double Clique de
la liste LISTEC puis Clique sur le bouton ... (à droite) et tu écris ce code
Private Sub ListeC_DblClick(Cancel as Integer)
'Si l'enregistrement TableB n' a pas été créé alors Ne rien faire
IF ISNULL([ChampB]) THEN CANCEL=1:EXIT SUB
'Mis à jour du champB de l'enregistrement de la TableC choisis lors du
DblClique
DOCMD.RUNSQL "UPDATE TableC SET ChampB=" & [ChampB] & " WHERE [CleC]=" &
ListeC.Value
'Rafraichissement de sous-formulaire C; pour voir le nouvel enregistrement
dans la liste
SOUSFORMC.FORM.REQUERY
'Rafraichissement de la liste LISTEC pour ne plus voir l'enregistrement de
la TableC mis à jour
LISTEC.REQUERY
End sub
Pour l'exemple j'appelle : - ChampB, le champ commun aux TableB et TableC - CleC, la clé primaire de la TableC - SousFormC, le contrôle sous-formulaire de la TableC - ListeC, le contrôle zone de liste
1) place dans le formulaire B le sous-formulaire C pour pouvoir consulter les enregistrements de C. 2) crée une liste dans formulaire B dont la requête source est : SELECT * FROM TableC WHERE ChampB=0; (si le champB est numérique , ="" si c'est du texte..)
3) Choisis "Procédure événementielle" pour l'événement Sur double Clique de la liste LISTEC puis Clique sur le bouton ... (à droite) et tu écris ce code
Private Sub ListeC_DblClick(Cancel as Integer) 'Si l'enregistrement TableB n' a pas été créé alors Ne rien faire IF ISNULL([ChampB]) THEN CANCEL=1:EXIT SUB 'Mis à jour du champB de l'enregistrement de la TableC choisis lors du DblClique DOCMD.RUNSQL "UPDATE TableC SET ChampB=" & [ChampB] & " WHERE [CleC]=" & ListeC.Value 'Rafraichissement de sous-formulaire C; pour voir le nouvel enregistrement dans la liste SOUSFORMC.FORM.REQUERY 'Rafraichissement de la liste LISTEC pour ne plus voir l'enregistrement de la TableC mis à jour LISTEC.REQUERY End sub