• ベストアンサー

ASPとACCESSで検索画面を作成したい

ASPとACCESSを使って検索画面を作成したいと考えています。 ********ACCESSのテーブル********* 氏名 住所 TEL 佐藤 愛知県 052… 鈴木 東京都 03… 永田 大阪府 06… ASPの画面で、 氏名を入力すると、 住所とTELが表示されるようにしたいと思っています。 ググりましたが、なかなかサンプルが見つかりません。 丸投げのようで恐縮ですが、宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.4

再びこんちくは。(そろそろこんばんちくは? >>ASPは初心者です。 下記のソースから、入力した名前を実行ボタンを押すことで検索してきて表示させたい。 となると、今度はHTMLの方のお勉強になりそうですね。 Formタグのお勉強と、POST送信、GET送信の使い方あたりのお勉強をしてみることをオススメします。 http://www.kanzaki.com/docs/html/htminfo31.html >>またまた丸投げのようですが、よろしくおねがいします。 自分の性格上、ソース書いて、はいどうぞ~ってのはあんましやらないので。。。 がんばってください。 ちなみに、自分はAccessのDBからASP画面での表示に最初やった頃は丸一日かかったので、質問者さんは随分速いほうだと思うのでがんばってください^^;

smorgas030
質問者

お礼

回答ありがとうございます。 ファイルを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

その他の回答 (3)

  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.3

<html> <head> <title> ASPテスト。 </title> </head> <body> ぼでぃー。<BR> <% response.write("ぼでぃー。。。") %> </body> </html> 上だけのようなファイル作って、一度表示することを確認してから、ASPの部分を追加しつつ、どこでエラーが発生しているのかって確認のしかたもアリかな。

  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.2

こんにゃくは。 >>ODBCの設定は完了しています。 動作させる環境は整っている前提でいいのでしょうかね? IISだとか、ASPのバージョンだとか。。。 とりあえず。 '##### レコードセットのオープン ##### から '##### コネクションのクローズ ##### objCon.Close Set objCon = Nothing までの間を全部削除して、「データベースの接続定義」だけと、HTMLの本文だけで表示が可能なのかどうかをまず確認。 できるようなら、次にレコードセットのオープン部分を追加して、オープンできるか確認。 次にレコード件数を取れるか。。。 レコードの中身が表示できるか。。。 まぁ、地道に上から表示させつつ、どこでエラーが出てるのか調べるしか。

smorgas030
質問者

お礼

回答ありがとうございます。 とりあえず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>

  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.1

http://www.site-cooler.com/kwl/asp/ どうぞ。 勉強し始めの頃よく使いました。忘れたときとかもよく見ますが。 ASPとAccessで探さないで、ASPのみでググった方が、ついでにDBへの接続方法~って事で載ってる場合が多々あります。

smorgas030
質問者

お礼

回答ありがとうございます。 とありあえず、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>

smorgas030
質問者

補足

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

関連するQ&A

  • Accessのレポート、表示方法について

    初心者です。宜しくお願いします。 Accessのレポートで、 住所・氏名が同じ人(同一人物)は、住所・氏名を表示しないようにしたい時は、 どうしたらいいでしょうか? 下段の状態にしたいのですが・・・ 【住所】 【氏名】 【品名】 【金額】 東京都  佐藤  A商品  500 東京都  佐藤  B商品  200 東京都  佐藤  C商品  180 【住所】 【氏名】 【品名】 【金額】 東京都  佐藤  A商品  500            B商品  200            C商品  180

  • ACCESSのテーブル【住所録】で名字毎に何人いるかカウントしたい

    技術が未熟なため、大変困っています。助けてください。 MS ACCESS2002 のデータベースで【住所録】があるとします。 【住所録】テーブルには『氏名』、『住所』の2つのフィールドがあります。 『氏名』フィールドには鈴木_太郎、田中_幸子、佐藤_一郎、等アンダーバーで名字と名前を区切ったフルネームが入っています。 ここからが質問です。 『氏名』の名字だけをグループ化してカウントして新たなクエリーを作れないでしょうか。 例えば、【住所録】を元に、 名字(フルネームの名字のみグループ化)  人数(名字をカウント) 田中                  110 鈴木                  90 佐藤                  78 というクエリができないでしょうか。 あと何かクエリ以外で別のアプローチもあればご教授頂きたいです。 宜しくお願いします。

  • Accessで一致データを抜いて項目をずらす方法

    Access2000を使用して、テーブル1のフィールド2~5で、テーブル2と一致したフィールドを抜いて項目をシフトさせたいのですが、どのような方法があるのでしょうか。 <元テーブル>    フィールド→ 氏名, 名1, 名2, 名3, 名4 ・テーブル1の項目 山田,花子,次郎,三郎,四郎           鈴木,五郎,六郎,七朗,和子           佐藤,和子,一郎,太郎,四郎 ・テーブル2の項目 山田,花子           鈴木,七朗           鈴木,和子          佐藤,一郎           佐藤,四郎           佐藤,和子 <変換後テーブル>テーブル1を基準として   フィールド→ 氏名, 名1, 名2, 名3, 名4           山田,次郎,三郎,四郎,null           鈴木,五郎,六郎,null,null           佐藤,太郎,null,null,null 分りずらい説明で申し訳ありませんが、宜しくお願いします。

  • アクセス2007 クエリの作り方

    アクセス2007 クエリの作り方 テーブルA 氏名  生れ年 ---------------- 佐藤   1990 鈴木   1950 斎藤   2000 伊藤   1970 テーブルB ------------------ 年齢   項目 10    少年 20    成人 60    還暦 とあった時 テーブルAを元に「クエリ1」で「年齢」を追加し 年齢: Year(Date())-[生れ年]としました クエリ1 氏名  生れ年 年齢 -------------------- 佐藤   1990  20  鈴木   1950  60 斎藤   2000  10 伊藤   1970  40 更に、「テーブルB」の年齢と「クエリ1」の年齢をリレーション(多対1?)して「クエリ2」としました。 クエリ2 氏名  生れ年 年齢 項目 --------------------------- 佐藤   1990  20 成人 鈴木   1950  60 還暦 斎藤   2000  10 少年 伊藤   1970  40「空欄」 アクセスはまだ良く理解していないのですが、これだとレコードの更新ができません。 フォームでレコードセットを「ダイナセット (矛盾を許す)」にすると更新はできますが不安です。 こんな時「ダイナセット (矛盾を許さない)」で行い場合どんなリレーションにしたら良いのでしょうか?    

  • ACCESS2000検索の指示

    ACCESS2000は超初心者です。 先日から取引先住所録を作り始めました。 テーブルには「取引先住所録」という名前で 取引先住所録ID、略称、会社名、部署名、氏名、郵便番号、住所、TEL、FAX、携帯、メールアドレス、備考 という、12項目を作りました。 略称は例えば「なにぬねの株式会社」であれば「ナ」というように、頭文字をカタカナ1文字で分類しています。 フォームは完成しています。 やりたいことはフォームに略称を手入力する欄を作っておき、その略称に値する会社名と氏名をコンボボックスに表示させ、そのリストからクリックしたものの情報を表示したいと考えております。 何処にどの様に指示をすればいいのか判らないのです。 よろしくお願いいたします。

  • accessのデータを印刷する時…

    access始めたばかりの初心者です。 行き詰ってしまい、初歩的な質問で大変恐縮ですが、ご存知の方がいましたら教えてください。 accessで管理している住所宛にはがきをだしたいのですが、 例えば、『テーブル住所録』に、住所・氏名1・氏名2のフィールドがあり、氏名1に父、氏名2に母の名前を入力し、父と母別々にはがきを出したいのです。 レポートに住所、氏名1を入れると氏名2の母ははがきを出せないですし、氏名1、氏名2両方を入れると宛名に2人の名前が入ってしまい、どうしたら良いか困っています。 また、住所は同じところですので、父にはがきを出すときも母にはがきを出すときも同じ『テーブル住所録』の住所を使用したいのですが、どのように設定したらよいのでしょうか? そもそも1つのテーブルに作らずにいたほうがよいのでしょうか…。 わかりずらい説明で申し訳ありませんが、よい案があれば教えて頂けると助かります。 よろしくお願いします。

  • ACCESSのテーブルをHTMLファイルで出力したい

    ACCESSのテーブルをHTMLファイルで出力したいと考えています。 VBAでプログラムを作成すればいいのでしょうか。 ACCESSははじめたばかりでよくわかりません。 丸投げのようで恐縮ですが、宜しくお願い致します。 *************************************** テーブル1 *************************************** ID 名前 住所 1 伊藤 愛知 2 加藤 大阪 3 稲垣 東京 … *************************************** 2.html *************************************** <html> <body> <table> <tr> <td>ID</td> <td>名前</td> <td>住所</td> </tr> <tr> <td> … ここにテーブル1のデータを出力したい … </table> </body> </html> *************************************** 2.htmlのファイルを出力するようなことをしたいと考えています。 宜しくお願いします。

  • クエリで複数項目を昇順後、連番を付ける方法

    お世話になります。 表題の通り、ACCESSクエリで連番を付けるにはどうすれば宜しいでしょうか? 調べたのですが、よく分からない為、 関数又は、SQLに詳しい方、よろしくお願いいたします。 (下記もDCOUNT関数でできますか?) テーブル名:T_A --------------------------- 番号   名前   ランキング 1     佐藤    1 2     鈴木    2 3     佐藤    1 4     鈴木    2 5     佐藤    2 --------------------------- 上記のテーブルがあったとして、特産品及び、ランキングを昇順すると、 下記の通りとなります。 --------------------------- 番号   名前   ランキング 3     佐藤    1 1     佐藤    1 5     佐藤    2 4     鈴木    2 2     鈴木    2 --------------------------- ここで、連番という項目を追加して、上から1,2,3と連番を付けるにはどうすれば 宜しいでしょうか。 ↓↓↓↓↓↓↓ (得たい結果) ------------------------------. 番号   名前   ランキング 連番←追加項目 3     佐藤    1       1 1     佐藤    1       2 5     佐藤    2       3 4     鈴木    2       4 2     鈴木    2       5 ------------------------------ 分かる方、教えてください。 よろしくお願い致します。

  • アクセスのクエリで重複しているデータについて

    テーブルの一部分のフィールドを使ってクエリAを作成しています。 [クエリA] 番号 氏名  郵便番号 住所     電話番号 子供 1  田中守  111-0000 東京都・・・ 000-0000 章 2  佐藤健  122-0001 神奈川県・・・ 001-0001 花子 3  田中守  111-0000 東京都・・・ 000-0000 陽子 これを重複しているデータを省くのですが、[子供]の名前はすべて取り出したいと思っています。 どの様にすれば良いか教えて頂けないでしょうか? 氏名  郵便番号 住所     電話番号 子供 田中守  111-0000 東京都・・・ 000-0000 章,陽子 佐藤健  122-0001 神奈川県・・・ 001-0001 花子 最終的には、宛名印刷を行った時に、子供の名前も連名で表示したいと思っての事です。 現在、クエリで行っておりますが、クエリでなくても構いません。 足りない情報はすぐに補足致しますので、お手数ですが、どうぞよろしくお願い致します。 Access2003を使用しております。

  • Accessについて

    Access初心者です。 Accessで顧客管理をするものを作成しているのですが 顧客のデータはエクセルよりテーブルへインポートしました。 (顧客名、ふりがな、住所、TEL。FAXなど) その後、個々の顧客のデータを検索して内容を観たい場合は フォームで作成すればよいのでしょうか? テーブルよりウィザードでフォームを作成して 「顧客名」の欄でコンボボックスで顧客名を選択して 個々の顧客の内容を観たいのですが、コンボボックスで選択しても 顧客名が変わるだけで、住所やその他の内容がついてきません。 フォームの画面が見やすくて良いのですが、フォームとは入力画面で 内容を確認する画面ではないのでしょうか? それともプロパティ他で何か設定する所があるのでしょうか? よろしくお願いします。

専門家に質問してみよう