pickup

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


今回は、上の記事の続きになります。

私は、センスがあまりないですが、できるだけカッコイイフォームを作成したいと思います。

目次

このブログはこんな人にお勧め

  • 検索フォームを作成したいができない人
  • 検索結果の画面に細工を加えたい人
  • データ入力もフォームで行いたい人

フォームを作成する

最強の検索フォームには、全部でフォームが3つ必要になります。

今回は、データ入力のフォームと、検索後のフォームを作成します。

データ入力のフォーム 作成手順その1 検索フォームは空白のフォームを使う


フォームを作成するときは、空白のフォームから作成します。

そのほうが汎用性があります。

真っ白な画面ですが、頑張りましょう。

上の記事が参考になると思います。

データ入力のフォーム 作成手順その2 完成図


このようなフォームを作成しました。


データべースは、MT_周知になります。

初心者にアリガチなミスは、フォームのレコードソースについて、どのソースを選択しているのかが、理解していない場合があります。

致命的なミスになりますので、気をつけましょう。

レコードのソースの確認方法


忘れずに確認しましょう。

データ入力のフォーム 作成手順その3 カンタンなコードを仕込む

前回は作成しませんでしたが、MT_社員というテーブルを作成しました。


なぜ作成したのかというと、周知を出した人間を明らかにするためです。



これは、IDで検索しているので、数値型の検索コードです。

 Private Sub コマンド89_Click()
 DoCmd.ApplyFilter , "[ID] =" & Me![周知検索] & " " '⇒完全一致:数値型
 End Sub

http://keiyu.xyz/2019/10/19/dlookup/

文字型と、数値型では、クオーテーションの数がちがいますので、気を付けてください。

結構、私に質問がきた案件です。



Private Sub コマンド90_Click()

Me![周知検索] = "" '周知検索のフィールドをクリアにする
DoCmd.RunCommand acCmdSaveRecord 'レコードを保存
DoCmd.GoToRecord , , acNewRec    '新しいレコードへ移動

End Sub



Private Sub 周知者_AfterUpdate()

Me![日時] = Date '周知者に名前を入力したら、日時というフィールド今日の日付が入る
Me.[社員ID] = DLookup("社員ID", "MT_社員", "[社員名]='" & Me![周知者] & "'") '社員IDを自動検索する
End Sub


数値型と、文字列型のクオーテーションの数が違うことを比較してください。

また、DLOOKUP関数は意図的に使いました。

DLOOKUP関数は、初心者泣かせなのですが、どうしても使う場面もあると思います。

しかし、みなさんは、オートルックアップクエリを使いましょう。

それが、ACCESSです。

検索後のフォームを作成する

検索後のフォームにいろいろな仕掛けをしています。

今回紹介する内容は本当に便利ですので使ってみてください。

検索後のフォーム 作成手順その1 複数のアイテムでフォームを作成する



複数のアイテムを選択すると、上の図のようなフォームができます。


このように、スペースを整えます。

ここがポイント

ここがポイント
Function8.png
この程度のコードが記載できれば、データ入力フォームは十分だと思います。また、簡単な検索もこの程度のコードで十分です。重ねて言いますが、文字型と、数値型では、クオーテーションの数がちがいますので、気を付けてください。

 

まとめ

フォームはこれくらい作成できれば十分です。

次回から、いろいろな仕掛けをしていきます。

今回のサンプルファイルはありません

毎日の業務が、3時間短縮できます

わからない事を延々と考えるのは、無駄です。

  • なんで作動かないの?
  • もうやだ!VBAなんか嫌い!
  • ネットで調べても情報がない!

必ず作動するコードが、ここにあります。

スポンサーリンク

Twitterでフォローしよう

おすすめの記事