ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?
スポンサーサイト(詳細
  • Java個別指導IT-Lab. - 誰でも最初は未経験。個別指導でプロへの道が開けます。随時入校可能

質問

QNo.4023919 Access 抽出したデーターの詳細の連続表示
質問者:ja2bzx Filterで抽出した複数のデーターの詳細をそのデーターの順で連続して表示したいのでご指導ください。

F_物件検索  (メインフォーム)
F_検索結果  (サブフォーム用)
sub検索結果 (サブフォーム)
F_店頭用   (詳細表示用)

抽出された最初のデーターの詳細を表示する場合は下記の通りで問題なく動作します。
Private Sub cmd物件詳細_Click()
DoCmd.OpenForm "F_店頭用", acNormal, , "物件番号 = " & Me!sub検索結果.Form!物件番号, acFormReadOnly
End Sub

上記で表示されたF_店頭用の詳細画面に【次へ】のボタンをAccessのマクロで設定しても、表示されるデーターは抽出されたものではなく、テーブルのデーター順に表示されます。
そこで、OpenFormコマンド、他で何とかならないものでしょうか?

下記ではエラーがでます。
Private Sub cmd連続詳細_Click()
DoCmd.OpenForm "F_店頭用", , Me!sub検索結果, acFormReadOnly
End Sub

尚、全てのデーターは下記にあります。
www.ky-housing.jp/oshiete-goo/q-2.accdb
困り度:
  • 困っています
質問投稿日時:
08/05/15 12:43
この質問に対する回答は締め切られました。

回答良回答20pt

ANo.4 >VBAのプログラムだけで抽出しているため、
>詳細表示のフォームにAccessのNEXTボタンを付けた場合、
>抽出したデーターではなく、
>テーブルのデーターをそのまま順次表示してしまいます。

やっぱり意味が判りません。
詳細表示のフォームに WHERE節をしてするのとVBAのプログラムだけで抽出は矛盾。
それに抽出もしていないレコードデータを参照するコマンドボタンの必要性も今一。

ID__fld_1__fld_2
_1__A____________2
_2__B____________1
_3__C____________3

例えば、

Private Sub コマンド0_Click()
  DoCmd.OpenForm "tab1", acNormal, , "fld_2=2"
End Sub

質問文のみで判断すれば、このようにフォーム[tab1]を条件節を指定してオープン。
が、フォーム[tab1]のロードイベントでもレコードソースをセットしている。
ならば、条件節を指定する意味がないです。
どうしても、フォーム[tab1]のロードイベントでレコードソースを設定する必要があれば・・・。

Private Sub コマンド0_Click()
  DoCmd.OpenForm "tab1", acNormal, , , , , _
      "SELECT * FROM tab1 WHERE fld_2=2 ORDER BY fld_2"
End Sub

と、レコードソースそのものをフォーム[tab1]のオープン時に指定。

Private Sub Form_Load()
If Len(Me.OpenArgs & "") Then
Me.RecordSource = Me.OpenArgs
End If
End Sub

Private Sub コマンド8_Click()
DoCmd.GoToRecord , , acNext
End Sub

>尚、全てのデーターは下記にあります。

そんな、得体の知れないファイルをダウンロードする勇気はないです。
簡潔に、解決したい問題点を整理して提示されたし。
「出来ない」という事情説明よりも、解決すべき問題点の提示が肝心。
と、思います。
回答者:Husky2007
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/05/16 10:33
この回答への補足ご指導ありがとうございます。詳細フォームに検索結果のレーコードソースを設定すべく悪戦苦闘中です。(エラー続発)改めてご指導を戴くことになると思いますが、しばらくはいろいろ試してみます。ありがとうございました。
この回答へのお礼サブフォームで抽出したデーターをレコードセットして再利用することには失敗しましたが、詳細フォームを開く際に同一条件で再度フィルターを掛けることで一応目的を達成することができました。ただ、新たな問題が発生しました。

Private Sub 次へ_Click()
DoCmd.GoToRecord , , acNext
End Sub

これで移動はできますが、次のレコードが無いのに「次へ」をクリックするとエラー表示と一緒にプログラムまで表示されてしまいます。そこで、次のレコードがない場合にクリックを無効にしたいのですが、方法はありますか?

回答

ANo.3 >VBAのフィルターで抽出しています。
>従って、クエリーがないので詳細フォームのデーターソースをクエリーにすることができません。
できます
回答者:CHRONOS_0
種類:回答
どんな人:経験者
自信:自信あり
回答日時:
08/05/15 23:59
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

ANo.2 F店頭用のソースを表示したい順番に並べ替えを指定したクエリにしておけばいいのでは
回答者:CHRONOS_0
種類:回答
どんな人:経験者
自信:自信あり
回答日時:
08/05/15 13:52
この回答への補足VBAのフィルターで抽出しています。従って、クエリーがないので詳細フォームのデーターソースをクエリーにすることができません。

抽出結果は検索結果のフォームに表示されているのですが、詳細フォームのプロパティーでデーターソースを検索結果に変えることができないのです。Access2003をご使用でしたら、私のデーター(プログラム)を見て戴ければ私の質問をご理解戴けると思います。
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

ANo.1 >上記で表示されたF_店頭用の詳細画面に
>【次へ】のボタンをAccessのマクロで設定しても、
>表示されるデーターは抽出されたものではなく、
>テーブルのデーター順に表示されます。

抽出されてもいないデータが表示されるなんありえないのでは?
回答者:Husky2007
種類:補足要求
どんな人:一般人
自信:参考意見
回答日時:
08/05/15 13:18
この回答への補足Accessのクエリーには何ら手を加えておりません。VBAのプログラムだけで抽出しているため、詳細表示のフォームにAccessのNEXTボタンを付けた場合、抽出したデーターではなく、テーブルのデーターをそのまま順次表示してしまいます。
この回答へのお礼この回答にお礼をつける(質問者のみ)
スポンサーサイト(詳細
  • Java個別指導IT-Lab. - 誰でも最初は未経験。個別指導でプロへの道が開けます。随時入校可能