IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Créer un requêteur pour l'utilisateur de la base de données


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 55
    Points : 49
    Points
    49
    Par défaut Créer un requêteur pour l'utilisateur de la base de données
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    strSQL = "select '" & strChampALister & "'" vbcrlf_
    "FROM " & strTable & vbCrLf & _
    "WHERE " & strWhere
    On lance cette requete par un docmd.RunSQL strSQL
    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 :
    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';
    Lancer la selection à l'aide d'un Docmd.OpenQuery
    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

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Bonjour,
    En partant de l'idée1 tu peux créer la requête puis l'ouvrir et pourquoi pas proposer de l'enregistrer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     'Créer une nouvelle requête appelée Temp
     Currentdb.CreateQueryDef("Temp",strsql)
     'Ouvre la requête Temp
     DoCmd.OpenQuery "Temp"
     'Attendre la fermeture de la requête 
     Do While CurrentData.AllQueries("Temp").IsLoaded
       DoEvents
     Loop
     'Proposer d'enregistrer la requête Si oui demander un nom Si non supprimer la requête Temp

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 55
    Points : 49
    Points
    49
    Par défaut ça marche !
    Merci beaucoup Ilank!


    En effet, c'etait juste cela qui me manquait , l'idée 1 fonctionne en faisant un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set strSQLObj = CurrentDb.CreateQueryDef("Temp", strSQL)
    Il me reste plus qu'à tout coder !

  4. #4
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonjour.

    Pour info, et même si vous avez trouver votre solution, il peut être intéressant de lire les tutoriels sur les recherches.

    Bonne journée.
    Pierre

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 55
    Points : 49
    Points
    49
    Par défaut
    Bonjour,
    J'ai en effet consulté les tutoriels mais je n'en avais pas trouvés qui traite de ma question...
    Pensez vous à un tutoriel précis ?
    Merci
    Julie

  6. #6
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 55
    Points : 49
    Points
    49
    Par défaut
    Merci Pierre !

    En effet, je pense que ca va bien m'aider.

    Julie

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 04/04/2014, 10h20
  2. créer un utilisateur et une base de données
    Par paco503 dans le forum Débuter
    Réponses: 3
    Dernier message: 06/11/2010, 16h18
  3. utile de créer une table pour chaque utilisateur ?
    Par Overstone dans le forum Langage SQL
    Réponses: 6
    Dernier message: 22/03/2008, 14h37
  4. Quel CMS pour un interface utilisateur d'une base de données
    Par Ytupid dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 10
    Dernier message: 28/01/2008, 21h10
  5. Réponses: 1
    Dernier message: 27/12/2005, 00h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo