Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Récupération de données via ADO

5 réponses
Avatar
astalavista
Bonjour,

J'essaie de récupérer des données d'un fichier excel à partir d'un autre en
VBA (ADO)
L'ouverture se passe bien:
cnn.Open "Driver={Microsoft Excel Driver (*.xls)}; DBQ=test.xls;
DriverID=790"

Mais j'ai une erreur pour le select, je ne sais pas ce qu'il faut mettre
dans le from:
Set rs = cnn.Execute("SELECT count(*) AS nbEnreg FROM xxxx")
j'ai essayé une liste, une feuille mais ça ne marche pas

Avez-vous des idées ?
Merci d'avance

5 réponses

Avatar
JB
Bonjour,

XXXX représente le nom de champ de la BD (qui doit avoir des noms de
colonne).

JB
http://boisgontierjacques.free.fr/


On 25 déc, 12:47, "astalavista" wrote:
Bonjour,

J'essaie de récupérer des données d'un fichier excel à partir d'u n autre en
VBA (ADO)
L'ouverture se passe bien:
cnn.Open "Driver={Microsoft Excel Driver (*.xls)}; DBQ=test.xls;
DriverIDy0"

Mais j'ai une erreur pour le select, je ne sais pas ce qu'il faut mettre
dans le from:
Set rs = cnn.Execute("SELECT count(*) AS nbEnreg FROM xxxx")
j'ai essayé une liste, une feuille mais ça ne marche pas

Avez-vous des idées ?
Merci d'avance


Avatar
astalavista
> XXXX représente le nom de champ de la BD (qui doit avoir des noms de
colonne).


Merci pour la réponse mais je n'y arrive toujours pas (je ne connais pas
bien excel)
si par exemple, j'ai dans mon fichier de données (1ere colonne)
1
2
3
4
5
que dois-je faire pour récupérer ces données dans un autre fichier excel en
VBA-ADO ?
Merci encore
Avatar
michdenis
Voici un exemple que tu devras adapter à ta situation :

A ) requiert l'ajout de la bibliothèque :
"Microsoft Activex data object 2.x librairy"

L'exemple suivant extrait toutes les données de la
colonne A:A dont l'étiquette de colonne est "toto"
sur la "Feui1" du classeur et copie des données
vers la feuil2 en colonne H1


'------------------------------------------
Sub MaRequête()

Dim Conn As ADODB.Connection, Rst As New ADODB.Recordset
Dim Requete As String, Ligne As Long, Rg As Range
Dim NomFeuille As String

Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.FullName & ";" & _
"Extended Properties=""Excel 8.0;HDR=YES;"""

NomFeuille = "Feuil1" ' Nom onglet feuille où sont les données


'Pour extraire toutes les données numériques sans les lignes vierges
'Requete = "SELECT toto From [" & NomFeuille & "$]" & vbCrLf & _
"Where toto Is Not Null "

'Pour extraire toutes les données numériques sans les lignes vierges
'et sans doublons et en ordre croissant
'Requete = "SELECT toto From [" & NomFeuille & "$]" & vbCrLf & _
"Where toto Is Not Null " & vbCrLf & _
"Group By toto ORDER By toto"


Rst.Open Requete, Conn, adOpenStatic, adLockOptimistic
x = Rst.RecordCount
'Où copier les données
Set Rg = Worksheets("Feuil2").Range("H1")

'copie l'étiquette du champ du recordset
Rg.Value = Rst.Fields(0).Name
'copie les données du recordset
Rg.Offset(1).CopyFromRecordset Rst
Rst.Close: Conn.Close

End Sub
'------------------------------------------



"astalavista" a écrit dans le message de news:
495372bf$0$22509$
Bonjour,

J'essaie de récupérer des données d'un fichier excel à partir d'un autre en
VBA (ADO)
L'ouverture se passe bien:
cnn.Open "Driver={Microsoft Excel Driver (*.xls)}; DBQ=test.xls;
DriverIDy0"

Mais j'ai une erreur pour le select, je ne sais pas ce qu'il faut mettre
dans le from:
Set rs = cnn.Execute("SELECT count(*) AS nbEnreg FROM xxxx")
j'ai essayé une liste, une feuille mais ça ne marche pas

Avez-vous des idées ?
Merci d'avance
Avatar
JB
http://boisgontierjacques.free.fr/pages_site/ado.htm

JB

On 25 déc, 14:30, "astalavista" wrote:
> XXXX représente le nom de champ de la BD (qui doit avoir des noms de
> colonne).

Merci pour la réponse mais je n'y arrive toujours pas (je ne connais pa s
bien excel)
si par exemple, j'ai dans mon fichier de données (1ere colonne)
1
2
3
4
5
que dois-je faire  pour récupérer ces données dans un autre fichi er excel en
VBA-ADO ?
Merci encore


Avatar
astalavista
OK ça marche
je mettais dans DBQ le nom du fichier
sans le chemin absolu
je pensais qu'il prenait le répertoire courant

"JB" a écrit dans le message de news:


http://boisgontierjacques.free.fr/pages_site/ado.htm

JB

On 25 déc, 14:30, "astalavista" wrote:
> XXXX représente le nom de champ de la BD (qui doit avoir des noms de
> colonne).

Merci pour la réponse mais je n'y arrive toujours pas (je ne connais pas
bien excel)
si par exemple, j'ai dans mon fichier de données (1ere colonne)
1
2
3
4
5
que dois-je faire pour récupérer ces données dans un autre fichier excel
en
VBA-ADO ?
Merci encore