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 ?
Merci à vous
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