ASPでmdbファイルからデータを抽出したいのですが、うまくいきません。
TABLE1に以下のレコードがあるとします(MS-ACCESS)
ID,RANK1,RANK2(TABLE1)
1,1,1
2,1,2
3,1,3
4,2,1
5,2,2
6,2,3
RANK1、RANK2は以下のテーブルを参照し
RANK,RANK_NAME(TABLE2)
1,上
2,中
2,下
このように表示させたいのです。
1,上,上
2,上,中
3,上,下
4,中,上
5,中,中
6,中,下
しかし、ACCESSのクエリーでは動作するのですが、ASPでは上中下が表示されません。
以下ASPで記述したSQL文です
SELECT TABLE1.ID, RANK1.RANK_NAME, RANK2.RANK_NAME
FROM (TABLE1 INNER JOIN TABLE2 AS RANK1 ON TABLE1.RANK1 = RANK1.RANK) INNER JOIN TABLE2 AS RANK2 ON TABLE1.RANK2 = RANK2.RANK;
何か悪いのでしょうか?
宜しくお願いいたします。
No.3ベストアンサー
- 回答日時:
#2です。
すみません!AS見落としてました。SQL文は合ってますね。取り出しの記述はどのように記述してますか?
下記のような記述で表示されましたが・・・
試してみてください。
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\bks\main.mdb;"
sql="SELECT TABLE1.ID, RANK1.RANK_NAME, RANK2.RANK_NAME "
sql=sql&"FROM (TABLE1 INNER JOIN TABLE2 AS RANK1 ON TABLE1.RANK1 = RANK1.RANK) INNER JOIN TABLE2 AS RANK2 ON TABLE1.RANK2 = RANK2.RANK;"
Set rs=cn.Execute( sql )
%>
<table>
<%Do While Not rs.EOF'パターン1======================================%>
<tr>
<td><%=rs.Fields("ID")%></td>
<td><%=rs.Fields("RANK1.RANK_NAME")%></td>
<td><%=rs.Fields("RANK2.RANK_NAME")%></td>
</tr>
<%rs.Movenext
Loop
%>
</table>
<%rs.MoveFirst'パターン2=======================================
Do While Not rs.EOF
Response.Write "<table><tr>"
For Each fd In rs.Fields
Response.Write "<td>"&fd.value&"</td>"
Next
Response.Write "</tr></table>"
rs.Movenext
Loop
%>
No.2
- 回答日時:
SQL文の記述の仕方がちょっと違うように思います。
selectで「RANK1.RANK_NAME」と指定してますが、
RANK1テーブルはないですよね?(RANK1はフィールド名ですよね?)
「○○.△△」の○○はテーブル名を、△△はフィールド名を指定します。
下記のSQL文で試してみてください。
SELECT TABLE1.ID, TABLE2.RANK_NAME AS RANK_NAME1, TABLE2_1.RANK_NAME AS RANK_NAME2
FROM (TABLE1 INNER JOIN TABLE2 ON TABLE1.RANK1 = TABLE2.RANK) INNER JOIN TABLE2 AS TABLE2_1 ON TABLE1.RANK2 = TABLE2_1.RANK;
結果は「ID」,「RANK_NAME1」,「RANK_NAME2」で取り出せます。
Accessのクエリーで動作したとのことですが、
クエリーのデザイン画面でメニューバー「クエリ」→「SQL」→「パススルー」を
選択するとそのSQL文が表示されますので、そのままコピーして
ASPに記述するとたいてい動きますよ。
(中にはASP用に変更しなければならない場合もありますが)
参考になれば幸いです。
この回答への補足
RANK1.RANK_NAMEの”RANK1”は”TABLE2 AS RANK1”のつもりで書いています。
もしかしたら、新しく名付けたテーブル名とフィルド名が同じにしてしまった事が、動作しない原因でしょうか?
お手数ですが、テーブル名を
TABLE1→LIST
TALBE2→RANK_CD
とした場合の,書き方を教えていただけませんか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- PHP 【スプレッドシート】順位のつけ方 2 2022/08/17 13:27
- 数学 線形代数 正則 階数 3 2023/03/22 07:52
- 工学 以前、線形代数からフーリエ級数展開を導く上で 式v=(v, e1)e1+(v, e2)e2+…+(v 6 2022/06/29 17:24
- 工学 ちなみになぜv=(v・e1)e1+(v・e2)e2はe1やe2が、正規直交基底でないと成り立たないと 2 2022/12/22 17:22
- その他(プログラミング・Web制作) x86_32のGASの擬似命令 3 2023/06/07 19:55
- Excel(エクセル) エクセルでの勤務表作成、インターバルの設定について 3 2022/06/03 15:35
- 数学 「(((a0)/2)・1, 1) …(a0)/2の1倍と1の内積 =(a0)(1, 1) …1 と1 5 2022/07/05 19:11
- 物理学 波の合成についてです E1(z,t)=A0cos(kz-ωt+Φ) E2(z,t)=A0cos(kz 1 2022/10/10 06:35
- Google Drive MTSファイルについて 1 2023/05/11 15:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
tableにul,または,olを入れられ...
-
テーブルの行を折りたたみたい...
-
線が一番細いテーブル
-
テーブルの装飾
-
テーブルのセルに画像をピッタ...
-
表の1列だけをCSSを使って右揃...
-
TABLEタグでのpadingについて
-
テーブルが崩れる問題について
-
【HTMLタグ】テーブルを教えて...
-
HTML <td></td>タグ セル内余...
-
Dreamweaverで行間の調整
-
DreamWeaverで複数ワードを一気...
-
テーブルの行の高さを指定する...
-
[table] colspanについて
-
TRタグの余白をcssで設定するには
-
CSSで<td>の背景色を変えたい。
-
画像と画像の間の空白
-
tdなどの閉じタグは省略しても...
-
HTMLセル結合にフォームを組み...
-
作った表を横一列に並べる
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TRタグの余白をcssで設定するには
-
tableにul,または,olを入れられ...
-
テーブルの任意の列を非表示に...
-
テーブルのヘッダとボディの幅...
-
cssで、表示されるテキストによ...
-
HTML <td></td>タグ セル内余...
-
文字列が入っているtdを削除せ...
-
テーブルのセルに画像をピッタ...
-
テーブルの行を折りたたみたい...
-
テーブルの行の高さを指定する...
-
テーブルの表示がずれます
-
テーブルタグのセルの幅の一部...
-
中に<table></table>が使えるア...
-
逆L字の表(table)組み
-
ホームページ 表の上の余白を...
-
表の中の列の順番を入れ替える...
-
EXCELからhtmlへの変換で罫線が...
-
tableでcolspanを使うと次行以...
-
表の1列だけをCSSを使って右揃...
-
文字の中央そろえを一括で指定...
おすすめ情報