Requête dans une base de données Access 2003

pepito125 Messages postés 3 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 10 septembre 2007 - 10 sept. 2007 à 23:39
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 - 15 févr. 2008 à 19:14
Salut à tous!
                    Je suis entrain de réaliser un petit programme en VB 2005 express qui gère les données contenues dans une base access 2003. Les requêtes fonctionnent sur Access avec ou sans paramètres. Mais lorsque je fais la connection à la base sous VB 2005, celles qui n'ont pas de paramères fonctionnent, alors que celles qui ont des paramètres n'apparaissent même pas dans la fenêtre "vues" du VB 2005. En fait, j'aimerais pouvoir executer une requête qui demande à l'utilisateur d'entrer un texte, dans une boite de texte, comme argument ou variable de la requête.

Je suis un débutant en VBA, votre aide m'est vraiment précieuse.

12 réponses

cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
11 sept. 2007 à 01:29
Salut,


Qu'est-ce que vous voulez dire par paramètre ? Une requête qui contient une condition paramètrée ?


Dans ce cas voici un exemple :

on veut sélectionner la liste des personnes

dont l'age est supérieur à 20 ans :


Requete = "select * from Personnes where Age > " & txtAge.Text

où txtAge est un TextBox destinée à accueillir le "paramètre" age..

Vous pouvez faire autre chose :
Param = InputBox("Entrez l'âge :")
Requete = "select * from Personnes where Age > " & Param

Voyez-vous ce que je veux dire..


Bon, ce n'est qu'un exemple très simple, il y a des centaines de sources dans ce site qui devront vous éclairer plus les choses..


Cordialement..
0
miniheli Messages postés 18 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 30 juillet 2009
28 nov. 2007 à 21:35
Hello,

je reviens sur ce sujet interressant,

comment fais-tu si l'utilisateur doit taper du texte ?

Doit-il sytématiquement saisir les ' à la fin et au début de sa chaîne de caractères ?

Ou y-a-t'il une solution à intégrer au code ?

Guillaume
0
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
28 nov. 2007 à 22:34
Salut,

si tu expliques d'avantage ce que tu désires faire..

"comment fais-tu si l'utilisateur doit taper du texte ?" : tu veux dire remplir des champs de données ? ou bien entrer dynamiquement des requêtes SQL ?

ma ville
Boissons gratuit
0
miniheli Messages postés 18 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 30 juillet 2009
28 nov. 2007 à 22:50
Hello,

je parle de remplir le champs du InputBox lors de l'utilisation de l'appli.

Comment faire dans le code pour ne pas obliger la personne à saisir les   '   autour du texte : 

Comment faire pour pouvoir taper   CHAT   au lieu de   'CHAT' 

Je suis en train de bosser dessus, j'ai aussi un problème avec mon ORDER BY qui me gêne...

Voici mon code pour l'insant :

Private

Sub AnalyseImpact1_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.LoadConnexion =

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source" & _
" C:\\Adfs\dfs\Partage\Data Manager\ARTICLES\Articles.mdb"ConnexionOLE.ConnectionString Connexion

da =

New OleDbDataAdapter(
"SELECT DISTINCT ARTICLE.ART_CODE AS [Code Article Fils] " & _

" , ARTICLE.ART_INTITULE AS [Intitulé Article Fils], ARTICLE_1.ART_CODE AS [Code Article Père 1], " & _

" ARTICLE_1.ART_INTITULE AS [Intitulé Article Père 1] FROM ((((MAP_ARTICLE_GAMME RIGHT OUTER JOIN " & _

" HISTORIQUE_NOMENCLATURE ON MAP_ARTICLE_GAMME.MAG_NUMERO_GAMME = " & _

" HISTORIQUE_NOMENCLATURE.HN_NUMERO_GAMME AND MAP_ARTICLE_GAMME.MAG_NUMERO_ARTICLE " & _

" = HISTORIQUE_NOMENCLATURE.HN_NUMERO_ARTICLE) RIGHT OUTER JOIN NOMENCLATURE_GAMME ON " & _

" HISTORIQUE_NOMENCLATURE.HN_NUMERO_GAMME = NOMENCLATURE_GAMME.NO_NUMERO_GAMME AND " & _

" HISTORIQUE_NOMENCLATURE.HN_NUMERO_ARTICLE = NOMENCLATURE_GAMME.NO_NUMERO_ARTICLE_PERE AND " & _

" HISTORIQUE_NOMENCLATURE.HN_NUMERO = NOMENCLATURE_GAMME.NO_NUMERO_HISTO) RIGHT OUTER JOIN " & _

" ARTICLE ON NOMENCLATURE_GAMME.NO_NUMERO_ARTICLE_FILS = ARTICLE.ART_NUMERO) LEFT OUTER JOIN " & _

" ARTICLE ARTICLE_1 ON MAP_ARTICLE_GAMME.MAG_NUMERO_ARTICLE = ARTICLE_1.ART_NUMERO) " & _

" WHERE (HISTORIQUE_NOMENCLATURE.HN_ACTIF = 1) AND (HISTORIQUE_NOMENCLATURE.HN_DATE_DESACTIVATION " & _
" #1/1/1900#) AND (MAP_ARTICLE_GAMME.MAG_DATE_DESACTIVATION #1/1/1900#) AND " & _

" (NOT (ARTICLE_1.ART_CODE LIKE ARTICLE.ART_CODE)) AND (ARTICLE.ART_CODE = 'C010095') " & _

" ORDER BY ARTICLE.ART_CODE, ARTICLE_1.ART_CODE", ConnexionOLE)ds =

New DataSet()da.Fill(ds,

"mytable")dv = ds.Tables(

"mytable").DefaultViewDataGridView1.DataSource = dv
dv.AllowEdit TrueDataGridView1.Visible

True
Mon but est de placer après le   ConnexionOLE.ConnectionString = Connexion
   un   Param = InputBox("Entrez le code article :")

Puis à la fin du code SQL un " & Param pour que l'utilisateur puisse choisir le ARTICLE.ART_CODE.

Pour l'instant j'ai mis  C010095 pour tester, mais je voudrais que l'utilisateur puisse tapper C010093, A010125 ou autre dans le InputBox avant d'éxecuter la requête.

Thank's

Guillaume
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
29 nov. 2007 à 08:09
Bonjour

tu n'as pas à obliger l'utilisateur à taper les ' :

exp: 

ma ville
Boissons gratuit
0
miniheli Messages postés 18 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 30 juillet 2009
29 nov. 2007 à 12:16
Guillaume
Data Manager
0
jakyyy Messages postés 4 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 15 février 2008
15 févr. 2008 à 16:31
Bonjour,

j'ai un probleme similaire ,mais qui se produit juste por le type numerique,

si quelqu'un pe m'aider,je donne la portion du programme concernee :



Dim



a

As



Integer

a = 12


strSql "select table1.* from table1 where age'a' "
je me demande ou il y a l'erreur dans cette expression
0
jakyyy Messages postés 4 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 15 février 2008
15 févr. 2008 à 16:31
Bonjour,

j'ai un probleme similaire ,mais qui se produit juste por le type numerique,

si quelqu'un pe m'aider,je donne la portion du programme concernee :



Dim



a

As



Integer

a = 12


strSql "select table1.* from table1 where age'a' "
je me demande ou il y a l'erreur dans cette expression
0
jakyyy Messages postés 4 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 15 février 2008
15 févr. 2008 à 16:31
Bonjour,

j'ai un probleme similaire ,mais qui se produit juste por le type numerique,

si quelqu'un pe m'aider,je donne la portion du programme concernee :



Dim



a

As



Integer

a = 12


strSql "select table1.* from table1 where age'a' "
je me demande ou il y a l'erreur dans cette expression
0
jakyyy Messages postés 4 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 15 février 2008
15 févr. 2008 à 16:45
j'ai essayer l'istruction suivante :
Dim

a
As
Integera = 12
strSql "select table1.* from table1 where age" & a

ca marche

Mais pourqoi la premiere ne marche plus
0
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
15 févr. 2008 à 19:08
Salut,

C'est normal que la première ne marche pas car a n'est pas replacée par sa valeur..
0
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
15 févr. 2008 à 19:14
pour te convaincre plus, exécutes ce code :

dim a as Integer
a = 17
MsgBox "la valeur de a est a "


MsgBox "la valeur de a est " & a


C'est clair ?
0
Rejoignez-nous