新規記事の投稿を行うことで、非表示にすることが可能です。
2017年09月06日
Access入門入場券を作ろう
マイクロソフトエクセルのまとめ記事はこちら
Microsoft Office ブログランキングへ
入場券の作成
そしてこの「四角」の中に詳細項目を移動させたのが上記です。
この中から必要なものだけ配置すれば良いと思います。
今、ちょっとしたイラストを貼付けて、氏名のテキストボックスにラベルを
追加しようとしています。
このラベルは新規ラベルなので、どこにも関連付けができていません。
上記のようにラベルとコントロールを関連付けるを選択すると、関連付けができます。
一応上記のように配置して、完成としましょう。
これを通常表示にします。
なんとなく、入場券らしくなっていますね。
2017年09月11日
Access入門入場券を作ろう
WordPressやEC-CUBEを簡単ワンクリックインストール!
マルチドメイン対応レンタルサーバー【シックスコア】
マイクロソフトエクセルのまとめ記事はこちら
Microsoft Office ブログランキングへ
次は入力フォームを作成します。
左の「T_会員一覧」を選択した状態でリボンの「作成」からフォームを選択しました。
後は適当に大きさ・配置を決めてください。
上記のような大きさと配置にしました。
このフォームをメインフォームと設定して、ここに色々ボタンを追加してみましょう。
メインフォームに設定するという事はこのAccessを開いたときに、
このフォームが表示されるように設定する必要があります。
以前やりましたが、覚えていますか。
Accessのオプションから「フォームの表示」で設定します。
マルチドメイン対応レンタルサーバー【シックスコア】
マイクロソフトエクセルのまとめ記事はこちら
Microsoft Office ブログランキングへ
次は入力フォームを作成します。
左の「T_会員一覧」を選択した状態でリボンの「作成」からフォームを選択しました。
後は適当に大きさ・配置を決めてください。
上記のような大きさと配置にしました。
このフォームをメインフォームと設定して、ここに色々ボタンを追加してみましょう。
メインフォームに設定するという事はこのAccessを開いたときに、
このフォームが表示されるように設定する必要があります。
以前やりましたが、覚えていますか。
Accessのオプションから「フォームの表示」で設定します。
2017年09月15日
Access入門入場券を作ろう
マイクロソフトエクセルのまとめ記事はこちら
Microsoft Office ブログランキングへ
フォームの作成
必要と思われるボタンの種類として
・「次」「前」ボタン
・「新規入力」ボタン
・「アプリ終了」ボタン
・入場券の「発券」ボタン
・「検索」ボタンも付けましょう。
とりあえず最初の3つ「次」「前」「新規入力」「アプリ終了」ボタンは
簡単に作成できると思いますので作成してください。
コマンドボタンウィザートで上記のように作成しました。
次に「入場券の発券」ボタンです。
入場券の発券に関してどのような流れになるかというと、
「Q_発券者」のクエリを作成する際に『「申込」された方で、
まだ「入場券」を発券していない方』という条件で作成したはずです。
それから入場券のレポートも「Q_発券者」を元にしたレポートです。
ですから単純に「R_入場券」のレポートを開いて印刷すればOKですね。
このように「クエリ」「レポート」を作成する際は、どのような目的で作成するのか
明確に決めておく必要があります。
特にクエリは重要です。
目的の抽出ができるまでに2段階3段階のクエリを作成する場合もあります。
ただしAccessが楽なのは途中のクエリ等は無視して、
結果のレポートだけ開けば、結果が表示されます。
そのためなお一層「クエリ」の出来が重要になってきます。
上記の事を踏まえると「入場券の発券」ボタンの動作は
「R_入場券」のレポートを開く⇒「印刷する」という2段階の動作でOKのように思われます。
動作的にはこれでOKなのですが、システムとして考えた場合はもう少し
工夫が必要になります。
それは何かというと、「発券」した場合は「発券日」を記入していく必要があります。
これはどのようにすれば実現できるのか?
覚えていますか「更新クエリ」というのを・・・。
更新クエリを実行するとデータが更新されます。
発券されたデータに「発券日」を追記するような更新クエリを
作成すれば良いという事が分かります。
2017年09月20日
Access入門入場券を作ろう
マイクロソフトエクセルのまとめ記事はこちら
Microsoft Office ブログランキングへ
更新クエリの作成
リボンの作成から「クエリデザイン」を選択します。
更新させたいのは「Q_発券者」なのでこれを選択し、「発券日」フィールドを選択します。
それからリボンの「更新ボタン」を押します。
これで「更新クエリ」になります。
上記の部分に「レコードの更新」という項目が出て来ましたね。
ここに更新したい内容を記載します。
今「発券日」フィールドの「レコードの更新」に「Date()」と記載しました。
Date()は「本日の日付」という意味になります。
よってこの「更新クエリ」を実行すると、「Q_発券者」の全レコードの「発券日」に
「本日の日付」が記載されるという事になります。
「入場券の発券」ボタンの動作は「R_入場券」のレポートを開く⇒「印刷する」という
動作に加えて「Q_更新」というクエリを実行します。
「入場券の発券」ボタンは作成後「マクロビルダー」にて動作を書き込みます。
上記のように
1 レポートを開く
2 オブジェクト(レポート)を印刷する
3 更新クエリを開く
それでは実際に動作させてみてください。
最初にレポートが開き「印刷ダイアログ」が開きますね。
そこで印刷を実行すると、次に下のようなメッセージが開きます。
これはデータを更新するかどうかの「更新クエリ」の確認メッセージです。
「はい」を選択すると、発券日が記載されます。
もしこの後「レポート」を閉じたければ、「レポートを閉じる」というアクションを追加してください。
ここで更新クエリが実行されているかどうか確認しましょう。
「T_会員一覧」を開いてください。
上記のように発券日に記入がありますね。
これで申し込みがあった方に関しての発券が完了しました。
新しく申し込みがあればフォームから入力し、ある程度件数がたまれば
「入場券の発券」を行うという同じことの繰り返しです。
非常に簡単ですね。
2017年09月25日
Accessで検索
東京の人気ホテル・旅館が最大50%OFF
マイクロソフトエクセルのまとめ記事はこちら
Microsoft Office ブログランキングへ
「検索」をしてみましょう。
検索に関してはフォームの一番下の「検索」という欄に検索したい
文字列を入力すれば検索できるという事を以前紹介したと思います。
今回はフォーム上に「テキストボックス」と「検索ボタン」を配置して、
そのテキストボックスに記載された内容を検索するという仕組みを作りたいと思います。
一応「名前」を検索するようにします。
やり方としては色々あります。
思いついたものからやってみましょう。
まず、フォーム上にテキストボックスと検索ボタンを配置します。
今回のテキストボックスは「テキスト45」という名前でした。
(この名前は覚えておいてください。後で必要です)
最初に検索結果を表示するフォームを作成します。
「T_会員一覧」をベースにフォームウィザートでフォームを作ります。
項目は一応すべて選択し、途中で「票形式」を選択してください。
上記のようなフォームが出来ます。
これは若干フィールドの幅等を修正したものです。
これを「F_名前検索」として保存します。
次に「検索」ボタンです。
プロパティシートで「イベントプロシージャ」を選択し「…」を押してください。
上記のようにVBAを記述する画面になります。
Private Sub コマンド47_Click()
DoCmd.OpenForm "F_名前検索", , , "氏名 like '*" & Me!テキスト45 & "*'"
End Sub
このように記述しました。
少し詳しく見て行きましょう。
「DoCmd.OpenForm "F_名前検索"」ここまでは分かりますね
「OpenForm」コマンドで「F_名前検索」フォームを開きなさいという命令です。
本来DoCmd.OpenForm は「OpenForm “FormName”, View,
FilterName, WhereCondition, DataMode, WindowMode, OpenArgs」
という構文になっています。
今回はWhereCondition,というところだけ使用します。
「F_名前検索」フォームを開くときの条件として、
「"氏名 like '*" & Me!テキスト45 & "*'"」という指定を行っています。
その前に「構文」のWhereCondition,の部分の前は省略できないので
「, , ,」が入っています。
「"氏名 like '*" & Me!テキスト45 & "*'"」この部分ですが、
最初の「氏名 like’*」と「最後の「*’」の間はそのまま文字列として認識されます。
上記の両端に「"」(ダブルクォーテーション)で囲われて、文字列であることが
表現されています。
「Me!テキスト45」とは、「Me」というのはよく使用するのですが、
「今アクティブになっているフォーム・レポート・コントロールの事」という
意味だと思ってください。
ここでは本来[Forms]![F_会員一覧]![テキスト45]と記載すべきところを
「Me!テキスト45」と記載されています。
そして「文字列」と「データ変数」を結合する場合は「&」(アンパサンド)で
つなぐというルールがあります。
仮に「テキスト45」に「小沢」という文字が入力されているとします。
「 "氏名 like '*" & Me!テキスト45 & "*'"」を分かりやすく言うと
「”氏名 Like’*小沢*’”」となります。
「DoCmd.OpenForm "F_名前検索", , , "氏名 like '*" & Me!テキスト45 & "*'"」
この全文を分かりやすく言うと「今から開く「F_名前検索」にある「氏名」に
「小沢」という文字を含むものを表示しなさい」という命令文です。
実際に「小沢」と入力して「検索」ボタンを押してください。
上記のように「小沢」を含む名前が表示されました。
上は「羽柴」で検索しました。
エルセーヌ「小顔ハリ美肌コース」エステ体験
マイクロソフトエクセルのまとめ記事はこちら
Microsoft Office ブログランキングへ
「検索」をしてみましょう。
検索に関してはフォームの一番下の「検索」という欄に検索したい
文字列を入力すれば検索できるという事を以前紹介したと思います。
今回はフォーム上に「テキストボックス」と「検索ボタン」を配置して、
そのテキストボックスに記載された内容を検索するという仕組みを作りたいと思います。
一応「名前」を検索するようにします。
やり方としては色々あります。
思いついたものからやってみましょう。
まず、フォーム上にテキストボックスと検索ボタンを配置します。
今回のテキストボックスは「テキスト45」という名前でした。
(この名前は覚えておいてください。後で必要です)
最初に検索結果を表示するフォームを作成します。
「T_会員一覧」をベースにフォームウィザートでフォームを作ります。
項目は一応すべて選択し、途中で「票形式」を選択してください。
上記のようなフォームが出来ます。
これは若干フィールドの幅等を修正したものです。
これを「F_名前検索」として保存します。
次に「検索」ボタンです。
プロパティシートで「イベントプロシージャ」を選択し「…」を押してください。
上記のようにVBAを記述する画面になります。
Private Sub コマンド47_Click()
DoCmd.OpenForm "F_名前検索", , , "氏名 like '*" & Me!テキスト45 & "*'"
End Sub
このように記述しました。
少し詳しく見て行きましょう。
「DoCmd.OpenForm "F_名前検索"」ここまでは分かりますね
「OpenForm」コマンドで「F_名前検索」フォームを開きなさいという命令です。
本来DoCmd.OpenForm は「OpenForm “FormName”, View,
FilterName, WhereCondition, DataMode, WindowMode, OpenArgs」
という構文になっています。
今回はWhereCondition,というところだけ使用します。
「F_名前検索」フォームを開くときの条件として、
「"氏名 like '*" & Me!テキスト45 & "*'"」という指定を行っています。
その前に「構文」のWhereCondition,の部分の前は省略できないので
「, , ,」が入っています。
「"氏名 like '*" & Me!テキスト45 & "*'"」この部分ですが、
最初の「氏名 like’*」と「最後の「*’」の間はそのまま文字列として認識されます。
上記の両端に「"」(ダブルクォーテーション)で囲われて、文字列であることが
表現されています。
「Me!テキスト45」とは、「Me」というのはよく使用するのですが、
「今アクティブになっているフォーム・レポート・コントロールの事」という
意味だと思ってください。
ここでは本来[Forms]![F_会員一覧]![テキスト45]と記載すべきところを
「Me!テキスト45」と記載されています。
そして「文字列」と「データ変数」を結合する場合は「&」(アンパサンド)で
つなぐというルールがあります。
仮に「テキスト45」に「小沢」という文字が入力されているとします。
「 "氏名 like '*" & Me!テキスト45 & "*'"」を分かりやすく言うと
「”氏名 Like’*小沢*’”」となります。
「DoCmd.OpenForm "F_名前検索", , , "氏名 like '*" & Me!テキスト45 & "*'"」
この全文を分かりやすく言うと「今から開く「F_名前検索」にある「氏名」に
「小沢」という文字を含むものを表示しなさい」という命令文です。
実際に「小沢」と入力して「検索」ボタンを押してください。
上記のように「小沢」を含む名前が表示されました。
上は「羽柴」で検索しました。
エルセーヌ「小顔ハリ美肌コース」エステ体験
タグ:Accessで検索
2017年09月29日
AccessVBAで入場券を作ろう
マイクロソフトエクセルのまとめ記事はこちら
Microsoft Office ブログランキングへ
別の検索方法
上のように新たに検索用のテキストボックスとボタンを作成しました。
「検索文字列」のボタンに書いたVBAは下記です。
Private Sub コマンド50_Click()
Dim v As Variant 変数vの宣言
Me.氏名.SetFocus 氏名にフォーカスを当てる
v = Me.テキスト48 変数vにテキストボックスの内容を格納する
Me!テキスト48 = Null 一旦テキストボックスの内容を消去する
DoCmd.FindRecord v, acAnywhere, False, acSearchAll, False, acAll, False ここで検索
Me!テキスト48 = v テキストボックスの内容を戻す
End Sub
上記のような流れです。
仮に検索する氏名に「津島」と入力して「検索文字列」ボタンを押してください。
上のように「津島 紳二」が検索され表示されました。
VBAの内容は理解できますか。
一旦テキストボックスの内容を消去していますね。
(Me!テキスト48 = Null)これが残っていると、ここを検索してしまうので、
一旦消去しています。
後は「DoCmd.FindRecord v, acAnywhere, False,
acSearchAll, False, acAll, False」この部分ですね。
【FindRecordの構文】
DoCmd.FindRecord FindWhat [,Match] [,MatchCase]
[,Search] [,SearchAsFormatted] [,OnlyCurrentField] [,FindFirst]
・FindWhat・・・検索データを指定します。
・[,Match]・・・検索条件を指定します。
acAnyWhere・・・部分一致
acEntire・・・フィールド全体と一致(規定値)
acStart・・・フィールドの先頭と一致
・[,MatchCase]・・・大文字・小文字の区別
True・・・区別する
False・・・区別しない(規定値)
・[,Search]・・・検索方法を指定します。
acUp・・・カレントレコードから先頭のレコードへ検索
acDown・・・カレントレコードから末尾のレコードへ検索
acSearchAll・・・全てのレコードから検索(規定値)
・[,SearchAsFormatted]・・・書式
True・・・
False・・・規定値
・[,OnlyCurrentField]・・・検索対象フィールド
acAll・・・全てのフィールドを対象
acCurrent・・・カレントフィールドだけを対象(規定値)
・[,FindFirst]・・・検索開始位置
True・・・先頭レコードから検索(規定値)
False・・・カレントレコードから検索
上記のような内容です。
「DoCmd.FindRecord v, acAnywhere, False, acSearchAll,
False, acAll, False」ここは上記の構文に則り正確に記載していますが、
「DoCmd.FindRecord v, acAnywhere,,,, acAll」
このように省略しても大丈夫です。