Bonjour à tous,

Je rencontre un problème avec un fichier .dbf.
J'essaye d'effectuer des requete SQL, pour le moment aucun problème

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
 
   Dim source As ADODB.Connection
    Dim Requete As ADODB.Recordset
    Dim Chemin As String, fichier As String, texte_SQL As String
 
    Chemin = ThisWorkbook.Path
    fichier = "fichier.dbf"
 
    Set source = New ADODB.Connection
    source.Open "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=" & Chemin & ";"
 
    texte_SQL = "SELECT * FROM " & fichier & ";"
 
    Set Requete = New Recordset
    Requete.Open texte_SQL, source, adOpenKeyset, adLockOptimistic
Tous fonctionne correctement cependant sur une colonne j'ai un problème : les valeurs qui me sont retourner n'on absolument rien à voir avec ce que contient le fichier DBF.

Par exemple je devrais attendre ce genre de valeur (présente dans mon dbf):
76035
271435
271439
271445
271450
274875
et j'obtient ceci :
33648
35243
35243
35243
35243
35278
Je tiens à préciser que je n'ai de problèmes que sur cette colonne et que les 19 autres fonctionnent sans aucun soucis.

Est ce que quelqu'un à une idée, une piste ?

PS : question bonus : est-il possible de faire des requete SQL sur un fichier de type .SLK

Cordialement
Omsalam

Je me permet d'ajouter quelques précision :

- quand j'ouvre le fichier avec visual studio j'obtiens bien les même nombre que je souhaite afficher en vrai (avec même leur code hexadécimal qui correspond)
Pour moi cela prouve que le fichier est correcte, qu'il est bien former.

Cela viens donc de mon code :

- peut être de la référence vers : Microsoft ActiveX Data Objects 2.X Library
Il y en a tellement que je ne sait lequel prendre : 2.0, 2.1, 2.2, 2.3, ....

- Peut être de mes paramètre lors de l’exécution de la requête : dOpenKeyset, adLockOptimistic

- Ou alors de ma connectionString ?

Des idées ?

Ps : Sinon est-il possible de faire ce même genre de requete SQL mais directement sur des fichiers excel : les nom de colonnes serait alors j'imagine le numero de colonne sur excel "A,EA, ..."