déterminer en vba la table utilisée par une requete access
bonjour,
Je suis novice-bricoleur en vba et vba access (access et excel 2000).
Je voudrais appliquer une même requête à plusieurs tables qui ont les mêmes rubriques, en choisissant la table d'origine (et le nom de la table de sortie) avec une input box
Je tourne en rond.
Passer par le lancement d'une requete ne semble pas la bonne voie car il n'existe pas de table enregistrée au nom de ma variable.
Solution entrevue : copier la table à traiter avec un nom enregistré dans la requête, puis détruire cette copie. Mais ça me semble lourd.
Le forum pourrait-il m'indiquer une piste plus élégante et ... à ma portée?
Cordialement
===================
1-Je définis avec une inputbox le nom de la table que je vais traiter avec la requete. Ce nom est "myvalue1"
Même chose pour le nom de la table que je souhaite créer :"myvalue2"
Je lance une requete action "essai_vba2"
2-Comment présenter le code pour pouvoir choisr le nom des tables utilisées dans la requête ?
a-Voici la présentation sql de la requete d'origine
Code:
1 2 3
|
SELECT Listing_Détail_Asso.COMPTE, Listing_Détail_Asso.NOM, Listing_Détail_Asso.[DATE OUVERTURE], Listing_Détail_Asso.[ACTIVITE MOIS], Listing_Détail_Asso.[IDENTIFIANT TIERS], IIf([Listing_Détail_Asso]![ACTIVITE MOIS]="ACTIF 40 K EUR","1_actif 40 k","0_inactif") AS segment, +[Listing_Détail_Asso]![NB TOUTES CARTES]+[Listing_Détail_Asso]![CONVENTION] AS total INTO essai2
FROM Listing_Détail_Asso; |
b-Dans la requête cible, j'ai remplacé le nom de la table d'origine "Listing_Détail_Asso" par "myvalue1".
Cela ne fonctionne pas car lil n'existe pas de table myvalue1.
Code:
1 2 3
|
SELECT myvalue1.COMPTE, myvalue1.NOM, myvalue1.[DATE OUVERTURE], myvalue1.[ACTIVITE MOIS], myvalue1.[IDENTIFIANT TIERS], IIf(myvalue1![ACTIVITE MOIS]="ACTIF 40 K EUR","1_actif 40 k","0_inactif") AS segment, +myvalue1![NB TOUTES CARTES]+myvalue1!CONVENTION AS total INTO myvalue2
FROM myvalue1; |
c-Voici le code de la fonctionVBA access
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
Option Compare Database
'------------------------------------------------------------
' essai_vba2
'
'------------------------------------------------------------
Function essai_vba2()
Dim Message, Title, Default, MyValue1, myvalue2
On Error GoTo essai_vba2_Err
' Définit le message.
Message = "Entrez le nom du fichir d'entrée"
Title = "Démonstration de InputBox" ' Définit le titre.
Default = "1" ' Définition la valeur par défaut.
' Affiche le message, le titre et la valeur par défaut.
MyValue1 = InputBox(Message, Title, Default)
Message = "Entrez le nom du fichir de sortie"
Title = "Démonstration de InputBox" ' Définit le titre.
Default = "1" ' Définition la valeur par défaut.
' Affiche le message, le titre et la valeur par défaut.
myvalue2 = InputBox(Message, Title, Default)
DoCmd.OpenQuery "essai_vba2", acViewNormal, acEdit
essai_vba2_Exit:
Exit Function
essai_vba2_Err:
MsgBox Error$
Resume essai_vba2_Exit
End Function |
déterminer en vba la table utilisée par une requete access