Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Recordset avec fichier TSV

Florian53

XLDnaute Impliqué
Bonjour à tous,

Je souhaite créer une requête SQL afin d'alimenter un Array depuis un fichier TSV:

Avec un fichier Excel, l'exercice fonctionne très bien, cependant avec un fichier TSV, j'ai une erreur '3001' ( Les arguments sont de types incorrect, en dehors des limites autorisées ou en conflit les uns avec les autres ).
Ma variable "Lst" contient le chemin ainsi que le nom du fichier.

J'aimerais que cette fonction me renvoie un tableau de type Array du fichier TSV, ça fonctionne très bien avec un fichier Excel mais je ne vois pas ce qui bloque sur un fichier TSV. Avez vous une solution ?

VB:
 Function Import_data(Lst)
    'Objectif : 'Importation de fichier avec la méthode ADO
    'Methode : Commande SQL
    'Date : 30/10/19
    'MAJ : 30/10/19
    'Fait par : Guerrier Florian

    Dim Rst As ADODB.Recordset
    Dim intTblCnt As Integer
    
    Set Cn = New ADODB.Connection
        
    With Cn
        '.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Lst & ";Extended Properties=""Excel 8.0;HDR=No;IMEX=1;"";"
        .Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Lst & ";Extended Properties=""text;FMT=Delimited(" & vbTab & ");"
            
    End With

    Set Rst = Cn.OpenSchema(adSchemaTables)
    intTblCnt = Rst.RecordCount

    If intTblCnt > 1 Then MsgBox "Le fichier ne peut contenir qu'un onglet Raw": Test_error = True: Exit Function

    strTbl = Rst.Fields("TABLE_NAME").Value
    
    Set Rst = New ADODB.Recordset
    Set Rst = Cn.Execute("SELECT * FROM [" & strTbl & "] ")
    
    Import_data = Rst.GetRows
    
    'Libération de la mémoire
    Cn.Close
    Set Cn = Nothing: Set Rst = Nothing
              
End Function

Merci à vous
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

data source doit faire référence au répertoire et la table à fichier#TSV

Répertoire Datasource que je citais déjà au post #9.
En ce qui concerne la table avec :
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.Path & ";Extended Properties=""text;FMT=TabDelimited;HDR=YES"";"
l'extension même ne semble pas acceptée ! Si on change l'extension du fichier en .csv la chaîne de connexion fonctionne parfaitement.

Cordialement
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…