- 締切済み
値の引き渡し・・?
ASP初心者です。 今、ディレクトリにあるデータベース名を取得してプルダウン表示し、選択すると更にその中のテーブル・クエリ名を取得してプルダウン表示するページを作りました。そして、テーブル・クエリ名から一つを選択すると、その内容を表として表示させるページを作りたいのですが、テーブル・クエリ名を選択、内容を表示、の部分でエラーが出てしまいます。うまくプルダウンで選択した値をうまく引き渡せてないのが原因だと思うのですが、その部分の記述がうまくできません。どなたか、ご教授お願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- mangetsu_k
- ベストアンサー率40% (33/81)
上のソースでテーブル名を選択肢、 下のソースで選択したテーブルを表示するんですね? 細かいですが、上のソースの <INPUT TYPE="hidden" name="dirname" value=" & dirname & "> <INPUT TYPE="hidden" name="dbname" value=" & dbname & "> <INPUT TYPE="hidden" name="tblname" value=" & selecttbl & "> <INPUT TYPE="hidden" name="act" value="tblsel"> は問題なく表示されていますか? (ブラウザからソースの表示で見てください。) 下のソースの StrSQL = "select * from "& table &" " tableはちゃんと受けとっていますか? (StrSQLをブラウザに表示してして見てください)
- mangetsu_k
- ベストアンサー率40% (33/81)
>うまくプルダウンで選択した値をうまく引き渡せてないのが原因だと思う ソースはどのように書いていますか? どう記述しているかが分らなければアドバイスのしようがありません。 また、実行するSQL文を表示すると、どの様に表示されます?
補足
dirname = Request("dirname") dbname = Request("selectdb") If dirname = "" or dbname = "" Then dirname = Server.Mappath("../../DB/") End If dbpath = dirname & "\" & dbname tablename = Request("tablename") sub1 = Request.Form("sub1") %> データベース名 <% Response.Write Request.Form("selectdb") Set ObjDB= Server.CreateObject("ADOX.Catalog") ObjDB.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & dbpath %> <br><br> <% 'テーブル一覧の表示 'For Each f in ObjDB.Tables 'If f.Type <> "SYSTEM TABLE" Then ' If f.name <> "MSysAccessObjects" Then Response.Write"テーブル一覧" Response.Write "<br><SELECT name=""table"" & size=""10"">" For Each f in ObjDB.Tables If f.Type <> "SYSTEM TABLE" Then If f.name <> "MSysAccessObjects" Then Response.Write "<OPTION value=" & f.Name & ">" & f.name End If End If Next Response.Write "</SELECT>" ' End If 'End If 'Next 'オブジェクトを解放します。 Set ObjDB = Nothing %> <p> <INPUT TYPE="submit" name="tblsel" value="テーブル表示"><br><br> <INPUT TYPE="submit" name="" value="テーブル削除"> <INPUT TYPE="hidden" name="dirname" value=" & dirname & "> <INPUT TYPE="hidden" name="dbname" value=" & dbname & "> <INPUT TYPE="hidden" name="tblname" value=" & selecttbl & "> <INPUT TYPE="hidden" name="act" value="tblsel"> </FORM> 上のソースから下のソースへという流れです。 <% Set ObjConn = Server.CreateObject("ADODB.Connection") ObjConn.open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & _ server.Mappath("../../DB/& dirname &") Set ObjRS = Server.CreateObject("ADODB.Recordset") StrSQL = "select * from "& table &" " ObjRS.Open StrSQL,ObjConn %> <table border="1"> <tr><% For i = 0 to ObjRS.Fields.Count - 1 %> <td> <INPUT TYPE="text" size="13" value="<% = ObjRS.Fields(i).name %>"></td> <% Next %> </tr> <% Do until ObjRS.eof %> <tr> <% For i = 0 to ObjRS.Fields.Count - 1 %> <td> <INPUT TYPE="text" size="13" value="<% = ObjRS.Fields(i) %>"></td> <% Next %> </tr> <% ObjRS.MoveNext Loop %> </table> <form>