VBでCSVデータをMDB
ACCESSがあれば簡単ですが、その環境が無い時用に
CSVデータをアクセス2000形式の.mdbに移すプログラムを作りたいと思いました。
Visual Basic 2010 Expressをダウンロードしてあります。
ネットで手法を検索してみましたが、これはというサイトを見つけられず
大きな本屋で関連書籍を探してみましたが、逆の方法は見つかるのですが
CSV→MDBは見つかりませんでした。
アドバイスや参考サイトなどありましたら
是非教えて頂きたいと思い質問しました。
宜しくお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
> ただ、Excel2003ではデータ件数が溢れてしまい
> 無理なようです。
> 使うデータは〒番号です。
EXCELのワークシートにのせる必要はありません。
MDBへの接続を確立(DAOでもADOでもお好きなほうで)
CSVファイルを単なる入力ファイルにして、EOFまでのループを作る。
ループ内で、項目分けしてレコード単位でテーブル書き込み。
入力ファイルのEOFでDBをクローズして終了。
「上記をVBAで書く」ということです。
No.3
- 回答日時:
>逆の方法は見つかるのですがCSV→MDBは見つかりませんでした。
逆の方法が見つかっているのであれば、それのFromとToを逆さにするだけです。
ただし単純なCSVしか、この方法では対応できません。
カンマ以外の区切り文字を使用したりする場合などは、「schema.ini」という定義を作成し、それから取り込む必要があります。
'http://blog.livedoor.jp/akf0/archives/51408939.h …
'http://homepage2.nifty.com/inform/vbdb/dao_expor …
Imports System.Data.OleDb
Module Module1
Sub Main()
Imp("C:\db1.mdb", "C:\Test\456.csv", True)
End Sub
Sub Imp(ByVal p_strMdbFile As String, ByVal p_strCsvFile As String, ByVal CSVの先頭はフィールド名 As Boolean)
'MDBへの接続
Using l_oleCnn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & p_strMdbFile & ";")
l_oleCnn.Open()
Dim l_strHead As String = IIf(CSVの先頭はフィールド名, "YES", "NO")
Dim l_finf As New IO.FileInfo(p_strCsvFile)
Dim l_strTableCSV As String = String.Format("[Text;HDR={0};FMT=Delimited;DATABASE={1}].[{2}]", l_strHead, l_finf.Directory.FullName, l_finf.Name)
Dim l_strTableImp As String = IO.Path.GetFileNameWithoutExtension(l_finf.Name)
'テーブルの存在チェック
Dim l_strSQL As String
Dim l_strTables As DataTable = l_oleCnn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"})
If (l_strTables.Select("TABLE_NAME='" & l_strTableImp & "'").Length > 0) Then
'データ追加
l_strSQL = String.Format("INSERT INTO [{0}] SELECT * FROM {1}", l_strTableImp, l_strTableCSV)
Else
'テーブル作成と追加
l_strSQL = String.Format("SELECT * INTO [{0}] FROM {1}", l_strTableImp, l_strTableCSV)
End If
'SQL文の発行
Using l_oleCmd As New OleDbCommand(l_strSQL, l_oleCnn)
l_oleCmd.ExecuteNonQuery()
End Using
l_oleCnn.Close()
End Using
End Sub
End Module
回答ありがとうございます。
SQLは書籍すら持っていないので全く分からりません。
ただ、書いた頂いたコードは何をするのかが何となくわかります。
fromとtoを逆にする方法も含めて、実際に自分でやって検証してみたいと思います。
No.2
- 回答日時:
データーベースはあまり詳しくはないのですが、私がサンプルを作った時に調べた限りでは、
VB.NET 系では、直接 mdb ファイルを作成する機能はないようです。
従って、ADOX の機能を使って、ADO.NET で作成するか又は、事前に mdb の空ファイルを用意して
おくとVB.NET の機能だけで作成する事ができます。
[VB2005 ADOX mdb] をキーに検索すればサンプルや参考文献が見つかるでしょう。
回答ありがとうございます。
空のmdbファイルを用意する方法は、何か行けそうな気がします。
こちらの手法で一度チャレンジしてみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Excel(エクセル) Excelの帳票形式をアクセスに取り込むため、 csvのデータ形式になるように、マクロを作成している 2 2022/06/12 22:52
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
- その他(データベース) 20万行あるデータを動かしたい 2 2023/06/13 15:21
- Visual Basic(VBA) vbaマクロについて 次のようなマクロを組みたいです。 自分は初心者なので全くわかりません。 詳しく 8 2023/05/18 18:38
- PHP csvファイルについて教えて下さい。 2 2023/04/01 19:59
- 株式市場・株価 週足のデータを毎週ダウンロードできるサイトはありますか? 2 2022/07/28 05:56
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS テーブルに2行目から取...
-
C#でaccdbファイルのテーブルの...
-
エクセルからアクセスにインポ...
-
テーブルのリンク(ACCESS)
-
Accessの接続先をSQLサーバ...
-
アクセスマクロで、csv データ...
-
アクセス2007 エクセルへエク...
-
Access2019でフォームから入力...
-
データを削除しても表領域の使...
-
Viewにインデックスは張れ...
-
SQLでスキーマ名(所有者名)の...
-
ORA-00959: 表領域'****'は...
-
INDEXの無効化
-
datapumpの実行方法について
-
postgreSQLのint型は桁数指定が...
-
他の処理でselectさせないよう...
-
ACCESS 複数テーブル・複数フィ...
-
検索結果の列数を動的に変更したい
-
異なるスキーマからデータを抽...
-
CLOB型へのINSERT
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルからアクセスにインポ...
-
他ファイルのテーブルの情報を...
-
C#でaccdbファイルのテーブルの...
-
(ACCESS)複数mdbからのデータ...
-
ACCESS テーブルに2行目から取...
-
テーブルのリンク(ACCESS)
-
jspのプログラムについて
-
Accessでボタンを押したらエク...
-
アクセスマクロで、csv データ...
-
画面から入力した値がDBに登録...
-
[PG]AccessVBAでファイルのイン...
-
csvをSQLiteに取り込むと文字化...
-
グループ単位にCSVファイル...
-
アクセス初心者に注意点を教え...
-
Access2019でフォームから入力...
-
VBでCSVデータをMDB
-
ACCESSとエクセルのリン...
-
DataGridViewでの変更保存
-
データ読込時のタイムアウト
-
mdbファイルを試しに開いてみた...
おすすめ情報