ASP,VBSでAccessデータベース操作 そのG 抽出条件としてSQL文でAccessデータ検索

SQL文を使用して抽出条件を指定し、Accessデータを検索、HTML表示。

サブフォルダ名やファイル名をAccessデータで抽出できる形に変換した。

SQL文を使用して、Accessデータを抽出する。

SQL文といっても、複雑なことはしないので、簡単である。


[test7.asp]
<%@Language="VBScript" %>
<html>
<head>
<title>ドキュメント情報の表示</title>
<body>
<%

Set fs=Server.CreateObject("Shell.Application")
Set fn=fs.NameSpace(Server.MapPath("./data"))
Set fc=fn.Items

sql="Select 番号,題目,登録日 From ha_repo_table WHERE "

For Each sfc In fc
If instr(sfc,"H")>0 Then
sfc=Left(sfc,instr(sfc,"H")-1)
Else
sfc=sfc
End if
sql=sql & "番号=" & sfc & " OR "
Next

sql = Left(sql, Len(sql)-4)

Response.Write sql

Set db=Server.CreateObject("ADODB.Connection")
db.Provider="Microsoft.Jet.OLEDB.4.0"
db.Mode=1
db.ConnectionString=Server.MapPath("./ha_repo.mdb")
db.Open

Set rs=db.Execute(sql)
Response.Write "<table border='1'>"

Response.Write "<tr>"
for i=0 to rs.Fields.Count-1
Response.Write "<th>" & rs.Fields.Item(i).Name & "</th>"
Next
Response.Write "</tr>"

Do until rs.EOF
Response.Write "<tr>"
for i=0 to rs.Fields.Count-1
Response.Write "<td>" & rs.Fields.Item(i).Value & "</td>"
Next
Response.Write "</tr>"
rs.MoveNext
Loop

Response.Write "</table>"

rs.close

db.close

Set db=Nothing

%>
</body>
</html>

そのB Accessファイルのオープンのプログラムに赤字の部分を追加、修正。


Set fs=Server.CreateObject("Shell.Application")
Set fn=fs.NameSpace(Server.MapPath("./data"))
Set fc=fn.Items
シェルアプリケーションで"./data"の下のサブフォルダ名もファイル名も拡張子なしでfcに取り込む。

Set rs=db.Execute(sql)で以下のSQL文を実行したい。

Select 番号,題目,登録日 From ha_repo_table WHERE 番号=4587 OR 番号=4689 OR 番号=4715・・・

指定した番号があるものについて、番号、題目、登録日を表示したい。

上記Select文を作成して、sqlに代入する。

For Each sfc In fc

Next
これで"./data"の下のファイル名、サブフォルダ名を取得。拡張子はない。しかし、4789、4800HPと2種類の名前があるので、HPがついているものはHPを削除する。

If instr(sfc,"H")>0 Then
sfc=Left(sfc,instr(sfc,"H")-1)
Else
sfc=sfc
End if
"H"があればHの前の数字までを代入する。やり方はそのF参照。

sql="Select 番号,題目,登録日 From ha_repo_table WHERE "
sql=sql & "番号=" & sfc & " OR "
sqlに"番号=4785 OR "を追加していく。

sql = Left(sql, Len(sql)-4)
Select文の最後に" OR "の4文字が付くので削除。

Response.Write sqlでsql文が正しいか確認。


以上で所望のSelect文が完成するので、Set rs=db.Execute(sql)でAccessデータを抽出し、黒字の部分でHTML表示する。

次は抽出したデータに対してリンクを貼る。



ASPでAccess操作TOP