- ベストアンサー
ACCESS コンポボックスの値でフォームを開く
教えてください。 フォーム上にコンポボックスがあり、そのコンポボックスの値が1、2、3、4とあります。 その値別にダブルクリック後、別のフォームを開きたいのですが? 1の場合 Aフォーム 2の場合 Bフォーム 3の場合 Cフォーム の様な感じです。 宜しくおねがいいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No1です。 コンボボックスの値を数値型にする場合場合、 コンボボックスの値リストを、0、1、2、3 として、以下のようにしてみてください。 Private Sub コンボ0_DblClick(Cancel As Integer) Dim num As Integer If Not IsNull(Me!コンボ0) Then num = Me!コンボ0 Select Case num Case 1 DoCmd.OpenForm "Aフォーム" Case 2 DoCmd.OpenForm "Bフォーム" Case 3 DoCmd.OpenForm "Cフォーム" End Select Me!コンボ0 = 0 End If End Sub 連続してクリックするとき、コンボボックスの 値を消してそのままクリックすると直前に開いた フォームが開かれるのでメモリに残っている データを0で初期化します。0の場合のフォームは ないので直前に開いたフォームが開かれることは ありません。 もし、数値を文字型にする場合は、 値リストを "1","2","3" のように文字型にして、 Private Sub コンボ0_DblClick(Cancel As Integer) Dim num As String If Me!コンボ0 <> "" Then num = Me!コンボ0 Select Case num Case "1" DoCmd.OpenForm "Aフォーム" Case "2" DoCmd.OpenForm "Bフォーム" Case "3" DoCmd.OpenForm "Cフォーム" End Select Me!コンボ0 = "" End If End Sub としてみてください。
その他の回答 (2)
- piroin654
- ベストアンサー率75% (692/917)
No1、No2です。 No2の >コンボボックスの値リストを、0、1、2、3 >として、以下のようにしてみてください。 は、 コンボボックスの値集合タイプを値リストにし、 値集合ソースを、0、1、2、3 として、以下のようにしてみてください。 です。文字型の場合も読み変えてください。
- piroin654
- ベストアンサー率75% (692/917)
以下のような感じです。 Private Sub コンボ0_DblClick(Cancel As Integer) Dim num As Integer If Not IsNull(Me!コンボ0) Then num = Me!コンボ0 Select Case num Case 1 DoCmd.OpenForm "Aフォーム" Case 2 DoCmd.OpenForm "Bフォーム" Case 3 DoCmd.OpenForm "Cフォーム" End Select End If End Sub
お礼
細かなところまでありがとうございます。 勉強になります。
お礼
ありがとうございます。 動作しました。 感謝感激です。