Téléchargement
illégal
Posez votre question Signaler

Aide requete sql sous access [Programme en vb

floran - Dernière réponse le 7 août 2007 à 11:04
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.
Lire la suite 

Aide requete sql sous access [Programme en vb »

Suggestions
15 réponses
Réponse
+2
moins plus
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 .... ;"
Ajouter un commentaire
Réponse
+0
moins plus
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é
Ajouter un commentaire
Réponse
+0
moins plus
Tu peux afficher le contenu de datalist.selecteditem ?

Ca ne serait pas un truc avec sélection multiple ?
Ajouter un commentaire
Réponse
+0
moins plus
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 .....
blux- 8 juin 2006 à 15:44
Faudrait pas mettre le type de databse dans OPENDATABASE ?

Sinon, comment peut-il savoir que c'est ACCESS ?
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
Comment est ce que je peut mettre le type de Database dans OPENDATABSE ?
Ajouter un commentaire
Réponse
+0
moins plus
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")
Ajouter un commentaire
Réponse
+0
moins plus
Je suis sous Vb6
Ajouter un commentaire
Réponse
+0
moins plus
Variable non définie pour le CurrentDb
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
comment programmer en vb dans access?
j'ai deja creéé les tables et formulaires et je ne sais comment continué
blux- 25 sept. 2006 à 08:50
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 !
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
-1
moins plus
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...
Ajouter un commentaire
Ce document intitulé « Aide requete sql sous access [Programme en vb » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?