電子書籍の厳選無料作品が豊富!

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

A 回答 (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

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

そんな、得体の知れないファイルをダウンロードする勇気はないです。
簡潔に、解決したい問題点を整理して提示されたし。
「出来ない」という事情説明よりも、解決すべき問題点の提示が肝心。
と、思います。

この回答への補足

ご指導ありがとうございます。詳細フォームに検索結果のレーコードソースを設定すべく悪戦苦闘中です。(エラー続発)改めてご指導を戴くことになると思いますが、しばらくはいろいろ試してみます。ありがとうございました。

補足日時:2008/05/19 03:19
    • good
    • 0
この回答へのお礼

サブフォームで抽出したデーターをレコードセットして再利用することには失敗しましたが、詳細フォームを開く際に同一条件で再度フィルターを掛けることで一応目的を達成することができました。ただ、新たな問題が発生しました。

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

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

お礼日時:2008/05/25 05:38

>VBAのフィルターで抽出しています。


>従って、クエリーがないので詳細フォームのデーターソースをクエリーにすることができません。
できます
    • good
    • 0

F店頭用のソースを表示したい順番に並べ替えを指定したクエリにしておけばいいのでは

この回答への補足

VBAのフィルターで抽出しています。従って、クエリーがないので詳細フォームのデーターソースをクエリーにすることができません。

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

補足日時:2008/05/15 23:13
    • good
    • 0

>上記で表示されたF_店頭用の詳細画面に


>【次へ】のボタンをAccessのマクロで設定しても、
>表示されるデーターは抽出されたものではなく、
>テーブルのデーター順に表示されます。

抽出されてもいないデータが表示されるなんありえないのでは?

この回答への補足

Accessのクエリーには何ら手を加えておりません。VBAのプログラムだけで抽出しているため、詳細表示のフォームにAccessのNEXTボタンを付けた場合、抽出したデーターではなく、テーブルのデーターをそのまま順次表示してしまいます。

補足日時:2008/05/15 23:12
    • good
    • 0

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

関連するカテゴリからQ&Aを探す