Requete SQL en VBA (Access 97)

Chris - 15 juil. 2001 à 22:48
nithdabeille Messages postés 6 Date d'inscription mardi 17 juin 2003 Statut Membre Dernière intervention 11 juin 2004 - 10 juin 2004 à 18:01
Voilà mon cas, j'aimerais récupérer les résultats des requêtes suivantes...

dim sql as string
sql "SELECT nom, prenom FROM Employe WHERE salaire " _
& ef_salaire

Comment récupérer les valeurs de nom et prénom ?

Autre exemple

sql = "SELECT SUM(prix) FROM Ventes WHERE date > " ef_date

Comment récupérer la somme des prix ?

4 réponses

le petit nain jaune
16 juil. 2001 à 17:53
Logiquement sous VBA , tu dois pouvoir utiliser les objets recordset.

Tu dois en définir un qui sera le résultat de ta requète :

Dim bds As Database, rst As Recordset
Dim chSQL As String

' Retourne une référence à la base de données en cours.
Set bds = CurrentDb
chSQL = "SELECT nom, prenom FROM Employe "
Set rst = bds.OpenRecordset(chSQL)

C'est tiré de l'aide tout simplement, tu obtiens un recordset avec deux champs ( nom et prenom ), tu t'en sers comme une table normal. C'est la base en VBA , regarde dans l'aide, c'est très clairement expliqué.

Bonne chance.
0
Malheureusement je n'ai pas trouvé ce que je voulais dans l'aide (je sais, je suis un débutant).

Comment accèder aux valeurs contenues dans le recordset..

est-ce que c'est un truc du style

rst.fields("nom") = ......
0
le petit nain jaune
17 juil. 2001 à 09:43
-------------------------------
Réponse au message :
-------------------------------

Malheureusement je n'ai pas trouvé ce que je voulais dans l'aide (je sais, je suis un débutant).

Comment accèder aux valeurs contenues dans le recordset..

est-ce que c'est un truc du style

rst.fields("nom") = ......

-------------------------------
Tout a fait , voici un petit bout de code pour servir d'exemple :

'je recupère la base courante
Set Base = CurrentDb

'j'ouvre ma table client
Set tb = Base.OpenRecordset("Client")
'je me positionne sur le premier
tb.MoveFirst ' :( génère une erreur si table vide

'affiche un mess avec la valeur du champ nom :
Call MsgBox(tb("NOM"))

En résumé deux moyens rapides pour accéder à la valeur de ton champs :
- MaTable("MonChamp")
- MaTable!MonChamp

et voila !!

Bonne chance !

--
Le petit nain jaune. :approve)
0
nithdabeille Messages postés 6 Date d'inscription mardi 17 juin 2003 Statut Membre Dernière intervention 11 juin 2004
10 juin 2004 à 18:01
je comprend pas:il m'affiche une erreur disant qu'ily'a incompatibilité de type!
voici mon code:

Private Sub Commande73_Click()
Dim numor, numdest As Integer
Dim rst As Recordset
Dim sql As String
numor = Me.CboOr.Value
numdest = Me.CboDest.Value

sql = "SELECT numplace FROM place WHERE Idpaqbt=" & numor & ""
Set rst = Application.CurrentDb.OpenRecordset(sql, dbOpenDynaset)

If rst.EOF = False Then
MsgBox (rst!numplace)
End If
rst.Close
End Sub

merçi d'avance!!!!
0
Rejoignez-nous