Comment insérer la somme d'une requête SQL dans une variable VB????

neokeel Messages postés 4 Date d'inscription jeudi 18 juillet 2002 Statut Membre Dernière intervention 23 juillet 2002 - 22 juil. 2002 à 19:39
neokeel Messages postés 4 Date d'inscription jeudi 18 juillet 2002 Statut Membre Dernière intervention 23 juillet 2002 - 23 juil. 2002 à 10:29
J'ai beau chercher sur tout le site je trouve jamais de réponse à mon problème! Mauvaises recherches peut-être? Quoi qu'il en soit , quelqu'un pourrait il m'aider à trouver une solution au problème 'Comment insérer la somme d'une requête SQL dans une variable VB????'.
Voici le morceau de mon code qui me pose problème:

Dim cncon As New ADODB.Connection
Dim rscompte As New ADODB.Recordset
Dim solde as Variant

Private Sub Form_Load()
cncon.ConnectionString = "provider= Microsoft.jet.OLEDB.3.51; data source=..\compte\banque.mdb"
cncon.Open
End Sub

Private sub Calcul ()
solde = rscompte.Open "select sum(somme) from crédit", cncon, adOpenDynamic, adLockOptimistic
End sub

-----------------------------------------------------------
Donc là ça ne marche pas et si quelqu'un a une solution à mon problème je le remercie d'avance.
Merci

Neokeel

2 réponses

stefsoft Messages postés 119 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 28 novembre 2008
23 juil. 2002 à 09:23
En fait tu n'es pas trop loin de la vérité ...
dans ta requête, il faut nommé la somme avec un alias:
"SELECT SUM(somme) as total FROM crédit"
en suite tu peux récupérer la champ 'total'
cela donne çà dans ton code

Private Sub Calcul()
dim sRequete as string
sRequete="SELECT SUM(somme) as total FROM crédit"
rscompte.Open sRequete,cncon, adOpenStatic, adLockReadOnly 'tu as juste besoin de lire
solde=rscompte!total 'recupération du total
End Sub

-------------------------------------------
Juste un petit conseil, la déclaration d'une connexion ou d'un recorset de la façon Dim ... as New ...
c'est pas très recommandé (sur si tu veux un jour passer à Vb Net)
et évite les accens dans les champs et les noms de table
ton programme serait mieux ainsi:

Dim cnCon as ADODB.Connection
Dim dSolde as Double

Private Sub Form_Load()
Dim sChaine as string
sChaine="provider=Microsoft.jet.OLEDB.3.51;data source='..\compte\banque.mdb'"
set cnCon=new ADODB.Connection
cnCon.Open sChaine
'en ouvrant la connection dans Load n'oublie pas de la fermer et de la détruire dans UNLOAD c'est plus pro
End Sub

Private Sub Calcul()
Dim rsCompte as ADODB.Recordset 'tu en as juste besoin localement
dim sRequete as string
sRequete="SELECT SUM(somme) as total FROM crédit"
'instancier le recorset
set rsCompte=new ADODB.Recordset
'exécution de la requete
rscompte.Open sRequete,cncon, adOpenStatic, adLockReadOnly
'récupération de la somme
dSolde=rscompte!total 'recupération du total
'fermer le recordset et le détruire
rsCompte.close
set rsCompte=Nothing
End Sub

:) j'espère que cela répond à ta question
0
neokeel Messages postés 4 Date d'inscription jeudi 18 juillet 2002 Statut Membre Dernière intervention 23 juillet 2002
23 juil. 2002 à 10:29
Oui c'est parfait!
Mille Mercisssssssssssssssssssssss

Neokeel
0
Rejoignez-nous