Stocker resultat requete access dans cellule excel

Résolu
khalton Messages postés 4 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 2 janvier 2008 - 2 janv. 2008 à 09:14
sourire45 Messages postés 2 Date d'inscription mardi 12 décembre 2000 Statut Membre Dernière intervention 3 juin 2008 - 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

5 réponses

cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
2 janv. 2008 à 11:01
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

 
3
khalton Messages postés 4 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 2 janvier 2008
2 janv. 2008 à 11:19
Merci !
0
sourire45 Messages postés 2 Date d'inscription mardi 12 décembre 2000 Statut Membre Dernière intervention 3 juin 2008
3 juin 2008 à 16:41
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
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
3 juin 2008 à 16:52
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
0

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

Posez votre question
sourire45 Messages postés 2 Date d'inscription mardi 12 décembre 2000 Statut Membre Dernière intervention 3 juin 2008
3 juin 2008 à 17:00
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
0
Rejoignez-nous