Sql&vb6

Résolu
ingstat Messages postés 49 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 10 septembre 2008 - 27 août 2008 à 08:07
JPGVB Messages postés 96 Date d'inscription mardi 29 mars 2005 Statut Membre Dernière intervention 10 mars 2011 - 27 août 2008 à 13:52
Bonjour,
J'ai un problemme dans l'affichage des résultats d'une requêtte SQL dans un controle DataGrid sur VB6.. 
j'ai implimenter ce code mais on m'affiche("variable non définie"),pour la datagrid1.
   Private Sub Command6_Click()
   Dim d As String
   Dim f As String
   d = InputBox("Entrer la première date", "Nombre d'affaires Executées")
   f = InputBox("Entrer la deuxième date", "Nombre d'affaires Executées")
   Dim rst As New ADODB.Recordset
   If rst.State = adStateOpen Then rst.Close
   rst.Open " T1", db, adOpenDynamic, adLockOptimistic
   Dim sql As String
   Dim rst1 As New Recordset
   sql = "Select* From T1 where Numero Affaire between d and f"
   If rst1.State = adStateOpen Then rst1.Close
   rst1.Open sql, db, adOpenDynamic, adLockOptimistic
   Set dataGrid1.DataSource = rst1
   End Sub
Merci de me repondre

11 réponses

ingstat Messages postés 49 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 10 septembre 2008
27 août 2008 à 12:19
le champ Numero affaire est de type date/heure
je veux que l'utilisateur entre deux dates d et f.
Je vais afficher,par suite,tout les Numero Affaires entre les deux dates d et f.
3
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
27 août 2008 à 09:06
L'as-tu seulement placée sur ton form ?
_________________________________________________________________________
VB.NETis good ...VB6is better<
0
ingstat Messages postés 49 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 10 septembre 2008
27 août 2008 à 09:15
Oui
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
27 août 2008 à 10:05
sql = "Select * From T1 where Numero Affaire between " & d & " and " & f & ";"


_________________________________________________________________________


VB.NET
is good ...
VB6
is better<
0

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

Posez votre question
ingstat Messages postés 49 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 10 septembre 2008
27 août 2008 à 10:35
Desolé ghuysmans99,
je suis encore debutant en vb6
j'ai pas placé le controle datagrid sur form,je le trouve pas dans ma boite aà outils et je connait pas le composant qui permet de le faire!
merci de me l'indiquer
desilé encore une fois,mes questions sont tres cucus!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0
JPGVB Messages postés 96 Date d'inscription mardi 29 mars 2005 Statut Membre Dernière intervention 10 mars 2011 2
27 août 2008 à 11:09
Bonjour,
quelques remarques pour t'orienter:
si un nom de champ contient des espaces il faut la mettre des crochets : 
      [Numero Affaire ]

à priori, vu les inputbox d et f seraient plutot des dates, dans les requetes il doit faloir les mettre entre #. Si tu travailles sous access, il faut utiliser le format date américain.

mets un espace entre SELECT et *



sauf utilisation ailleurs, il ne me semnble pas utile d'ouvrir rst; tu peux requeter rst1 directement.
ta chaine sql pourrait ressembler à qqchose de ce genre:


sql = "Select * From T1 where [Numero Affaire] between " & d & " and " & f & ";"

ou d="#01/01/2007#"
et f="#12/31/2007#" (dans le cas d'access)
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
27 août 2008 à 11:11
Clic-droit sur la boite à outils => Composants.

Coche (comme dans l'image) MS Datagrid ... => Clique sur "Appliquer", ensuite sur "OK"
_________________________________________________________________________
VB.NETis good ...VB6is better<
0
ingstat Messages postés 49 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 10 septembre 2008
27 août 2008 à 11:19
merci pour l'information,
c'est très gentil
t'es vraiment gentil
0
ingstat Messages postés 49 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 10 septembre 2008
27 août 2008 à 11:42
Merci JPGVB pour l'indication,
mais ca tourne pas, la requette(sql = "Select * From T1 where [Numero Affaire] between & d & " And "& f & ") est selectionner et on m'affiche:"Type incompatible"
desolé si je te dérange mais je sais pas quoi faire
0
JPGVB Messages postés 96 Date d'inscription mardi 29 mars 2005 Statut Membre Dernière intervention 10 mars 2011 2
27 août 2008 à 11:57
Salut, type incompatible, ça veut dire que le type que tu recherche une date dans un champ contenant des nombres ou du texte ...


Dans ta base de données, quel est le type du champ [Numero Affaire]  ? date, nombre? ...
et quelle 'valeur' veux-tu affecter à d et f par exemple?
0
JPGVB Messages postés 96 Date d'inscription mardi 29 mars 2005 Statut Membre Dernière intervention 10 mars 2011 2
27 août 2008 à 13:52
avant
rst1.Open sql, db, adOpenDynamic, adLockOptimistic

ajoute le code suivant:
clipboard.clear
clipboard.settext sql

ensuite fais coller pour nous montrer le contenu de ta chaine.
Précise sur quelle base de données tu travailles (access ?)
0
Rejoignez-nous