dポイントプレゼントキャンペーン実施中!

ASP初心者です。
今、ディレクトリにあるデータベース名を取得してプルダウン表示し、選択すると更にその中のテーブル・クエリ名を取得してプルダウン表示するページを作りました。そして、テーブル・クエリ名から一つを選択すると、その内容を表として表示させるページを作りたいのですが、テーブル・クエリ名を選択、内容を表示、の部分でエラーが出てしまいます。うまくプルダウンで選択した値をうまく引き渡せてないのが原因だと思うのですが、その部分の記述がうまくできません。どなたか、ご教授お願いします。

A 回答 (2件)

上のソースでテーブル名を選択肢、


下のソースで選択したテーブルを表示するんですね?

細かいですが、上のソースの

<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をブラウザに表示してして見てください)
    • good
    • 0

>うまくプルダウンで選択した値をうまく引き渡せてないのが原因だと思う



ソースはどのように書いていますか?
どう記述しているかが分らなければアドバイスのしようがありません。

また、実行する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>

補足日時:2002/11/15 16:21
    • good
    • 0

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