激凹みから立ち直る方法

ASPとACCESSを使って検索画面を作成したいと考えています。

********ACCESSのテーブル*********
氏名 住所 TEL
佐藤 愛知県 052…
鈴木 東京都 03…
永田 大阪府 06…

ASPの画面で、
氏名を入力すると、
住所とTELが表示されるようにしたいと思っています。
ググりましたが、なかなかサンプルが見つかりません。
丸投げのようで恐縮ですが、宜しくお願いします。

A 回答 (4件)

http://www.site-cooler.com/kwl/asp/

どうぞ。
勉強し始めの頃よく使いました。忘れたときとかもよく見ますが。

ASPとAccessで探さないで、ASPのみでググった方が、ついでにDBへの接続方法~って事で載ってる場合が多々あります。

この回答への補足

ACCESSのアクセス権に問題がありました。
DBを表示させることは成功しました。
ありがとうございました。

補足日時:2007/12/06 16:59
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
とありあえず、ACCESSのデータを表示できるか、
以下のように作成しましたが、
”ページを表示できません”のメッセージが出てしまいます。
ODBCの設定は完了しています。
何が原因でしょうか。
ACCESSは2003です。

******test.asp*********
Dim objCon
Dim objRS
Dim strSQL

'##### コネクションオブジェクトの生成 #####
Set objCon = Server.CreateObject("ADODB.Connection")

'##### 接続用パレメータの設定 #####
objCon.Provider = "Microsoft.Jet.OLEDB.4.0"

'##### MDBの絶対パス指定 #####
objCon.ConnectionString = "C:\test.mdb"

'##### コネクションのオープン #####
objCon.Open

'##### SQLの作成 #####
strSQL = "select * from test"

'##### レコードセットのオープン #####
objRS.Open strSQL, objCon, 3

%>
レコード件数 <%=objRS.RecordCount%>
<br>
<br>
<table border="1">
<%

'##### EOF が True になるまで繰り返し #####
Do Until objRS.EOF
%>
<tr>
<td><%=objRS("住所").value%></td>
<td><%=objRS("氏名").value%></td>
</tr>
<%
'##### 次のレコードを参照 #####
objRS.MoveNext
Loop
%>
</table>
<%
'##### レコードセットのクローズ #####
objRS.Close
Set objRS = Nothing
'##### コネクションのクローズ #####
objCon.Close
Set objCon = Nothing
%>
</body>
</html>

お礼日時:2007/12/06 16:38

こんにゃくは。



>>ODBCの設定は完了しています。
動作させる環境は整っている前提でいいのでしょうかね?
IISだとか、ASPのバージョンだとか。。。

とりあえず。

'##### レコードセットのオープン #####

から

'##### コネクションのクローズ #####
objCon.Close
Set objCon = Nothing

までの間を全部削除して、「データベースの接続定義」だけと、HTMLの本文だけで表示が可能なのかどうかをまず確認。

できるようなら、次にレコードセットのオープン部分を追加して、オープンできるか確認。
次にレコード件数を取れるか。。。
レコードの中身が表示できるか。。。

まぁ、地道に上から表示させつつ、どこでエラーが出てるのか調べるしか。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
とりあえずDBを表示させるまではできました。
「氏名」を入力する欄を作成し、「実行」ボタンを押したら、
その入力された「氏名」をクエリに組み込めばいいのかと思い、
以下のようなASPを作成しましたが、「実行」ボタンを押しても反応しません。
ASPは初心者です。
またまた丸投げのようですが、よろしくおねがいします。

****作成したASP(最初に記述したコードを変更しました)******
<%@LANGUAGE=VBScript%>
<html>
<head>
</head>
<body>
検索する<br>
<input name="simei" type="text">
<input type="submit" value="実行">

<br>

<%
Set db=Server.CreateObject("ADODB.Connection")
db.Provider = "Microsoft.Jet.OLEDB.4.0"
db.ConnectionString = Server.MapPath("test.mdb")
db.open

****ここに入力された「氏名」を反映させる***
Set rs = db.Execute("SELECT … WHERE ((test.氏名)='simei')")

Response.Write "<TABLE>"
Response.Write "<TR>"
Response.Write "<TD>氏名</TD>"
Response.Write "<TD>住所</TD>"
Response.Write "<TD>TEL</TD>"
Response.Write "</TR>"

Do While rs.EOF = False
Response.Write "<TR>"
Response.Write "<TD>" & rs.Fields.Item("氏名") & "</TD>"
Response.Write "<TD>" & rs.Fields.Item("住所") & "</TD>"
Response.Write "<TD>" & rs.Fields.Item("TEL") & "</TD>"
Response.Write "</TR>"
rs.MoveNext
Loop

Response.Write "</TABLE>"
rs.Close
db.Close
Set db = Nothing
%>

</body>
</html>

お礼日時:2007/12/06 17:33

<html>


<head>
<title>
ASPテスト。
</title>
</head>
<body>
ぼでぃー。<BR>
<%
response.write("ぼでぃー。。。")
%>
</body>
</html>



上だけのようなファイル作って、一度表示することを確認してから、ASPの部分を追加しつつ、どこでエラーが発生しているのかって確認のしかたもアリかな。
    • good
    • 0

再びこんちくは。

(そろそろこんばんちくは?

>>ASPは初心者です。
下記のソースから、入力した名前を実行ボタンを押すことで検索してきて表示させたい。
となると、今度はHTMLの方のお勉強になりそうですね。

Formタグのお勉強と、POST送信、GET送信の使い方あたりのお勉強をしてみることをオススメします。

http://www.kanzaki.com/docs/html/htminfo31.html


>>またまた丸投げのようですが、よろしくおねがいします。
自分の性格上、ソース書いて、はいどうぞ~ってのはあんましやらないので。。。
がんばってください。

ちなみに、自分はAccessのDBからASP画面での表示に最初やった頃は丸一日かかったので、質問者さんは随分速いほうだと思うのでがんばってください^^;
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ファイルを2つにしました。
1つめのファイルで「氏名」を入力、
2つめのファイルでFormの値をGETすればいいのかと思いますが、
GETのしかたがわかりませんでした。
どなたかアドバイスをお願いします。

****1.htm****
<form method="POST" action="2.asp">
<input name="simei" type="text">
<input type="submit" value="実行">
</form>

****2.asp****
Set db=Server.CreateObject("ADODB.Connection")
db.Provider = "Microsoft.Jet.OLEDB.4.0"
db.ConnectionString = Server.MapPath("test.mdb")
db.open

***1.htmで入力されたデータをクエリに反映させたい*****
Set rs = db.Execute("SELECT …… WHERE ((test.氏名)='simei')")

Response.Write "<TABLE>"
Response.Write "<TR>"
Response.Write "<TD>氏名</TD>"
Response.Write "<TD>住所</TD>"
Response.Write "<TD>TEL</TD>"
Response.Write "</TR>"

Do While rs.EOF = False
Response.Write "<TR>"
Response.Write "<TD>" & rs.Fields.Item("氏名") & "</TD>"
Response.Write "<TD>" & rs.Fields.Item("住所") & "</TD>"
Response.Write "<TD>" & rs.Fields.Item("TEL") & "</TD>"
Response.Write "</TR>"
rs.MoveNext
Loop
Response.Write "</TABLE>"
rs.Close
db.Close
Set db = Nothing

お礼日時:2007/12/06 18:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!