pickup

目次

ACCESSに慣れてきたらどうする?

こんにちは。伊川(@naonaoke)です。

これまでに、何度かACCESSの主キーについて説明をしてきました。

ACCESSが少し身近な存在になりましたか?

でも、まだ自信はないと思っている人もいるでしょう。

では、少し、Excelならできるけど、ACCESSであれば、少し考える問題を出題します。

問題提起

入社3年目の、阿久 世子男(アク、セスオ)は、Excelから、ACCESSへのデータベース移行の業務命令を受けました。

赤⇒R

青⇒B

黒⇒BL

白⇒W

ACCESSで各色の英語の頭文字を反映させるように、課長から命令されました。
Excelならわかりますが、ACCESSではいまいち、ピンと来ません。
どうしたらいいでしょうか?

Excelに浮気をしない

この問題は、Yahooの知恵袋に質問として投稿されていました。

もっとも、問題自体は、伊川にて、少しアレンジをしています。

Excelで実行する場合

ACCESSの記事を書くので、Excelの詳しい方法は割愛します。

伊川が思いつくのは、関数ならば、IF関数、VLOOKUP関数、INDEX関数、MATCH関数です。

VBAなら、IF構文、Select Case構文です。

要するに、なんらかの条件判定、一意のキーを参照するということが必要です。

http://keiyu.xyz/2019/10/04/excel-vba%e3%80%80%e8%a4%87%e6%95%b0%e3%81%ae%e6%9d%a1%e4%bb%b6%e5%88%a4%e5%ae%9a%e3%80%80selectcase/

ACCESSのフォームで実行する場合

ACCESSで行う場合は、関数なら、IIF関数、DLOOKUP関数を使います。

VBAでは、フォームで実行する場合は、IF関数、DLOOKUP関数を使います。

クエリの場合も、IIF関数、DLOOKUP関数です。

しかし、ACCESSには、関数や、VBAを知らなくてもできる、最強の技があります。

それが、オートルックアップクエリです。

 

 

オートルックアップクエリは主キーが理解していないと、使えませんので、主キーを理解していない方は、上の記事を合わせて読んで欲しいです。

ACCESSのフォームでIF関数を使って実行する場合


参考図の赤枠のところに、更新後処理で、下記のコードを仕込みます。

Private Sub 色_AfterUpdate()

If Me.[色] = "赤" Then
Me.[文字] = "R"

ElseIf Me.[色] = "青" Then
Me.[文字] = "B"

ElseIf Me.[色] = "黒" Then
Me.[文字] = "BL"

ElseIf Me.[色] = "白" Then
Me.[文字] = "W"

End If
End Sub

ACCESSのフォームでDLOOKUP関数を使って実行する場合

参考図の赤枠のところに、更新後処理で、下記のコードを仕込みます。

Private Sub 色_AfterUpdate()

Me.[文字] = DLookup("文字", "MT_色", "色='" & Me.[色] & " '")

End Sub

ACCESSのフォームでSelect Caseを使って実行する場合

参考図の赤枠のところに、更新後処理で、下記のコードを仕込みます。

Private Sub 色_AfterUpdate()

Select Case True

Case Me.[色] = "赤"
Me.[文字] = "R"


Case Me.[色] = "青"
Me.[文字] = "B"

Case Me.[色] = "黒"
Me.[文字] = "BL"

Case Me.[色] = "白"
Me.[文字] = "W"

End Select

End Sub

ACCESSのクエリを使って実行する場合

ACCESSのクエリで、IIF関数を使って実行する場合


下記のコードを仕込みます

頭文字: IIf([色]="赤","R",IIf([色]="青","B",IIf([色]="黒","BL",IIf([色]="白","W"))))

ACCESSでオートルックアップクエリを使って実行する場合

オートルックアップクエリに関しては、下記の記事を参照してください

まとめ

ACCESSでツール作成する場合は、必ず下記を確認しましょう。

一意のキー(主キー)はありますか?

主キーが無ければ作成しましょう。

みなさん、阿久 世子男さんの成長をみまもってください。

サンプルファイルNo18はです
スポンサーリンク

Twitterでフォローしよう

おすすめの記事