Access (VBA)

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

 
(Windows 7 Professional : Access 2016)
Select Case文のテーブル値引用に関して
投稿日時: 18/05/15 10:55:47
投稿者: wand

こんにちは。
VBA初心者で勉強中のため、ご教示ください。
 
下記のとおり、"Select Case"文にてカラーフィールドの内容により
色分けを行っております。
 
====================================================================
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
 
Select Case Me.カラー.Value
 
Case "1パステルピンク"
Me.BarCode.BackColor = 11823615
 
Case "2イエロー"
Me.BarCode.BackColor = 65535
 
Case "3グレー"
Me.BarCode.BackColor = 8421504
 
End Select
 
End Sub
====================================================================
 
しかしながら今後の展開を考えて、上記色分けをテーブル値から
引用できるようにしたいと思っています。
 
テーブル名:    色分け
フィールド:    カラー        色番
        1パステルピンク    11823615
        2イエロー    65535
        3グレー        8421504
 
どのような式になりますでしょうか。
よろしくお願いいたします。

回答
投稿日時: 18/05/15 11:21:43
投稿者: sk

引用:
Select Case Me.カラー.Value

引用:
Me.BarCode.BackColor = 11823615

引用:
テーブル名: 色分け
フィールド: カラー 色番
        1パステルピンク 11823615
        2イエロー 65535
        3グレー 8421504

1. レポートのレコードソースであるテーブルと
   テーブル[色分け]とをフィールド[カラー]同士で
   外部結合し、前者の全てのフィールドと
   後者の[色番]を返す選択クエリを作成する。
 
2. 1 のクエリをレポートのレコードソースとする。
 
3. フィールド[色番]をコントロールソースとする
   連結テキストボックス[色番]を詳細セクション上に追加する。
   (印刷する必要がなければ、更に
   [可視]プロパティを「いいえ」に設定する)
 
4. 詳細セクションの Format イベントの発生時に
   以下のようなコードを実行するようにする。
 
----------------------------------------------------------------
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
  
    If IsNumeric(Me![色番].Value) Then
        Me![BarCode].BackColor = Me![色番].Value
        Me![BarCode].BackStyle = 1
    Else
        Me![BarCode].BackStyle = 0
    End If
  
End Sub
----------------------------------------------------------------

投稿日時: 18/05/15 15:56:08
投稿者: wand

skさん
 
早速のご回答ありがとうございました。
できました。
これから、いろいろと応用させていただきます。
 
ありがとうございました。