Accessのラジオボタンはオプショングループとして表現できる

Accessフォームでラジオボタンを作成

コンボボックスからクエリに反映させる事はよくやっていたのですが、ラジオボタンを利用したことはありませんでした。この際と思って勉強してみました。

Accessコントロールから、オプショングループを配置する

OptionGroup00.jpg

Accessコントロールから、ラジオボタンを配置する

ラジオボタンを配置する際、オプショングループの中にコントロールをポイントするとオプショングループ自体が黒くなります。この時にこのオプショングループに入るというこ事が分かります。

OptionGroup01.jpg

ラジオボタンのオプション値

ラジオボタンをクリックします

プロパティ―シートを確認するとオプション値が出てきます。

OptionGroup03.jpg

クエリへの反映

クエリの条件として、そのオプション値がそのまま利用できます。
[Forms]![フォーム名]![OP_mode]

これで無事にクエリが実行されます。

マクロからエクスポートできない

がーん

なぜか分かりませんが、クエリを右クリックしてエクスポートする際に、オプション設定をしないと、

「パラメータが少なすぎます。1を指定してください。」とよくわけのわからないエラーが出ます。クエリで条件指定した[Forms]![フォーム名]![OP_mode]を消すとエクスポートできるようになる事から、クエリをエクスポートする際の条件式にこの[Forms]指定はできないようです。

CSV出力VBA

仕方がないので自作でCSV出力用のサブルーチンを作成しました。

Public Sub Pub_CsvOut2DeskTop(TargetTable As String, FileName As String)
    'デスクトップパス取得
    Dim MyWSH  As Object
    Set MyWSH = CreateObject("WScript.Shell")
    Dim myDeskTopPath As String
    myDeskTopPath = MyWSH.SpecialFolders("Desktop")
    Set MyWSH = Nothing
    
    DoCmd.TransferText acExportDelim, , TargetTable, myDeskTopPath & "\" & FileName
    
    MsgBox ("デスクトップに" & vbCrLf & FileName & vbCrLf & "を作成しました。")

End Sub

CSV出力使い方

Call CsvOut2DeskTop(“クエリ名”,”ファイル名”)

でデスクトップにクエリをCSVでエクスポートできるようになります。

オプションボタンによりファイル名を変更したい

押されているオプションボタンにより、ファイル名を変更してCSVファイルを出力したいです。

こんな感じで今後ロールopt+オプション値のタグを引っ張ってくることができます。

MsgBox Me("opt" & Me!OP_mode.Value).Tag

オプションの名前は opt0 といった形で、この0の部分はオプション値と同じものにしておきます。

こちらのサイトが大変参考になりました。

Screenshot of tsware.jp

結局このような形で、オプションボタンに伴ってファイル名を変更してCSVファイルが吐き出せるようになりました。

Private Sub コマンド10_Click()
    Call Pub_CsvOut2DeskTop("Q_クエリ名", Format(Date, "yyyymmdd") & "一覧" & Me("opt" & Me!OP_mode.Value).Tag & ".csv")
End Sub

オプショングループの既定値

オプショングループ内のいずれかのボタンを開いた時にクリックした状態、初期値を作りたい時に設定する方法です。

グループの既定値にオプションボタンに設定したオプション値を設定します。すると、フォームを開いた時にその値がチェックされた状態で開きます。

 

 

関連コンテンツ