Requetes SQL ACCESS sous VB EXCEL
Fermé
durden35
Messages postés
7
Date d'inscription
mercredi 15 novembre 2006
Statut
Membre
Dernière intervention
26 juin 2007
-
20 févr. 2007 à 16:16
ruzakruzak Messages postés 459 Date d'inscription vendredi 9 février 2007 Statut Membre Dernière intervention 31 mai 2007 - 20 févr. 2007 à 16:44
ruzakruzak Messages postés 459 Date d'inscription vendredi 9 février 2007 Statut Membre Dernière intervention 31 mai 2007 - 20 févr. 2007 à 16:44
A voir également:
- Requetes SQL ACCESS sous VB EXCEL
- Liste déroulante excel - Guide
- Formule excel - Guide
- Vb cable - Télécharger - Audio & Musique
- Si et excel - Guide
- Aller à la ligne excel - Guide
2 réponses
ruzakruzak
Messages postés
459
Date d'inscription
vendredi 9 février 2007
Statut
Membre
Dernière intervention
31 mai 2007
246
20 févr. 2007 à 16:44
20 févr. 2007 à 16:44
Bonjour.
Un peu de code vite fait, avec l'enregistreur de macros :
Sub test_connecteur()
'
With ActiveSheet.QueryTables.Add(Connection:=Array("ODBC;DSN=MS Access Database;DBQ=<le chemin vers ma base>;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;"), Destination:=Range("A3"))
.CommandText = "<ma requète SQL ici>"
.Name = "Lancer la requête à partir de MS Access Database"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
End Sub
Je suis passé par Données > Données Externes > Créer une Requète, en enregistrant avec l'enregistreur de macros...
A ton tour ! Et n'hésite pas à consulter l'aide sur ODBC pour comprendre les détails.
Un peu de code vite fait, avec l'enregistreur de macros :
Sub test_connecteur()
'
With ActiveSheet.QueryTables.Add(Connection:=Array("ODBC;DSN=MS Access Database;DBQ=<le chemin vers ma base>;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;"), Destination:=Range("A3"))
.CommandText = "<ma requète SQL ici>"
.Name = "Lancer la requête à partir de MS Access Database"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
End Sub
Je suis passé par Données > Données Externes > Créer une Requète, en enregistrant avec l'enregistreur de macros...
A ton tour ! Et n'hésite pas à consulter l'aide sur ODBC pour comprendre les détails.
Kobaya
Messages postés
282
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
10 janvier 2008
214
20 févr. 2007 à 16:30
20 févr. 2007 à 16:30
bonjour durden,
je n'ai pas Access sur mon poste, donc j'ai pas pu testé, mais voici un exemple adapté d'Oracle. il faut juste adapter la variable de connexion à Access
je n'ai pas Access sur mon poste, donc j'ai pas pu testé, mais voici un exemple adapté d'Oracle. il faut juste adapter la variable de connexion à Access
strSQL = "SELECT Count(*) FROM tfcrcrm" Set objRS = New Recordset objRS.Open strSQL, "Provider=MSACCESS. ;Password=user;User ID=user;Data Source=C:\MaBase.mdb" lngLigne = 1 lngNbFields = objRS.Fields.Count - 1 ' écriture les noms des champs renvoyés dans la requête For lngIndex = 0 To lngNbFields Cells(1, lngIndex + 1).Value = objRS.Fields(lngIndex).Name Next lngLigne = lngLigne + 1 ' écriture du recordset dans la feuille Do While Not objRS.EOF For lngIndex = 0 To lngNbFields Cells(lngLigne, lngIndex + 1).Value = objRS(lngIndex).Value DoEvents Next lngLigne = lngLigne + 1 objRS.MoveNext Loop objRS.Close Set objRS = Nothing: Set objConn = Nothing