-PR-
解決済み

Access97でサブフォームのページ移動

  • 困ってます
  • 質問No.14674
  • 閲覧数238
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

Access97のおはなしです。
サブフォームを表形式で埋め込んでいます。
検索フォームを作成しサブフォームの項目で検索します。
検索結果よりメインのフォームに切り替える際に、
サブフォームの検索目標のあるページに移動することはできないでしょうか?
たとえばの例ですが、
メインフォームは会社情報、
サブフォームは取扱商品といった感じです。
クエリーのページ移動ではページ番号は数字ではないとだめで「Like [商品名]」といったページの移動なできないんですよね。
なにかいい方法はありますでしょうか?
ちなみにAccessBASICは全然分かりません(泣)
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル13

ベストアンサー率 46% (643/1383)

補足ありがとうございます。
話を簡単にするため、最初にフォーム、コントロールの名前を決めときます。


検索フォーム (検索条件を入力するフォーム)
 └検索条件 (検索する商品を入力するテキストボックス/コンボボックス)

会社一覧フォーム (取り扱い会社の一覧のフォーム。今回の回答には登場しません)
 └表示ボタン (会社別商品を表示するためのボタン)

会社別商品フォーム (会社別商品のフォーム)
 └商品一覧 (商品一覧を表示するサブフォームコントロール)
   └商品名 (商品名を表示するテキストボックス)


普段から何でもVBAでやってしまうクセがついているので、ちょっと失念していましたが、実は複数フィールドにまたがらない検索でしたら、マクロからでも可能でした。

マクロでするなら、こんな感じです。[表示ボタン]のクリック時に設定されているマクロの、末尾にでも追加してやるといいでしょう。

1行目
 オブジェクトの選択
  オブジェクトの種類: フォーム
  オブジェクト名: 会社別商品フォーム
  データベースウインドウ内: いいえ

2行目
 コントロールの移動
  コントロール名: 商品一覧

3行目
 コントロールの移動
  コントロール名: 商品名

4行目
 レコードの検索
  検索データ: =[Forms]![検索フォーム]![検索条件]
  検索条件: フィールドの一部分
  大文字小文字区別: いいえ
  検索方向: すべてのレコード
  表示書式で検索: いいえ
  カレントフィールドのみ: はい
  先頭からの検索: はい




VBAでするなら、
1:[表示ボタン]のプロパティの[クリック時]を[イベントプロシージャ]にします。
2:横の[…]ボタンをクリック

Private Sub 表示ボタン_Click()

End Sub

のようなモジュールが表示されます。Private Sub と、End Subの間の行にカーソルがありますが、この位置にコードを入力して、以下のような感じにします。

Private Sub 表示ボタン_Click()
  Dim RST As Recordset
  
  'マクロ名のところには、会社別商品フォームを開くのに使っているマクロの名前を記述してください。
  DoCmd.RunMacro "マクロ名"

  'マクロの「オブジェクトの選択」をVBAで書くと、こんな感じになります。
  DoCmd.SelectObject acForm, "会社別商品フォーム", False
  
  'サブフォームに表示されているレコードのコピー内容を取得します
  Set RST = Forms![会社別商品フォーム]![商品一覧].Form.RecordsetClone
  
  'データを検索します。'[商品名] LIKE '*みかん*' みたいな感じです。
  RST.FindFirst "[商品名] LIKE '*" & Forms![検索フォーム]![検索条件] & "'"
  
  '一致するレコードが発見できなければ、この時点で処理終了です
  If RST.NoMatch = True Then
    Exit Sub
  End If
  
  'サブフォームのレコードを移動します
  Forms![会社別商品フォーム]![商品一覧].Form.Bookmark = RST.Bookmark
  
  '見つかったレコードを選択状態にします。
  RunCommand acCmdSelectRecord
End Sub

も少し詳しく、とか、エラーが起きたとか、ありましたら、補足してください!
お礼コメント
noname#5002

まいどまいどご丁寧なご回答ありがとうございます。
早速試してみますね。
また疑問点があった際は、
お手数ですがご質問させていただきますので、
よろしくお願いします。
投稿日時 - 0000-00-00 00:00:00
関連するQ&A
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル13

ベストアンサー率 46% (643/1383)

どもども、只今帰宅しました(笑) とりあえず、御質問の内容から、以下のようなアプリケーションを頭の中で浮かべたのですが、もしこれがお考えのものと異なる場合は、補足をお願いします。 ○テーブル構造の確認 「例えばの話」ですんで、こんな感じでテーブルがあるとします。 [会社]テーブル  会社ID(長整数型)  社名   : [取扱商品]テーブル  商品ID(長整数型)  会 ...続きを読む
どもども、只今帰宅しました(笑)

とりあえず、御質問の内容から、以下のようなアプリケーションを頭の中で浮かべたのですが、もしこれがお考えのものと異なる場合は、補足をお願いします。

○テーブル構造の確認
「例えばの話」ですんで、こんな感じでテーブルがあるとします。

[会社]テーブル
 会社ID(長整数型)
 社名
  :

[取扱商品]テーブル
 商品ID(長整数型)
 会社ID(長整数型)
 商品名(テキスト型)ホントは別に[商品]テーブルを作る
  :       べきですが、便宜上ここに入れます。

で、双方の[会社ID]フィールドにリレーションシップが設定されている。とします。(メインフォームとサブフォームも、[会社ID]で関連付けられています)

○サブフォーム上でレコードの移動を行う?
例えば、商品名が「みかん」のレコードを検索したとして、
・サブフォーム上に「みかん」が見つかれば、そのレコードに移動する。見つからなければ何もしない。
・別の会社に「みかん」が登録されていたとしても、それは考慮しない。
という動作でいいんですよね?

○検索フォームの構造は?
[検索商品名]というテキストボックスがあって、[検索]ボタン、[キャンセル]ボタンがあるものとします。
[検索商品名]に「みかん」と入力し、[検索]ボタンを押すと、商品名に「みかん」を含む商品を検索する。(Like 演算子を使用する)
ってな感じでいいですか?

○お使いのAccess97はSR-2?
Access97には「初期版」「SR-1」「SR-2」の3つのバージョンが存在します。
今回の処理では、「ブックマーク」を使おうと思ってるのですが、初期版と、(ひょっとしたら)SR-1では、バグのためにこの機能が使えません。(Access95,2000は大丈夫)

お使いになる環境が、Access97 SR-2以降であると確定している、もしくはSR-2にアップグレード可能ならばいいんですが、そうでなければ別の方法を考えなければならないので、その旨補足してください。

○VBAに対する心構えはOK?
数行程度のVBA(モジュール)を使用しようと思います。
意味不明な記号の羅列を見ただけで混乱したりはしませんよね?(笑) そういう人が身近にいるんで(^^;

ってことで、補足ヨロシク!(今からお風呂た~いむ☆)
補足コメント
noname#5002

基本的におっしゃるとおりです。
補足するとすれば、
まず「みかん」で検索したときに検索結果として「みかん」関連を取り扱う会社名の一覧が表示され、各会社名先頭にあるボタンをクリックすると詳細の情報として、画面左半分に会社情報、右半分にサブフォームで取扱商品が表形式で表示され、戻るボタンでまた検索結果の会社名一覧へという動作にしたいです。このときに「みかん」のある行に自動的にコントロールが移動しているのが理想です。なお「みかん」が複数行あることはありません。コントロールの移動以外は完成しています。ただ商品が何百とあったときに「みかん」の行へたどり着くのが大変になっています。
Access97はSR-2になっています。
BASICは触っていたことはあるのですがVBAなどWindowsライクなものは触ったとことはありません。
投稿日時 - 2000-11-30 10:53:29


このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ