以下のようなテーブルがあります。
BookID,CategoryIDは一意な値です。
BooksDataをある条件で抽出するSQLを発行した際、
例えば300番のBookIDにはCategoryIDが複数あると
結果は300のレコードが複数分表示されます。
BooksIDが同じ値の場合、nextして、重複しない値になるまでnextさせ、結果としてBooksIDの値が重複しない結果を表示したいと考えております。
しかし、内側にあるDoWhile-Loop文で不明なエラーとなります。外側のDoWhile-Loop文をコメントアウトされると正常にnextできているようです。原因について推測できることはございますでしょうか。
[BooksData]
BookID
ISBN
Title
[BooksCategory]
BookID
CategoryID
[BooksM_Category]
CategoryID
CategoryName
Do While Not rs1.EOF
'BooksDataを表示
Response.Write("BookID:")
Response.Write(rs1("BookID")&"<br>")
'300番がはいっている
bid = rs1("BookID")
'ここでエラーになる
Do Until rs1("BookID") > bid
rs1.MoveNext
'最初のDoWhile-Loopをコメントアウトされると301が表示される。
'Response.Write(rs1("BookID"))
Loop
Loop
No.1ベストアンサー
- 回答日時:
'データが取得できたら、出力
If rs1.EOF = False then
'先頭のIDを比較用に確保
bid = rs1("BookID")
'1行目のタイトルを出力
Response.Write("BookID:")
'1行目のBooksDataを出力
Response.Write(rs1("BookID")&"<br>")
'データ件数分ループ
Do Until rs1.EOF
'確保したIDと現在行のIDを比較
'→一致する場合は出力しない
If rs1("BookID") <> bid then
'違う場合
'比較用ID確保
bid = rs1("BookID")
'タイトル出力
Response.Write("BookID:")
'BooksDataを出力
Response.Write(rs1("BookID")&"<br>")
End If
'次のデータへ
rs1.MoveNext
Loop
でいけるかと。
でも、BookIDだけを出力させるSQLを組んでいるのであれば、
SELECT DISTINCTすれば済むだけかと。
前段がよくわからないので、とりあえずロジックで対応してみました。
間違えてたら自己責任で直してください(^^;;;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby VBA 2 2023/01/14 14:14
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- PHP preg_matchで Warning: Undefined variableが出ます 1 2022/11/15 17:06
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
詳しくないので、どなたかお教...
-
VBA レジストリの値の読み方に...
-
コンセントの電力は入力と出力...
-
TV出力ポートをOFFにすれば良い...
-
4Kの外部モニターに出力すると...
-
COBOLのMOVEで桁数が異なる場合
-
AIに回答させるって
-
printfの書式%.*s
-
cout と cerrの違い
-
プログラムについての質問です...
-
printfとputcharの違いは
-
OBS配信すると、マイクが途切れ...
-
ExcelマクロでIEのHP上のダウン...
-
C++の’ \\n’と ’endl’ の違いに...
-
VBAでテキスト出力時のスペース...
-
\\00.入力先ディレクトリ上でWO...
-
【エクセル、並び替えについて】
-
Windows Formアプリからコンソ...
-
エクセルマクロで出力行の増や...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
MMDでavi出力が出来ない
-
プログラムについての質問です...
-
コンセントの電力は入力と出力...
-
AIに回答させるって
-
OBS配信すると、マイクが途切れ...
-
VBAでテキスト出力時のスペース...
-
cout と cerrの違い
-
アクセスでエクセルに出力する...
-
printfとputcharの違いは
-
ACCESS クエリ→フォーム...
-
VBAのExecメソッドで画面を非表...
-
COBOLのMOVEで桁数が異なる場合
-
テキストファイルから特定の文...
-
VBAで有効数字の設定
-
coutで出力した文字を消去する...
-
Windows Formアプリからコンソ...
-
KEYENCEのシーケンスプログラム...
-
CRC16計算について
おすすめ情報