Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Access 2016)
チェックボックス付きのリストボックスを作りたい
投稿日時: 21/10/08 17:17:10
投稿者: コンギョ

テーブルを読み込んだリストボックスがあります。
テーブルの構造は、品番・品名・日付・入荷フラグ となっています。
入荷フラグはyes/no型です。
そのテーブルをリストボックスに表示すると、入荷フラグは0か-1で表示されます。
これをチェックボックスで表示することはできないのでしょうか。
またリストボックスを直接クリックすることで、入荷フラグの値を操作したいです。
ご教授の程お願いします。

回答
投稿日時: 21/10/09 12:36:35
投稿者: hatena
投稿者のウェブサイトに移動

リストボックスの代わりにサブフォームを使えばどうでしょう。
 
見た目は工夫すればリストボックスのようにできますし、yes/no型フィールドはチェックボックスになります。
 
クリックでチェックのON/OFFもノンコードでできます。

投稿日時: 21/10/11 01:29:48
投稿者: コンギョ

hatena様
 
回答ありがとうございます。
 

引用:
リストボックスの代わりにサブフォームを使えばどうでしょう。

 
早速試してみましたが、テーブルを開いた感丸出しでした。
これをリストボックスのように見せる工夫とはどうゆうことでしょうか。
 
サンプル等あるとわかりやすいのですが、何かありますでしょうか。
 
よろしくお願いします。

回答
投稿日時: 21/10/11 02:20:06
投稿者: hatena
投稿者のウェブサイトに移動

おそらくデータシートビューになっていると思いますので、
「既定のビュー」プロパティを「帳票フォーム」にしてから開きなおしてみてください。
 
あるいは、フォームウィザードで作成して、途中のレイアウトの選択で「表形式」を選択して、ウィザードの指示に従って進めれば、それらしきものが出来上がるので、それを元にしていろいろ弄るといいでしょう。
 
下記のページの「帳票フォーム2…複数のアイテム」の画像を見てください。
チェックボックスのある帳票フォームです。
 
単票フォームと帳票フォームの違い
https://www.helpaso.net/archives/1368/
 
また、下記のページのフォームの画像を見てください。
帳票フォームですが、レイアウトや背景色などを調整してけっこうリストボックスのようになってると思います。
 
カレント行の背景色の変更 - hatena chips
https://hatenachips.blog.fc2.com/blog-entry-18.html
 
各種プロパティやコントロールの配置を工夫すれば、リストボックスにように表示できます。

投稿日時: 21/10/11 17:10:50
投稿者: コンギョ

hatena様
  
回答ありがとうございます。
 
hatena様のご提案いただいた内容を元にリストボックスにそっくりにできました!
ありがとうございます!
 
ただリストボックスだと、リストボックス.Requeryで更新していましたが、帳票フォームの場合どうやって再更新すればいいでしょうか。それができずに困っています。
 
よろしくお願いします。

回答
投稿日時: 21/10/11 20:11:07
投稿者: hatena
投稿者のウェブサイトに移動

コンギョ さんの引用:
ただリストボックスだと、リストボックス.Requeryで更新していましたが、帳票フォームの場合どうやって再更新すればいいでしょうか。それができずに困っています。

 
帳票フォームはフォーム上で更新したら、レコード移動するか、レコードセレクタをクリックするか、Ctrl+Enterか、...などでテーブルに反映されます。

回答
投稿日時: 21/10/11 20:20:28
投稿者: hatena
投稿者のウェブサイトに移動

別の場所でテーブルを更新して、それをフォームに反映させたいのなら、
サブフォームに対してRequeryします。
 
メインフォームにコードを記述するなら、
 
Me.サブフォームコントロール名.Form.Requery
 
または、
 
Me.サブフォームコントロール名.Requery
 
です。

投稿日時: 21/10/13 10:00:01
投稿者: コンギョ

hatena様
   
回答ありがとうございます。
 

引用:
Me.サブフォームコントロール名.Form.Requery
  
または、
  
Me.サブフォームコントロール名.Requery

 
別の場所でテーブルを更新してやってみましたが、画面が更新しませんでした。
 
なので、いろいろやってみましたが下記のコードでできました。
 
Me.サブフォームコントロール名.Form.RecordSource = "テーブル名"
 
ご教授いただいてどうもありがとうございました。