Accessの帳票フォームは便利ですよね、自分も全体で項目をできるだけたくさん表示させたい時に使っています。これにボタンがついたりすると便利ですよね。しかし・・・ボタンの表示非表示が制御できないんです。
帳票フォーム明細行にボタンを設置すると?
帳票フォームにデータの明細行を表示させその内容によってボタンからデータ更新のfunctionを起動させたい!と思って「帳票フォームの明細行」にボタンを置いたんですが、あれ?表示・非表示の制御できないの??と色々プロパティーを見ても制御不能な感じでした。
帳票フォームの各明細行それそれにボタンをつける事はできてもそのボタンの表示・非表示のコントロールはできません。(ボタンを設置したら表示しっぱなしです)
代替案
テキストボックスを設置しテキストに「仮ボタン」とセットしておき、コントロールソースにIIf書いて表示・非表示を制御してみよう。
実際に試してみた
帳票フォームレイアウト
明細行には左・中・右とフィールドを設置
この画像の場合は「仮ボタン」ではなく「開く」というテキストをセットしています。
テキストボックスのコントロールソース
コントロールソースでの記述は以下のようにセットしています。
IIF(IsNull([左],"","開く")
明細行のフィールドは左から[左][中][右]と名前を付けているので上のコントロールソースは左がNullだったら何も表示しない!左に文字列がはいっていたら”開く”と表示する。ということになります。
Private Sub テキスト5_Click()
If Me.右 = "xxx" Then
MsgBox "xxx"
Else
End If
End Sub
テキストボックスのクリックイベントに上記のようにFunctionを記述するとデータ更新や他の機能を実装できそうですね。FSOでディレクトリーのファイルを削除するとか移動するとか自分は実装しました。
まとめ
帳票フォームの明細行にボタンを設置してもよいが、表示・非表示の制御はそもそもできない。テキストボックスを代用することも上記の様に可能。というかできなくはないという実装にはなる。もっとスマートな方法があったらこの記事を更新します。
コメント