Bonjour à tous,
Alors voilà, j'ai développé une base de données sous Access 2003 et tout ce qui concerne la saisie et la gestion des données est à peu près fini.
Mais à présent, on m'a demandé de pouvoir les interroger et réaliser des statistiques.
Les utilisateurs de la base n'y connaissent rien en SQL, il faut donc une interface de requêtage la plus friendly possible...
Quant à moi, je suis débutante donc je ne maitrise pas bien toutes les fonctionnalités et les astuces d'Access ...
Vu ma faible expertise, je ne sais pas si mes idées sont réalisables ou si j'ai juste fait des fautes mineures ... Pouvez vous me dire ce que vous en pensez ? Si vous voyez que ca va pas du tout, Y aurait-il une autre manière d'aborder le problème ?.. une sorte de méthode classique pour créer un tel "requeteur" ? (ce qui serait génial !!!!)
J'ai eu plusieurs idées :
Idee 1
Sur une interface :
1. Dans une partie "Sélection des critère à lister" :
Des etiquettes cliquable avec récuperation du nom du champ à lister.
ex Identifiant.
Après clic strChampALister = "[Id]" et strTable = "[TableIdentifiant]"
2. Dans une partie "Sélection des critère à interroger ":
Des étiquettes cliquables récuperant le nom du champ à interroger .
ex Superficie. Après clic strChamp1 = "[Superficie]"
3. On récupere la valeur tester dans une etiquette intSuperficie, on fabrique la condition de selection dans le même évenement : strWhere = "strChamp1 = ' " & intSuperficie " ' "
4. Sur un bouton lancer la requete :
On lance cette requete par un docmd.RunSQL strSQL
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 strSQL = "select '" & strChampALister & "'" vbcrlf_ "FROM " & strTable & vbCrLf & _ "WHERE " & strWhere
Et là j'apprend par la force des choses que docmd.RunSQL ne fonctionne pas avec la commande Select ... donc ca ne marche pas ...
Idee 2
1. Création d'une table TableARequeter (ChampLister, Champ1, TableInterro)
2. A l'aide des même étiquette que dans l'idée 1 récupération des champs et des tables qui nous interressent dans des variables et que l'on va mettre dans la TableARequeter
3.Clic sur lancer la requete :
Requete Update sur la TableARequeter avec les valeurs de variable ChampLister : [Id]; TableInterro = [TableIdentifiant]
Requete SQL de selection en requete :
Lancer la selection à l'aide d'un Docmd.OpenQuery
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT [TableARequeter.ChampLister] AS Expr1 FROM TableARequeter.TableInterro IN 'C:\Documents and Settings\dr\Bureau\TestRequete.mdb';
Mais bien sur ca ne marche pas vu que mon nom de table est stocké dans un champs d'une table (Msgbox : il ne trouve pas la table TableARequeter)
Est-il possible de recuperer le nom de table stocké dans le champs et qu'il le prenne comme la table à interroger ?
Merci d'avance !
Julie
Partager