出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

クリックで下の階層のデータを表示する方法   BROWNさん [2001/09/26 12:41:18] [645]
  Re:クリックで下の階層のデータを表示する方法   YasNet(管理人)さん [2001/09/26 13:16:39] [646]
    Re:クリックで下の階層のデータを表示する方法   BROWNさん [2001/09/26 14:35:55] [647]
      Re:クリックで下の階層のデータを表示する方法   YasNet(管理人)さん [2001/09/26 14:44:55] [648]
        Re:クリックで下の階層のデータを表示する方法   BROWNさん [2001/09/26 15:52:50] [649]
          Re:クリックで下の階層のデータを表示する方法   YasNet(管理人)さん [2001/09/26 16:24:47] [650]
            Re:クリックで下の階層のデータを表示する方法   BROWNさん [2001/09/26 16:38:49] [651]
          Re:クリックで下の階層のデータを表示する方法   YasNet(管理人)さん [2001/09/26 17:30:07] [652]
            Re:クリックで下の階層のデータを表示する方法   BROWNさん [2001/09/26 17:38:38] [653]

[645] クリックで下の階層のデータを表示する方法
投稿者:BROWNさん 2001/09/26 12:41:18
ASPは最近使い始めたばかりなのですが
アドバイスいただきたいのですが。

データベース(Access2000)に「Tbl_分類」があります。
「Tbl_分類」の構成は
「分類」フィールド:食品、衣類、雑貨等
「品物」フィールド:食品であれば肉、野菜、果物等の
データが入力されています。

このテーブルをもとに
「分類」フィールドをグループ化して分類のリストを表示させています。
次に今表示させている「分類」の項目をクリックし、「品物」フィールドから
該当する品物を表示させたいのです。

例えば上のデータを使うと
始に食品、衣類、雑貨が表示されていて
食品をクリックすると肉、野菜、果物のリストに
更新されるといった感じにしたいのです。

説明が下手でわかりにくいかもしれませんが
不明な部分は後で補足致します。

なにぶん初心者なものでできればわかりやすくアドバイスいただけると
幸いです。よろしく稲該します。

[646] Re:クリックで下の階層のデータを表示する方法
投稿者:YasNet(管理人)さん 2001/09/26 13:16:39
こんいちは YasNetです
 
> データベース(Access2000)に「Tbl_分類」があります。
> 「Tbl_分類」の構成は
> 「分類」フィールド:食品、衣類、雑貨等
> 「品物」フィールド:食品であれば肉、野菜、果物等の
> データが入力されています。
ご自身でもかかれていますが、今ひとつやりたい事がはっきりとは見えていません。
 
分類自体も、階層化されていると考えてよいのでしょうか?
それならば、テーブルの設計を見直したほうが良いと思います。
分類テーブルは分類コードと分類名と親分類コード
品物テーブルは分類コードと品物コードと品物名
このような形式でデータを持つと簡単に実現できるのではないでしょうか?
 
では では

[647] Re:クリックで下の階層のデータを表示する方法
投稿者:BROWNさん 2001/09/26 14:35:55
YasNetさん、早速のレスありがとうございます。
本当に説明が下手で申し訳ありません。

テーブルはYasNetさんがおっしゃっている
品物テーブルに似ており以下のような
単純なものです(実際にはフィールド数はもう少し多いのですが)。

Tbl_分類
[分類F] [品物F]
[食品]  [肉]
[衣類]  [シャツ]
[食品]  [野菜]
[雑貨]  [ノート]
とこんな感じになっています。

で、以下のような感じで分類項目を表示させています。
set cn = server.createobject("ADODB.Connection")
cn.open "販売管理","",""
set rs = cn.execute("SELECT 分類 from Tbl_分類 group by 分類")

次に表示した分類項目をクリックして該当分類項目の品物を
表示させたいのです。

例えば上のデータを使うと
始に「食品」「衣類」「雑貨」を表示させ
「食品」をクリックすると「肉」「野菜」が表示する。

「食品」を選んだ後、それをkeyとして次の抽出に用いることはできるのでしょうか?

もう一度アドバイスいただけないでしょうか?


[648] Re:クリックで下の階層のデータを表示する方法
投稿者:YasNet(管理人)さん 2001/09/26 14:44:55
BROWN様 こんにちはYasNetです
 
> 始に「食品」「衣類」「雑貨」を表示させ
> 「食品」をクリックすると「肉」「野菜」が表示する。
> 「食品」を選んだ後、それをkeyとして次の抽出に用いることはできるのでしょうか?

可能ですよ。
サブルーチンを自分から呼び出す事で可能です。(再帰呼び出し)
あまりにも階層を深く潜るのであれば、処理方法を変更しないといけませんが・・・ 
 
では では

[649] Re:クリックで下の階層のデータを表示する方法
投稿者:BROWNさん 2001/09/26 15:52:50
YasNetさん、何度もありがとうございます。
ちょっと自分で作ってみたのですが
sub cat2の
set rs = cn.execute("SELECT 品物 from Tbl_分類 where 分類 = ’" & Request("key") & "’ group by 品物") の部分でエラーになります。
またその他も全く自信がないので一度見ていただけないでしょうか?

<% @LANGUAGE="VBScript" %>
<% Response.Buffer=True %>
<%
mode = Request("MODE")
Select Case mode
Case ""
start
Case "CAT2"
cat2
End Select
%>

<% Sub start() %>

<FONT SIZE=5>分類リスト一覧</FONT><P>
<%
set cn = server.createobject("ADODB.Connection")
cn.open "販売管理","",""
set rs = cn.execute("SELECT 分類 from Tbl_分類 group by 分類")

If rs.EOF then
%>
データはありません。
<% else %>
<%
Do While Not rs.EOF
%>
<A HREF="menu.asp?MODE=CAT2&key=<%= rs("分類") %>"><%= rs("分類") %></A><P>

<%
rs.MoveNext
Loop
End if %>

<%
rs.Close
set rs = nothing
cn.close
set cn = nothing
%>
<% End Sub %>

<% Sub cat2() %>

<FONT SIZE=5>品物リスト一覧</FONT><P>
<%
set cn = server.createobject("ADODB.Connection")
cn.open "販売管理","",""
set rs = cn.execute("SELECT 品物 from Tbl_分類 where 分類 = ’" & Request("key") & "’ group by 品物")
If rs.EOF then
%>
データはありません。
<% else %>

<INPUT TYPE="HIDDEN" NAME="key" SIZE="-1" VALUE="<%= rs("品物") %>">
<%
Do While Not rs.EOF
%>
<A HREF="menu.asp?MODE=CAT3&key2=<%= rs("品物") %>&key=<%= Request("key") %>"><%= rs("品物") %></A><P>

<%
rs.MoveNext
Loop
End if %>
<%
rs.Close
set rs = nothing
cn.close
set cn = nothing
%>

<% End Sub %>

[650] Re:クリックで下の階層のデータを表示する方法
投稿者:YasNet(管理人)さん 2001/09/26 16:24:47
> YasNetさん、何度もありがとうございます。
> ちょっと自分で作ってみたのですが
> sub cat2の
> set rs = cn.execute("SELECT 品物 from Tbl_分類 where 分類 = ’" & Request("key") & "’ group by 品物") の部分でエラーになります。
> またその他も全く自信がないので一度見ていただけないでしょうか?
えっと、その前に何エラーなのでしょうか?

[651] Re:クリックで下の階層のデータを表示する方法
投稿者:BROWNさん 2001/09/26 16:38:49
すいません。
全く自分勝手な書き方ですみませんでした。

エラーは分類リストが表示され
そこで「食品」をクリックすると

Microsoft OLE DB Provider for ODBC Drivers エラー '80040e14'

[Microsoft][ODBC Microsoft Access Driver] クエリ式 '分類 = ’食品' group by 品物' の 文字列の構文エラーです。
と表示されます。




[652] Re:クリックで下の階層のデータを表示する方法
投稿者:YasNet(管理人)さん 2001/09/26 17:30:07
こんんちは YasNet です
 
> set rs = cn.execute("SELECT 品物 from Tbl_分類 where 分類 = ’" & Request("key") & "’ group by 品物") の部分でエラーになります。
 
もし、このソースが単純にコピーしたものなら分類 = ’の'が全角になってます
他の場所も・・・ちぇっくしてみて下さい
 
ソースの内容はチェック出来てません(スミマセン
 
では では

[653] Re:クリックで下の階層のデータを表示する方法
投稿者:BROWNさん 2001/09/26 17:38:38
YasNetさん、お手数お掛けして申し訳ありませんでした。
今後、注意したいと思います。
なお、ご指摘の部分を修正したところ
思い通りに表示してくれました。
なんどもご親切なレスありがとうございました。



TreeBBS For ASP V.0.1.3
Program By YasNet