bonjour ,
J'ai un petit souci lors de l'insertion d'un fichier texte en table celui-ci etant delimité par des "@"
il me m'est cette erreur la : Erreur de syntaxe (opérateur absent) dans l'expression , au vue de la requete SQL elle paraît clean toute les valeurs sont bien espacées d'une "," le nombre de champs source et destination sont identiques .... , j'ai bien différencié mes champs par des ' mais bon rien n'y fait :/
si quelqu'un avait une idée je suis preneur :o
voici mon code :
Private
Sub cmdImport_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdImport.ClickDim delimiter AsStringDim contents AsStringDim lines() AsStringDim fields() AsStringDim wks As dao.WorkspaceDim db As dao.DatabaseDim fnum AsShortDim line_num AsShortDim field_num AsShortDim sql_statement AsStringDim num_records AsIntegerdelimiter =
"@"' capture le fichierfnum = FreeFile
FileOpen(fnum,
"C:\damien.txt", OpenMode.Input)'Mise en memoire du fichiers texte à importercontents = InputString(fnum, LOF(fnum))
FileClose(fnum)
' decoupe chaque ligne a chaque saut de lignelines = Split(contents, vbCrLf)
' Ouvre la base.wks = DAODBEngine_definst.Workspaces(0)
db = wks.OpenDatabase(
"C:\Base Rex.mdb")'enumere le nombre de lignesFor line_num = LBound(lines) To UBound(lines)'si la ligne a une longueur sup a zero execute le codeIf Len(lines(line_num)) > 0 Then' construction de la requete d'insertionsql_statement =
"INSERT INTO T_CRI VALUES("'decoupe les champsfields = Split(lines(line_num), delimiter)
'enumere le nombre de champsFor field_num = LBound(fields) To UBound(fields)' insere les champs a la requêtesql_statement = sql_statement &
"'" & fields(field_num) & "',"Next field_num' 'Enleve la derniere virgule de la requete SQLsql_statement = VB.Left(sql_statement, Len(sql_statement) - 1) &
")"db.Execute(sql_statement)
num_records = num_records + 1
EndIf