質問: ### postgresDBとAccessをODBCドライバ接続し、マスタをメンテナンスするツールとしてAccessでフォームを作成しています。 メンテナンスを行うマスタが3つあり、それぞれに新規作成、更新・削除フォームを作成しています(計6つ)。作成したフォームを大元となるフォームの詳細欄にタブコントロールで分けて貼ってあります。 大元フォームのページフッダーに新規登録コンボボックス、更新・削除コンボボックス、表示ボタンが設置してあり、コンボボックスの中身はそれぞれマスタテーブル名が3つ入っています。 コンボボックスでマスタ名を選び、選んだ条件に応じて表示ボタンを押すとsetFocusでそれぞれのタブに移動するという構築を考えております。 コンボボックスの中のテキストに変数を当てて、その変数の値に応じて表示ボタンでsetFocusを当てるタブを選ばせる位しか思い浮かばないのですが、思うようにうまくいきません。 何かいい別の方法、またはVBAの記述を教えていただけないでしょうか? ### 発生している問題・エラーメッセージ ``` エラーメッセージ ``` ### 該当のソースコード ``` ソースコード ``` ### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: タブコントロールにページが6つあり、それぞれのページにサブフォームが配置してあるということですね。タブコントロールのタブにマスタ名と追加か更新かわかるようなキャプションをつけておけば済む話だと思いますが、それではだめなんですか。ダメな理由を提示してもらえれば、別案のアドバイスでできるかもしれません。 ダメな理由があるとして、コンボボックスが2つ、表示ボタンがひとつだと、表示ボタンを押したとき、どちらのコンボボックスに対応するフォームを表示させるのでしょうか。ユーザーインターフェイスとして紛らわしい仕様だと思います。検討の余地があると思います。 とりあえず、ComboBox.ListIndex プロパティ (Access)で何番目を選択しているか取得てきますので、それをもとにタブコントロールのページを選択すればいいでしょう。 タブコントロールの1ページ目を選択するにはValueプロパティに0を代入、2ページ目を選択するにはValueプロパティに1を代入すればOKです。 追記 コンボボックスを下記のような2つにすればいいですね。 **マスター名選択**コンボ **新規追加、更新・削除選択**コンボ 後者はコンボではなくオプショングループの方が分かりやすいかも。 タブコントロールの各ページが、下記の順。 **マスター1新規、マスター1更新、マスター2新規、マスター2更新、マスター3新規、マスター3更新** マスター名選択コンボのリストが、 マスター1 マスター2 マスター3 更新・削除選択コンボのリストが、 新規追加 更新・削除 として、表示ボタンクリック時のイベントプロシージャのコード ``` Private Sub 表示_Click() Me.タブ1.Value = Me.マスター名選択.ListIndex * 2 + Me.更新・削除選択.ListIndex End If ```