テキストファイルをAccess 2007テーブルに読み込もうとしています。私はあなたが行ごとにファイルを読むことができ、各行からレコードを作成できることを知っています。私は、これがINSERT INTOで行えるのかどうかを調べようとしていました。私のテキストファイルは文字区切りではなく、固定列幅です。たとえば:とにかく、私はVB2005固定長のテキストファイルをAccess2007テーブルにインポート...ほぼ?
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()
をしようとしていた
Date Speed Weight CarID Fuel
1120 200 10000 T230 200
1112 215 11000 F3AE 160
例のデータは、読みやすくするためのスペースを持っているが、実際にデータがそう
112020010000T230200
111221511000F3AE160
のように一緒に凝集している私は姿をカントどのようにデータが構造化されているかをコマンドに伝える方法を説明します。私はあなたがスキーマファイルを使用できることは知っていますが、コード全体を通してこれを行う方法が必要です。
AGP
私はこのすべてを混乱させています。 Access/Jet/ACEは、列幅を定義する限り、固定幅ファイルの読み込みに問題ありません。これは、Access内のインポートウィザードを使用して行うことができます。次に、インポート仕様(および/またはschema.iniファイル)をAccessの外部のコードで使用できます。 –
わかりました。私は内部のAccess仕様やschema.iniファイルに依存せずにアプローチしたいと思っていました。多分それはできません。その場合、私は選択肢がないかもしれません。 – sinDizzy
私はファイルを直接開いて歩くこと以外は何もする方法は考えられません。しかし、列の境界がどこから外れているかを知る必要があるので、そのアプローチがどのようにして代替案よりも優れているかはわかりません。 –