khalton
Messages postés4Date d'inscriptionjeudi 27 décembre 2007StatutMembreDernière intervention 2 janvier 2008
-
2 janv. 2008 à 09:14
sourire45
Messages postés2Date d'inscriptionmardi 12 décembre 2000StatutMembreDerniè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
A voir également:
Stocker resultat requete access dans cellule excel
sourire45
Messages postés2Date d'inscriptionmardi 12 décembre 2000StatutMembreDerniè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....