Ma question aujourd'hui est apparement tr=E8s complexe!!!!
Je m'explique en simplifiant:
- J'ai une table "REFERENCE" avec 2 champs: H1 et H2.=20
Cette table comporte un seul enregistrement. H1 ne peut=20
avoir comme valeur que 1 ou 2 et H2 ne peut avoir comme=20
valeur que A, B ou C
- J'ai une deuxi=E8me table "SOURCE" avec 5 champs: C1, C2,=20
C3, C4 et C5
- J'ai 6 autres tables: T1, T2, T3, T4 et T5, avec=20
chacune 5 champs identiques =E0 ceux de la table "SOURCE"
- J'ai trois requ=EAtes Ajout R1, R2, R3, R4 et R5. Elles=20
permettent respectivement d'alimenter les tables T1, T2,=20
T3, T4 et T5 =E0 partir de la table "SOURCE"
Mon objectif: Avoir un bouton dans un formulaire qui:
* Lire les 2 valeur de l'enregistrement de la=20
table "REFERENCE" (H1 et H2) (on a dit qu'il n'y a qu'un=20
seul enregistrement), et en fonction de ces deux valeurs,=20
ex=E9cute la requ=EAte ajout correspondante:
Si: =20
H1 H2 Alors
1 A R1
1 B R2=20
1 C R3=20
2 A R4
2 B R5
2 C R6
Dim db As Database Dim Frd as Recordset Dim CodeAction As String
Set db = CurrentDB Set Frd = db.OpenRecordset("SELECT * FROM REFERENCE", DbOpenSnapShot)
CodeAction = Frd("H1") & Frd("H2")
Select Case CodeAction Case "1A" DoCmd.RunSQL "R1"
Case "1B" DoCmd.RunSQL "R2"
etc... End Select
Frd.Close Set Frd = Nothing Set db = Nothing
Ca Aide? Cordialement. Xavier.
PS: Enlever blug de mon adresse mail.
Daniel Carollo
Bonjour Atmus!
Il y a plusieurs solutions, toutes passent par VBA pusiqu'il n'est pas possible d'affecter les noms des tables ou requetes a des variables dans la syntaxe SQL de Jet.
La solution la plus evidente consiste a peupler un recordset avec les valeurs de la table REFERENCE. Un jeu de select case, suivis de l'execution de la requete "quivabien".
Pour faire un peu plus malin, je verrais bien la creation d'une table supplementaire, avec trois colonnes qui reflete le tableau que vous nous donnez a la fin de votre message. Cela permettra d'avoir les noms des requetes "en clair" dans un endroit ou on peut faire la maintenance assez facilement, et d'en ajouter/retirer dans le futur sans a avoir a toucher au code.
Il suffit alors de faire une requete qui joint la table REFERENCE et cette nouvelle table. Le recordset, ou meme un bete DLookup, suivant votre humeur, va donc vous donner le nom de la requete a effectuer. Un SQLRun suffira a terminer le travail.
Je me pose toutefois la question de savoir si tout ce travail est bien justifie. Quand je vois qu'il y a sept tables identiques, je me demande si l'etude de la structure est bien saine...
A bientot.
Daniel :-)
Computing Technologies International - www.computing-tech.com We provide solutions... P.S. Je suis maintenant disponible pour contrats à courte et moyenne durée. Envoyer un courrier a: d a n i e l c @ c o m p u t i n g - t e c h . c o m
"atmus" wrote in message news:008601c34d4b$f54dfa00$ Bonsoir tout le monde,
Ma question aujourd'hui est apparement très complexe!!!!
Je m'explique en simplifiant: - J'ai une table "REFERENCE" avec 2 champs: H1 et H2. Cette table comporte un seul enregistrement. H1 ne peut avoir comme valeur que 1 ou 2 et H2 ne peut avoir comme valeur que A, B ou C - J'ai une deuxième table "SOURCE" avec 5 champs: C1, C2, C3, C4 et C5 - J'ai 6 autres tables: T1, T2, T3, T4 et T5, avec chacune 5 champs identiques à ceux de la table "SOURCE" - J'ai trois requêtes Ajout R1, R2, R3, R4 et R5. Elles permettent respectivement d'alimenter les tables T1, T2, T3, T4 et T5 à partir de la table "SOURCE"
Mon objectif: Avoir un bouton dans un formulaire qui: * Lire les 2 valeur de l'enregistrement de la table "REFERENCE" (H1 et H2) (on a dit qu'il n'y a qu'un seul enregistrement), et en fonction de ces deux valeurs, exécute la requête ajout correspondante:
Si: H1 H2 Alors 1 A R1 1 B R2 1 C R3 2 A R4 2 B R5 2 C R6
C'est un peu complexe!!!!
Avez vous une issue, une solution géniale?!!!
Merci de m'aider
Bonjour Atmus!
Il y a plusieurs solutions, toutes passent par VBA pusiqu'il n'est pas
possible d'affecter les noms des tables ou requetes a des variables dans la
syntaxe SQL de Jet.
La solution la plus evidente consiste a peupler un recordset avec les
valeurs de la table REFERENCE. Un jeu de select case, suivis de l'execution
de la requete "quivabien".
Pour faire un peu plus malin, je verrais bien la creation d'une table
supplementaire, avec trois colonnes qui reflete le tableau que vous nous
donnez a la fin de votre message. Cela permettra d'avoir les noms des
requetes "en clair" dans un endroit ou on peut faire la maintenance assez
facilement, et d'en ajouter/retirer dans le futur sans a avoir a toucher au
code.
Il suffit alors de faire une requete qui joint la table REFERENCE et cette
nouvelle table. Le recordset, ou meme un bete DLookup, suivant votre humeur,
va donc vous donner le nom de la requete a effectuer. Un SQLRun suffira a
terminer le travail.
Je me pose toutefois la question de savoir si tout ce travail est bien
justifie. Quand je vois qu'il y a sept tables identiques, je me demande si
l'etude de la structure est bien saine...
A bientot.
Daniel :-)
Computing Technologies International - www.computing-tech.com
We provide solutions...
P.S. Je suis maintenant disponible pour contrats à courte et moyenne durée.
Envoyer un courrier a: d a n i e l c @ c o m p u t i n g - t e c h . c o
m
"atmus" <atmus@no> wrote in message
news:008601c34d4b$f54dfa00$a401280a@phx.gbl...
Bonsoir tout le monde,
Ma question aujourd'hui est apparement très complexe!!!!
Je m'explique en simplifiant:
- J'ai une table "REFERENCE" avec 2 champs: H1 et H2.
Cette table comporte un seul enregistrement. H1 ne peut
avoir comme valeur que 1 ou 2 et H2 ne peut avoir comme
valeur que A, B ou C
- J'ai une deuxième table "SOURCE" avec 5 champs: C1, C2,
C3, C4 et C5
- J'ai 6 autres tables: T1, T2, T3, T4 et T5, avec
chacune 5 champs identiques à ceux de la table "SOURCE"
- J'ai trois requêtes Ajout R1, R2, R3, R4 et R5. Elles
permettent respectivement d'alimenter les tables T1, T2,
T3, T4 et T5 à partir de la table "SOURCE"
Mon objectif: Avoir un bouton dans un formulaire qui:
* Lire les 2 valeur de l'enregistrement de la
table "REFERENCE" (H1 et H2) (on a dit qu'il n'y a qu'un
seul enregistrement), et en fonction de ces deux valeurs,
exécute la requête ajout correspondante:
Si:
H1 H2 Alors
1 A R1
1 B R2
1 C R3
2 A R4
2 B R5
2 C R6
Il y a plusieurs solutions, toutes passent par VBA pusiqu'il n'est pas possible d'affecter les noms des tables ou requetes a des variables dans la syntaxe SQL de Jet.
La solution la plus evidente consiste a peupler un recordset avec les valeurs de la table REFERENCE. Un jeu de select case, suivis de l'execution de la requete "quivabien".
Pour faire un peu plus malin, je verrais bien la creation d'une table supplementaire, avec trois colonnes qui reflete le tableau que vous nous donnez a la fin de votre message. Cela permettra d'avoir les noms des requetes "en clair" dans un endroit ou on peut faire la maintenance assez facilement, et d'en ajouter/retirer dans le futur sans a avoir a toucher au code.
Il suffit alors de faire une requete qui joint la table REFERENCE et cette nouvelle table. Le recordset, ou meme un bete DLookup, suivant votre humeur, va donc vous donner le nom de la requete a effectuer. Un SQLRun suffira a terminer le travail.
Je me pose toutefois la question de savoir si tout ce travail est bien justifie. Quand je vois qu'il y a sept tables identiques, je me demande si l'etude de la structure est bien saine...
A bientot.
Daniel :-)
Computing Technologies International - www.computing-tech.com We provide solutions... P.S. Je suis maintenant disponible pour contrats à courte et moyenne durée. Envoyer un courrier a: d a n i e l c @ c o m p u t i n g - t e c h . c o m
"atmus" wrote in message news:008601c34d4b$f54dfa00$ Bonsoir tout le monde,
Ma question aujourd'hui est apparement très complexe!!!!
Je m'explique en simplifiant: - J'ai une table "REFERENCE" avec 2 champs: H1 et H2. Cette table comporte un seul enregistrement. H1 ne peut avoir comme valeur que 1 ou 2 et H2 ne peut avoir comme valeur que A, B ou C - J'ai une deuxième table "SOURCE" avec 5 champs: C1, C2, C3, C4 et C5 - J'ai 6 autres tables: T1, T2, T3, T4 et T5, avec chacune 5 champs identiques à ceux de la table "SOURCE" - J'ai trois requêtes Ajout R1, R2, R3, R4 et R5. Elles permettent respectivement d'alimenter les tables T1, T2, T3, T4 et T5 à partir de la table "SOURCE"
Mon objectif: Avoir un bouton dans un formulaire qui: * Lire les 2 valeur de l'enregistrement de la table "REFERENCE" (H1 et H2) (on a dit qu'il n'y a qu'un seul enregistrement), et en fonction de ces deux valeurs, exécute la requête ajout correspondante:
Si: H1 H2 Alors 1 A R1 1 B R2 1 C R3 2 A R4 2 B R5 2 C R6