Я пытаюсь загрузить текстовый файл в таблицу Access 2007. Я знаю, что вы можете читать файл за строкой, а затем создавать запись из каждой строки. я пытался понять, можно ли это сделать с помощью INSERT INTO, а не с помощью всех строк текста. Мой текстовый файл не является символом, а скорее фиксированной шириной столбца. Например:VB2005 Импорт фиксированной ширины текстового файла в таблицу Access2007 ... почти?
Date Speed Weight CarID Fuel
1120 200 10000 T230 200
1112 215 11000 F3AE 160
Данные в примере имеет пространства для удобства чтения, но в действительности данные слипаются вместе, как так
112020010000T230200
111221511000F3AE160
Во всяком случае я пытался
Dim sImportFolder As String = "C:\MyData"
Dim sSource As String = "C:\data.accdb"
Dim sImportFile As String = "week.txt"
Dim AccessConn As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & sSource & ";Persist Security Info=True;Jet OLEDB:Database Password=blah")
AccessConn.Open() 'open the connection to the database
Dim AccessCommand As New System.Data.OleDb.OleDbCommand("INSERT INTO [tblData] ([PtDate], [PtSpeed], [PtWt], [PtCar], [PtFuel]) SELECT F1, F2, F3, F4, F5 FROM [Text;DATABASE=" & sImportFolder & ";].[" & sImportFile & "]")
AccessCommand.Connection = AccessConn
AccessCommand.ExecuteNonQuery()
AccessConn.Close()
Я не могу понять как сообщить команде, как данные структурированы. Я знаю, что вы можете использовать файл схемы, но есть способ сделать это через код.
AGP
Я в замешательстве от всего этого. Access/Jet/ACE не имеет проблем с чтением файлов фиксированной ширины, если вы определяете ширину столбца. Это можно сделать с помощью мастера импорта из Access, а затем спецификацию импорта (и/или файл schema.ini) можно затем использовать в коде из внешнего Access. –
ok i gotcha. но я действительно хотел подойти к нему без зависимости от внутренней спецификации Access или файла schema.ini. Возможно, это не может быть сделано, и в этом случае у меня не будет выбора. – sinDizzy
Я не могу придумать никакого способа сделать это, кроме как открыть файл напрямую и пройти. Но вы все равно должны знать, где границы столбцов должны что-то сделать из этого, поэтому я не вижу, как этот подход будет превосходить описанные альтернативы. –