ASP,VBSでAccessデータベース操作 SQL文を使用してデータのAccessへの書き込み(接続)方法。

他のホームページを取り込んで必要なデータを
Accessへ接続し書き込むことができた。

他のホームページのHTMLソースを取り込み、必要なデータを抽出することができた。

テキストファイルに保存することができたが、今度はAccessへ接続し保存することとする。

まずは、Access(mdbファイル)を作成しておく。

test6.LZH

Accsessのデータは「データを作成してテーブルを作成する」で作成する。

今回はテーブル名は「日経」、それぞれのキーは「ID」「日付」「日経平均」「NYダウ」「ナスダック」「ドル」としておいた。

前回のプログラムのテキストを書き込む部分を下記のように変更した。

Set objFS = CreateObject("Scripting.FileSystemObject")
Set objTS = objFS.CreateTextFile(Server.MapPath("test5.txt"),true)
objTS.Write str
objTS.Close

strtmp=Split(str,chr(10))
Set db=Server.CreateObject("ADODB.Connection")
db.Provider="Microsoft.Jet.OLEDB.4.0"
db.Mode=2
db.ConnectionString=Server.MapPath("kabu.mdb")
db.Open
SQL="INSERT INTO 日経(日付,日経平均,NYダウ,ナスダック,ドル) VALUES('"&strtmp(0)&"','"&strtmp(1)&"','"&strtmp(2)&"','"&strtmp(3)&"','"&strtmp(4)&"')"
Response.Write SQL&"<br>"
db.Execute(SQL)
db.Close
Set db = Nothing

strtmp=Split(str,chr(10))
strにchr(10)を区切り文字として値を代入したので、Split関数でstrtmp配列に展開。

Set db=Server.CreateObject("ADODB.Connection")
db.Provider="Microsoft.Jet.OLEDB.4.0"
db.Mode=2
db.ConnectionString=Server.MapPath("kabu.mdb")
db.Open
Accessファイル「kabu.mdb」をdb.Mode=2として書き込み専用として開く。
Server.MapPathはasp実行ファイルの絶対パスを指定してくれる。
db.Provider="Microsoft.Jet.OLEDB.4.0"でAccessファイルの操作を行うことを宣言してくれる。

SQL文として挿入する命令を作成する。
INSERT INTO 日経(日付,日経平均,NYダウ,ナスダック,ドル) VALUES('2009/08/28','10,534.14','9,580.63','2,027.73','93.91-93.94')

db.Execute(SQL)でSQL文を実行して、Accessにデータを追加する。

以上で、Accessにデータを追加することができた。

Acccessのそれぞれのデータ型はテキスト型にしておいた。
現状、数値型にしておくとエラーが発生してしまう。

データ型をASP側でどのように設定すればよいか検討中。

また、これではASPを実行するごとに同じ値が追加されてしまう。

同じ日付では上書きするか、書き込みできないようにするようにSQL文を工夫する。

ソースはこちらからダウンロードできます。


PS.
書き込みエラーが出てしまう場合は、権限の問題の可能性があります。

下記を参考にしてください。

テキストファイルへの書き込み、エラー回避方法



実践!ASPでAccess操作