- ベストアンサー
メインフォームから他フォームへの移動について
- Access2007を使用して、営業部内の顧客情報共有DBを作成しようとしています。
- メインフォームと顧客詳細情報の入力フォームを作成し、顧客情報の管理を行っています。
- 顧客一覧から選択した顧客の詳細情報入力フォームへの移動について困っています。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
> 顧客一覧の顧客コードの部分をダッブルクリックするとその顧客の > 詳細情報入力フォームへ移動sる様に設定したいのですが、 顧客コード テキストボックスのダブルクリック時のイベントプロシージャに、 DoCmd.OpenForm "詳細情報入力フォーム", , , "顧客コード=" & Me.顧客コード と1行記述。これが、いちばん標準的な方法だと思います。 上記は、顧客コードが数値型の場合です。テキスト型の場合は、 DoCmd.OpenForm "詳細情報入力フォーム", , , "顧客コード='" & Me.顧客コード & "'"
その他の回答 (4)
- piroin654
- ベストアンサー率75% (692/917)
何度もすみません。以下のようにしてください。 Subも抜けていました。 (1) テーブルの顧客コードが数値型(オートナンバーも含めて) の場合。 Private Sub Form_Open(Cancel As Integer) If CurrentProject.AllForms("メインフォーム名").IsLoaded Then Me.RecordSource = "SELECT * FROM 顧客情報テーブル名 WHERE 顧客コード = " & Forms!メインフォーム名!顧客顧客コード表示コントロール名 End If End Sub (2) テーブルの顧客コードがテキスト型の場合。 Private Sub Form_Open(Cancel As Integer) If CurrentProject.AllForms("メインフォーム名").IsLoaded Then Me.RecordSource = "SELECT * FROM 顧客情報テーブル名 WHERE 顧客コード = '" & Forms!メインフォーム名!顧客顧客コード表示コントロール名 & "'" End If End Sub
- piroin654
- ベストアンサー率75% (692/917)
#2です。 訂正です。コードがおかしくなっていました。 Private Form_Open(Cancel As Integer) If CurrentProject.AllForms("メインフォーム名").IsLoaded Then Me.RecordSource = "SELECT * FROM 顧客情報テーブル名 WHERE 顧客番号 = " & Forms!メインフォーム名!顧客番号表示コントロール名" End If End Sub
お礼
色々ありがとうございます。 VBAの知識がないことを自分自身で呪いつつ、 少しずつ勉強して行きたいと思います。 教えて頂いた内容でトライしていますが まだうまく行きませんが、必ず成功させて みせます。 ありがとうございました!
- piroin654
- ベストアンサー率75% (692/917)
例として、詳細情報入力フォームの開くときの設定で以下のように して顧客を特定することもできます。 Private Form_Open(Cancel As Integer) If If CurrentProject.AllForms("メインフォーム名").IsLoaded Then Me.RecordSource = "SELECT * FROM 顧客情報テーブル名 WHERE 顧客番号 = " & Forms!メインフォーム名!顧客番号表示コントロール名" End Sub
- nicotinism
- ベストアンサー率70% (1019/1452)
>詳細情報入力フォームへ移動する様に設定したいのですが、 >詳細情報入力フォームの先頭顧客番号へ移動するだけで 今はどうやっているのですか? VBAでなら、Docmd.GotoRecord とか FindFirst をヘルプで見てください。 詳細情報入力フォームもメインフォームの中にサブフォームとして埋め込む のもアリかもしれません?
お礼
早速のご回答、ありがとうございます!VBAの知識をあまり持っていませんが VBAの参考図書を見ながら格闘してみたいと思います。 VBAの参考図書での事例は 検索ボタンを作成し、クリックした際にInputBoxで該当するコード番号を入力し カレントフォームのカレントレコードを入力されたコード番号に移動する、という ものでした。私の理想は、顧客CDダブルクリックでカレントフォームではなく 詳細情報入力フォームに飛んで、メインフォームでダブルクリックした顧客番号と 同じ顧客番号の詳細画面を出したいのですが、GotoRecordの記述をまだ理解 していない状態ですので、もうちょっと調べてみようかと思います。 メインフォームの中にサブフォームとして埋め込む事も考えてみたいと思います。 ありがとうございました!
お礼
色々とありがとうございます。 私がやろうとしていた事が実現できました! VBAはまだまだわからない事だらけですが 少しずつ勉強して行きたいと思います。 きっかけを作って頂き、本当にありがとうございました! お礼が遅くなりました事、ご容赦下さい。