プロが教える店舗&オフィスのセキュリティ対策術

accessのフォームのINDEX画面にて
クリックしたボタンによって取得するテーブル名を分けたいのですが、
それは可能でしょうか?
いろいろ調べたのですが、見つからず。。。

↓こんなかんじのようなことがしたいです。

Function strTbl() As String

If A出力_Click Then

strTbl = "[A_5_通常処理]"

ElseIf B出力_Click Then

FstrTbl = "[B_3_月次処理]"

End If

End Function

A 回答 (2件)

案1


取りあえず必要なだけコマンドボタンを配置する
5個だと仮定して
フォームのモジュール内に
Function cmdSel()
  Dim cb As Control
  Set cb = Screen.ActiveControl
  Select Case cb.Name
    Case "コマンド0"
      MsgBox "0"
    Case "コマンド1"
      MsgBox "1"
    Case "コマンド2"
      MsgBox "2"
    Case "コマンド3"
      MsgBox "3"
    Case "コマンド4"
      MsgBox "4"
  End Select
  Set cb = Nothing
End Function
とします。
各コマンドボタンのクリック時イベントの欄に
=cmdsel()
としてみてください。

案2
「オプション グループ」コントロールを配置し(仮名フレーム1)
その中にトグルボタンを5個配置し、それぞれのオプション値を0~4にします。
オプショングループのクリック時イベントに
Private Sub フレーム1_Click()
  Select Case Me!フレーム1.Value
    Case 0
      MsgBox "0"
    Case 1
      MsgBox "1"
    Case 2
      MsgBox "2"
    Case 3
      MsgBox "3"
    Case 4
      MsgBox "4"
  End Select
End Sub
Accessのバージョンが不明なので2010の場合↓
http://hamachan.info/win7/Access/option.html
    • good
    • 0
この回答へのお礼

案1を使わせて頂き、無事やりたいことができました。いろんなやり方があるのですね。案2も今後の参考にさせて頂きます。
ありがとうございました。

お礼日時:2013/10/28 11:19

> クリックしたボタンによって取得するテーブル名を分けたい



フォームのレコードソースを分けたいということですか


Private Sub A出力_Click()

Me.RecordSource = "[A_5_通常処理]"

End Sub

Private Sub B出力_Click()

Me.RecordSource = "[B_3_月次処理]"

End Sub
    • good
    • 0
この回答へのお礼

いろんなやり方があるのですね。今後の参考にさせて頂きます。
回答ありがとうございました。
また宜しくお願いします。

お礼日時:2013/10/28 11:21

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

このQ&Aを見た人はこんなQ&Aも見ています