Aide requete sql sous access [Programme en vb

floran -  
 Victor -
Bonjours,
Voila je developpe actuellement un Facturier pour une entreprise sous vb avec une base de données Access.
J'ai une table client, et une table facture.

En faite ce que je souhaiterais faire c'est :
- dans mon programme j'ai une datalist qui affiche tout les clients repertorié dans ma base de données, et je voudrais que en cliquant sur l'un de ces clients toutes les factures qui lui sont liées soit mise dans une autre datalist.

Pour cela j'ai besoin d'une requete sql j'avais commencé a faire ceci :
 SELECT Document.Id_docuement, Document.Date
FROM Document, Client
WHERE ????? (c'est ici que je doit metre le client selectionné)
AND Client.Id_Client = Document.Id_Document


Voila donc l'endroit ou je seche c'est pour dire en sql que je ne veux QUE le client qui a été selectionner dans ma datalist sous vb.

Je suis totalement bloqué donc si quelqu'un pouvait m'aider.
Merci.

13 réponses

  1. blux Messages postés 5036 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Salut,

    Je supose que tu stockes ta requête dans une chaine pour l'exécuter.

    Il faut donc la compléter avec le choix du client :

    Str = "SELECT .... FROM ..."
    Str = Str + "WHERE Id_Client = " madatalist.value " "
    Str = Str + "AND .... ;"
    2
  2. floran
     
    J'essai mais qd je fais :

    Dim str as string

    Str = "SELECT Document.Date FROM Document, Client"
    Str = Str + "WHERE Document.Id_Client = " datalist1.selecteditem " "
    Str = Str + "AND Client.Id_client = Document.Id_client ;"

    j'ai une erreur de compilation avec datalist1 surligné
    0
  3. blux Messages postés 5036 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Tu peux afficher le contenu de datalist.selecteditem ?

    Ca ne serait pas un truc avec sélection multiple ?
    0
  4. florna
     
    Bon voila ce que j'ia reussi a faire, normalement je pense que ca devrait marcher.

    str = "SELECT Document.Date FROM Document, CLient WHERE Client.Nom = " + txtNom.text + " AND Document.Id_client = Client.Id client"

    Set bd = OpenDatabase(".\bd1.mdb")
    Set tbl = bd.OpenRecordset(str)
    While Not tbl.EOF
    List1.AddItem tbl.Fields("Date")
    tbl.MoveNext
    Wend
    tbl.Close

    mais j'ai un autre probleme qd je lance mon programme j'ai un message d'erreur : " erreur 3343 format de base de données non reconnu"
    Je ne sais pas quoi faire .....
    0
    1. blux Messages postés 5036 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      Faudrait pas mettre le type de databse dans OPENDATABASE ?

      Sinon, comment peut-il savoir que c'est ACCESS ?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. floran
     
    Oui c'est une datalist avec tout les client dedans, donc plusieur selection possible.
    Mais j'ai essayer en passant par une textbox dans laquel je renvoie le nom pour voir si ca maché cf le post du dessus, mais maintenant autre probleme.

    Merci pour ton aide Blux.
    0
  7. floran
     
    Comment est ce que je peut mettre le type de Database dans OPENDATABSE ?
    0
  8. blux Messages postés 5036 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Tu es sous VB ou VBA pour ACCESS ?

    Car sous ACCESS, il peut être fait référence à la base courante avec le mot-clé CurrentDb.

    Dim MaTable As RecordSet
    Set MaTable = CurrentDb.OpenRecordSet("MaTable")
    0
  9. floran
     
    Variable non définie pour le CurrentDb
    0
  10. floran
     
    Voila exactemen mon code :

    Dim str As String
    Dim bd As Database
    Dim tbl As Recordset

    str = "SELECT Document.Date FROM Document, CLient WHERE Client.Nom = " + txtNom.text + " AND Document.Id_client = Client.Id client"

    Set bd = OpenDatabase(".\bd1.mdb")
    Set tbl = bd.OpenRecordset(str)
    While Not tbl.EOF
    List1.AddItem tbl.Fields("Date")
    tbl.MoveNext
    Wend
    tbl.Close
    0
  11. phile Messages postés 1 Statut Membre
     
    comment programmer en vb dans access?
    j'ai deja creéé les tables et formulaires et je ne sais comment continué
    0
    1. blux Messages postés 5036 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      Salut,

      tout dépend ce que tu souhaites faire...

      Va faire un tour ici (mais plein d'autres sites existent) :

      http://www.info-3000.com/access/index.php

      et reviens quand tu auras des soucis !
      0
  12. Victor
     
    Bonjour je suis sur le même problème que Floran au début du post mais quelque peu différent tout de même.

    voila ma requête :

    SELECT User.applicatif, User.rubrique, User.utilisateur
    FROM User
    GROUP BY User.applicatif, User.rubrique, User.utilisateur
    ORDER BY User.applicatif, User.rubrique,
    WHERE User.utilisateur = "list1.value";

    ou liste1 est une liste déroulante avec toutes les valeurs des enregistrements, l'utilisateur sélectionne l'enregistrement désiré pour avoir toutes les données des 2 autres champs relatifs a se dernier.
    Ici, j'ai une erreur qui me dit :

    "Erreur de syntaxe (opérateur absent) dans l'expression WHERE User.utilisateur = "list1.value";"

    je ne comprends pas pourquoi puisque le = fait ici office d'opérateur et de critère.
    merci beaucoup d'avance pour votre aide. : )
    Victor
    0
  13. blux Messages postés 5036 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Je ne connais pas VB, mais il faut lui indiquer quelque part que c'est une base ACCESS...

    Soit avec un Dim bd As DAO.database, soit à l'opendatabase

    Dans ACCESS, c'est un paramètre (connect) de opendatabase :

    L'argument connect est composé de deux parties : le type de base de données, suivi d'un point-virgule (;) et les arguments facultatifs. Vous devez commencer par fournir le type de base de données, tel que "ODBC;" ou "Excel 5.0;". Les arguments facultatifs sont placés à la suite du type dans l'ordre que vous voulez. Vous pouvez, par exemple, indiquer le mot de passe (s'il a été défini). Exemple :

    "Excel 5.0; pwd=mypassword"

    Ou sinon, tu peux essayer d'utiliser un type de données ODBC, que tu auras créé avant dans le panneau de config...

    Regarde l'aide de opendatabase en VB, tu y trouveras sûrement ton bonheur...
    -1