VBAでCSVをアップロード

会話中に何気に「この画面がネットで見れたら便利かも」

という話が発端。

画面はMS-Accessで表示している。

サーバ上のMySQLへテーブルのデータを流し込めればPHPやCGiで見れる。

問題は如何に簡単にボタン一つでテーブルをCSV化してアップロードできるか?

現実的な話にしたかったので調べてみた。

Dim objHTTP
Dim Stream

' XMLHTTPを作成
Set objHTTP = CreateObject("MSXML2.XMLHTTP")
' Stream オブジェクトの作成
Set Stream = CreateObject("ADODB.Stream")

' Streamのオープン
Stream.Open
Stream.Type = 1 ' adTypeBinary

' 送信するファイルを読み込む
Stream.LoadFromFile = "C:\xxx\hoge.csv"


Call objHTTP.Open("POST", "http://hogehoge.com/TextUp.php", False)
Call objHTTP.setRequestHeader("Content-Length", Stream.Size)
Call objHTTP.send(Stream.read(Stream.Size))
msg1 = objHTTP.responsetext

' Streamを閉じる
Stream.Close

objHTTP.Open で指定しているPHP(CGIでもOK)には、

送信したテキストデータを保存する仕組みが必要です。

既に記事にした LOAD DATA INFILE を使って、
かなり高速に処理が可能なことがわかった。


カテゴリー: その他 パーマリンク