Bonjour,
J'utilise ADO pour me connecter à une bdd au format DBF (Visual FoxPro) pour récupérer un champ d'environ 83000 valeurs.
La méthode ci-dessous fonctionne sans problème :
Cependant cette deuxième méthode ne me donne que 17401 résultats sur les 83000
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Sub Methode_1() Dim cnx As ADODB.Connection Dim rst As ADODB.Recordset Set cnx = New ADODB.Connection Set rst = New Recordset cnx.Open "Driver={Microsoft Visual FoxPro Driver};SourceDB=C:\Fichiers;SourceType=DBF;Exclusive=No" rst.Open "SELECT GPTETEXP.TX_TEXP FROM GPTETEXP", cnx ThisWorkbook.Sheets("Feuil1").Range("A1").CopyFromRecordset rst rst.Close cnx.Close End Sub
Comme si le fait de récupérer les valeurs dans une variable tableau tronquait le résultat...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Sub Methode_2() Dim Tableau As Variant Dim cnx As ADODB.Connection Dim rst As ADODB.Recordset Set cnx = New ADODB.Connection Set rst = New Recordset cnx.Open "Driver={Microsoft Visual FoxPro Driver};SourceDB=C:\Fichiers;SourceType=DBF;Exclusive=No" rst.Open "SELECT GPTETEXP.TX_TEXP FROM GPTETEXP", cnx Tableau = Application.Transpose(rst.GetRows) ThisWorkbook.Sheets("Feuil1").Range("A1:A" & UBound(Tableau)).FormulaLocal = Tableau rst.Close cnx.Close End Sub
J'aimerais comprendre ce qui pose problème, pourriez-vous m'aider svp ?
Merci d'avance et bonne soirée.
Partager