- ベストアンサー
ACCESS+ASP検索後テキストボックスへ値を表示・編集
ACCESS+ASP(IIS)で使用しています。 前頁touroku.aspでID、名前、会社名、所属を入力してACCESSのテーブルに保存してあるレコードを、検索フォームkensaku.aspによりIDで検索した、データの結果を結果ページkekka.aspのテキストボックスで表示し編集したい 検索することまでは、できたのに結果ページでテキストボックスに表示し編集できない
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 もしかしてSQL文が間違ってるのかな?と思い 試してみましたが、こちらでは問題なく動きました。 後はODBCの設定かな?と思ったのですが、 touroku.aspでの登録はうまくいってるようなので これも原因とは考えられないし・・・ このくらいしか思いつかないです。お役に立てなくてすみません。また、何か思い当たったら書き込みさせて頂きます。 PS.前回コメントの下から4行目 <Input Type ="text" Name ="txtID" Value="<% Rs("ID") %>>は <Input Type ="text" Name ="txtID" Value="<% =Rs("ID") %>> の間違いです。重ね重ねすみません。
その他の回答 (3)
- keirika
- ベストアンサー率42% (279/658)
こんばんは。お返事が遅くなってすみません。 ●kensaku.asp <Form Action ="hyouji.asp" method="post"> <Input Type = "text" Name = "txtID"> <Input Type = "submit" Value ="検索"> </Form> ●hyouji.asp <% Dim InputID 'kensaku.aspで入力したIDを取得 Dim Conn 'コネクションをオープン Dim Rs 'レコードセット Dim SQL 'SQL文格納 InputID = Request("txtID") SQL ="SELECT ID, 名前, 会社名, 所属 " & _ "FROM テーブル名 " & _ "WHERE ID = " & InputID Set Rs = Server.CreateObject("ADODB.Recordset") Rs.Open SQL, "データベース名" %> <Input Type ="text" Name ="txtID" Value="<% Rs("ID") %>> 上記の要領で、名前・会社名・所属名等を呼び出す。 <% Rs.Close %> これで表示されると思います。
補足
keirikaさん お忙しいなか、お返事有難うございます。 お返事が来るまで自分なりに色々と調べてみたのですが、keirikaさんの方法で試してみました。 ですがRs.Open SQL, "データベース名"の部分でエラーになってしまいます。 (0x8004005)データソース名および指定された規定のドライバが見つかりません。と表示されます。 データベース名の指定を変更してもうまく行かず、http://asp.dataweb.ne.jp/text/new_page_20.htmのサイトの方法を編集したらうまく行くかと悪戦苦闘しています。 お忙しいかとは思いますが宜しくお願いします。
- keirika
- ベストアンサー率42% (279/658)
テキストボックスに値が表示されない場合、 <Input Type ="text" Name="ID" Value=""> の「Value」に検索した値を格納して下さい。 内容の編集はテキストボックスの値を書きかえて、 登録のSQL「INSERT INTO」を「UPDATE」にすれば書き込めると思うのですが・・・
補足
keirikaさん 回答有難うございます。 基本的に事で引っかかっていたようです。 他のページを作成したときにSQL「INSERT INTO」は使用していたのですが、「UPDATE」は思いもよらなかったです。 ここまでは出来ましたが、前の検索ページ(kensaku.asp)でIDで検索したものを表示ページ(hyouji.asp)で表示できないのはなぜでしょう・・・。 データベースにも接続しているんんですが・・・。 お願いします。
- O_cyan
- ベストアンサー率59% (745/1260)
例えば <FORM METHOD="GET" ACTION="kensaku.asp"> [ID:] <INPUT TYPE="Text" NAME="[ID:] "><P> ・ こんな感じでkensaku.aspを排出しているのでしょうか。 排出されたkensaku.aspにはエラー等でないのでしょうか? エラーもなく何も表示されないのでしょうか。
補足
O_cyanさん レス有難うございます。 ちょっと説明が足りなかったようです。ごめんなさい。 検索フォームでIDまたは名前を入力して、ACCESSのデータベースに接続しIDまたは名前と一致したものを一覧表に表示し、最終的には一覧表に編集ボタンを設けて、その画面の中または変更画面を表示して入力して変更できるようにしたいのです。 自分では登録フォーム・確認画面・完了画面と検索して1レコードをカード形式では表示することはできるのですがイマイチ編集・変更に関して出来ないのです。 ご協力お願いしますm(__)m
お礼
keirikaさん 毎々有難うございます。感謝感謝です。m(_ _)m 結果私の方ではRs.Open SQL, "データベース名"をRs.Open"データベース名"と変更したところ動きました。うむ~なぜだろう~。 もう少し粘ってみます。
補足
keirikaさん お世話になってます。 結局、失敗でしか表示されず、内容を下記に変更したらうまくいきました。環境も左右してるのかもしれませんね。 有難うございました。 別枠でまた質問させていただきます。 そのときは宜しくお願いします。 <%@ Language="VBScript" %> <% '前のページのフォームの値を取得 pickup = Request.Form("uID") 'MS Access Database Filename MSACFN = Server.MapPath("db名.mdb") 'Data Source Name DBFile="Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MSACFN 'Data Output Set DBCon = Server.CreateObject("ADODB.Connection") DBCon.Open DBFile sql="select * from table名 where uID = '"&pickup&"'" Set DBexe = DBCon.Execute(sql) %> <HTML> <BODY> <title>データ変更</title> <style type="text/css"> <!-- .style3 { font-size: 18pt; color: #0000FF; } --> </style> <span class="style3">登録データの変更</span> <form method="POST" action="接続先.asp"> <table width="519" border="0"> <tr><td width="200">ID </td><td width="280"><%= DBexe("uID") %> </td></tr> <tr><td>氏名 </td><td><input type="text" size="70" name="NAME" value="<%= DBexe("NAME")%>"></td></tr> <tr><td>コード </td><td><input type="text" size="70" name="Code" value="<%= DBexe("Code")%>"></td></tr> <tr><td> </td> <td align="right"> <input type="submit" value="登録" onClick='return checkForm()'> <input type="reset" value="リセット"></td></tr><br> </table> <INPUT TYPE="button" name="movefirst" onClick="ShowPrev()" value="先頭のレコード"> <INPUT TYPE="button" name="moveprevios" onClick="ShowPrev()" value="前のレコード"> <input TYPE="button" name="movenext" onClick="ShowNext()" value="次のレコード"> <input TYPE="button" name="movelast" onClick="ShowNext()" value="最終のレコード"> </form> <input name="uID" type="hidden" id="uID" value="go"><br> <input type="hidden" name="form" value="go"> <br> </body> </html>