Stocker resultat requete access dans cellule excel [Résolu]

khalton 4 Messages postés jeudi 27 décembre 2007Date d'inscription 2 janvier 2008 Dernière intervention - 2 janv. 2008 à 09:14 - Dernière réponse : sourire45 2 Messages postés mardi 12 décembre 2000Date d'inscription 3 juin 2008 Dernière intervention
- 3 juin 2008 à 17:00
Bonjour,

Je souhaiterai afficher ou stocker dans une cellule excel le resultat d'une requete sur une base access effectuée dans un code vba.

La structure de la table est la suivante :



Table : Histovol
Champs:
ISIN de type Text
VI_ASK de type Text
DAT de type Date\Time



Voici le code de ma procedure de test :

Sub test()



Static sql2 As String
Dim db As Database
Dim isin_oc As String



isin_oc = "FR0000492076"



'OUVERTURE DE LA BASE
Set db = OpenDatabase("C:\Documents and Settings\kelhah\Desktop\TEST.mdb")



sql2 = "select (cdbl(vi_ask)+cdbl(vi_bid))/2 from histovol where dat=(date()-8) and ISIN='" & isin_oc & "'"



'db.OpenRecordset



Set rs = db.OpenRecordset(sql2)



rs.OpenRecordset



'MsgBox (rs)



db.Close



End Sub


Merci pour votre aide
Afficher la suite 

Votre réponse

5 réponses

cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 2 janv. 2008 à 11:01
+3
Utile
Salut,

Je pense un truc du genre.... :

rs.OpenRecordset

While Not Rs.Eof

          MsgBox Rs.Fields("vi_ask")
          MsgBox Rs.Fields("vi_bid")
          MsgBox Rs.Fields("Dat")

          Rs.MoveNext

 Wend

db.CloseEnd Sub

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Exploreur
khalton 4 Messages postés jeudi 27 décembre 2007Date d'inscription 2 janvier 2008 Dernière intervention - 2 janv. 2008 à 11:19
0
Utile
Merci !
Commenter la réponse de khalton
sourire45 2 Messages postés mardi 12 décembre 2000Date d'inscription 3 juin 2008 Dernière intervention - 3 juin 2008 à 16:41
0
Utile
bonjour,

Voila j'ai un petit soucis avec un appli réaliser sous excel 97 avec une connection a une base access 97.

On me demande faire faire fonctionner cette appli sous excel 2003 et en utilisant toujours access 97.

dans cette appli j'ai des procédures qui font appel a la base de données forcément le code n 'est pas le meme.

Sous Vba 97 j ai le code suivant  : 

   'Requete pour le CO
        a = "select sum(" & Range("Parametre!E11") & ") from " & Range("Parametre!D7") & " where " & Range("Parametre!D11") & " like '" & Worksheets("COdispatcher").Cells(7, colCOd) & "';"
        Sheets("COdispatcher").Select
        With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
            "ODBC;DSN=MS Access 97 Database;DBQ=" & Range("Parametre!D6") & ";DefaultDir=N:\METHODES\_TRAVAIL;DriverId=281;FIL" _
            ), Array("=MS Access;MaxBufferSize=2048;PageTimeout=5;")), Destination:=Worksheets("COdispatcher").Cells(7, colCOd + 2)) 'emplacement du resultat
            .Sql = a
            .FieldNames = False 'Nom des champs de la BD
            .RefreshStyle = xldeleteEntireRows ' Pour l insertion des nouvelles données
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .RefreshOnFileOpen = False
            .HasAutoFormat = False 'surement a laisser
            .BackgroundQuery = True
            .TablesOnlyFromHTML = True
            .Refresh BackgroundQuery:=False
            .SavePassword = True
            .SaveData = True
        End With

J ai essayé de modifier ce code pour le rendre fonctionnel sous VB 6.3, ca donne ca :

  'Déclaration des variables
    Dim cnx As ADODB.connection
    Dim rst As ADODB.Recordset


    'Instanciation des variables
    Set cnx = New ADODB.connection
    Set rst = New ADODB.Recordset
     'Requete pour le CO
        
     'Connexion à la base de données
        cnx.ConnectionString = "Provider=" & "Microsoft.Jet.Oledb.3.51" & ";DSN=" & "Ms Access 97 Database" & ";"


        cnx.Open


        'Exécution de la requête et récupération des données.


        rst.Open "SELECT sum(" & Range("Parametre!E11") & ") from " & Range("Parametre!D7") & " where " & Range("Parametre!D11") & " like " & Worksheets("COdispatcher").Cells(7, colCOd).cnx
        'rst.Fields ("") "et la je sais pas comment je fais pr recupérer les données!!!!! 

ce que je voulais savoir c comment faire pour que mon resultat de la requete sql soit affecter a la feuille et a la cellulue correspondante (je sais pas si c compris ;))c'est a dire en faite ca en 97 : [Destination:=Worksheets("COdispatcher").Cells(7, colCOd + 2)) 'emplacement du resultat
]

merci pour votre aide je suis debutante en vba donc j ai essayé de faire ce que je peux mais bon je sais pas si c le bon chemin....

PS : j utilise ADO alors qu en 97 c etait du DAO.

Merci
Commenter la réponse de sourire45
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 3 juin 2008 à 16:52
0
Utile
Salut,


Je ne sais pas si j'ai bien compri, mais utilise ton RecordSet( rst ) pour cela...


A+
Exploreur

 Linux a un noyau, Windows un pépin
Commenter la réponse de cs_Exploreur
sourire45 2 Messages postés mardi 12 décembre 2000Date d'inscription 3 juin 2008 Dernière intervention - 3 juin 2008 à 17:00
0
Utile
re,

je me doutes bien qu il faut que j utilise mon Recordset mais je vois pas du tout comment faire, par ou commencer???

help me, please
Commenter la réponse de sourire45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.