プロフィール
さんの画像

60過ぎのおっちゃんです。手探りでブログを立ち上げました。至らない点が多々あると思いますがご容赦ください。

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

2017年09月25日

Accessで検索

東京の人気ホテル・旅館が最大50%OFF





マイクロソフトエクセルのまとめ記事はこちら


Microsoft Office ブログランキングへ

「検索」をしてみましょう。

検索に関してはフォームの一番下の「検索」という欄に検索したい

文字列を入力すれば検索できるという事を以前紹介したと思います。


今回はフォーム上に「テキストボックス」と「検索ボタン」を配置して、

そのテキストボックスに記載された内容を検索するという仕組みを作りたいと思います。

一応「名前」を検索するようにします。


やり方としては色々あります。

思いついたものからやってみましょう。

入場検索1.png

まず、フォーム上にテキストボックスと検索ボタンを配置します。

今回のテキストボックスは「テキスト45」という名前でした。

(この名前は覚えておいてください。後で必要です)

最初に検索結果を表示するフォームを作成します。

「T_会員一覧」をベースにフォームウィザートでフォームを作ります。

項目は一応すべて選択し、途中で「票形式」を選択してください。

入場検索2.png

上記のようなフォームが出来ます。

これは若干フィールドの幅等を修正したものです。

これを「F_名前検索」として保存します。


次に「検索」ボタンです。

入場検索3.png

プロパティシートで「イベントプロシージャ」を選択し「…」を押してください。

入場検索4.png

上記のように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_名前検索」にある「氏名」に

「小沢」という文字を含むものを表示しなさい」という命令文です。


実際に「小沢」と入力して「検索」ボタンを押してください。

入場検索5.png

上記のように「小沢」を含む名前が表示されました。

入場検索6.png

上は「羽柴」で検索しました。




エルセーヌ「小顔ハリ美肌コース」エステ体験


タグ: Accessで検索

2017年09月29日

AccessVBAで入場券を作ろう








マイクロソフトエクセルのまとめ記事はこちら


Microsoft Office ブログランキングへ


別の検索方法


入場検索7.png

上のように新たに検索用のテキストボックスとボタンを作成しました。

「検索文字列」のボタンに書いた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

上記のような流れです。

仮に検索する氏名に「津島」と入力して「検索文字列」ボタンを押してください。


入場検索8.png

上のように「津島 紳二」が検索され表示されました。

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」

このように省略しても大丈夫です。







2017年10月03日

AccessVBAで入場券を作ろう

国内&海外ホテル予約『トリバゴ』





マイクロソフトエクセルのまとめ記事はこちら


Microsoft Office ブログランキングへ


検索


今「津島」という名前を検索し「津島 紳二」と表示されています。

ただし、「津島」はこの方だけではありません。

複数名いますね。

このような場合に「次を検索」という事をしたいですね。

入場検索9.png

「検索文字列」ボタンの隣に「次を検索」ボタンを設置しました。

このボタンのVBA記述は下記です。

Private Sub コマンド51_Click()

Dim v As Variant

Screen.PreviousControl.SetFocus

Screen.ActiveControl.SelStart = 255

v = Me.テキスト48

Me.テキスト48 = Null

DoCmd.FindRecord v, acAnywhere, False, acDown, , acAll, False

Me.テキスト48 = v

End Sub

まず「Screen.PreviousControl.SetFocus」ですが、

これはフォーカスを直前に戻すという意味です。

「次を検索」ボタンを押した段階で、フォーカスは「次を検索」ボタンに移動します。

これを1つ前に戻すためにこのコマンドが挿入されています。

次に「Screen.ActiveControl.SelStart = 255」ですが、

「SelStart」とは、テキストボックス内のどの部分にカーソルがあるかを示します。

今=255としている理由は、テキストボックスに入力できる文字数の最大が

「255」なので「255」にしています。このように「255」にしておけば自動的に

最後尾にカーソルが入ります。

「SelLength」というプロパティもあり、これはテキストボックス内の文字数を取得します。

ですから下のように記述しても同じ結果が得られます。

Screen.ActiveControl.SelStart = Screen.ActiveControl.SelLength

後は「DoCmd.FindRecord v, acAnywhere, False, acDown, , acAll, False」ですね。

最初の「検索文字列」の時と若干違っています。

・[,Search]・・・検索方法を指定します。

ここがacDown・・・カレントレコードから末尾のレコードへ検索になっています。

具体的に言うと「津島 紳二」から末尾に向かって検索しなさいという命令ですね。




ニキビ集中ケアの体験エステ <エステのエルセーヌ>



2017年10月08日

Access入門,入場券を作ろう








マイクロソフトエクセルのまとめ記事はこちら


Microsoft Office ブログランキングへ


検索

さて実際に「津島」と入力して「検索文字列」ボタンを押して

「津島 紳二」と表示された後に「次を検索」ボタンを押してみてください。

入場検索10.png

上のように「津島 真理」が表示されましたね。

もう一度「次を検索」ボタンを押してください。

「津島 ヒカル」と表示されましたね。

もう一度「次を検索」ボタンを押してください。

入場検索11.png

「津島 ヒカル」で止まりましたね。

これ以上「津島」という名前がなくなったことを示しています。



この検索機能は結構優秀です。

たとえば下のように「検索欄」「幼児」と記載して検索すると幼児でも検索できます。

入場検索12.png

もちろん「性別」でも「申込日」でも可能です。

最初に紹介した検索は「氏名」だけの検索でしたが、今回の検索は全てのフィールドに対して有効です。




===[PR]=====================================================
     月額1,980円(1年間・税別)で使えるスマホ【UQmobile】

     ◇番号そのままお乗換え可能!
     ◇当サイト限定初期費用&送料無料!
     ◇0円端末など豊富なラインナップ!

詳しくは↓↓
https://px.a8.net/svt/ejp?a8mat=2TIIN2+9W1A2Q+2CPQ+1BNBJN
=====================================================[PR]===

2017年10月14日

Accessで入場券を作ろう







top



マイクロソフトエクセルのまとめ記事はこちら


Microsoft Office ブログランキングへ

要保護者の追加


次に小学生と幼児は入場券に要保護者になるようにしましょう。

一番簡単にできる方法は、大人と子供に分けて作成することですね。

クエリもレポートも分けて別々に発券する方法です。

最初に、「Q_発券者」をコピーして貼り付けします。

貼り付けるときに名前を「Q_要保護者発券」としました。

要保護者1.png

それからデザインモードで年齢のところに「"幼児" Or Like "小*"」と

抽出条件を設定しました。

これは「幼児」または「小学生」を指しています。

これを通常表示にすると下のようになります。

要保護者2.png

発券日が未入力で「幼児」または「小学生」を抽出しています。


次は今までの「Q_発券者」に修正を加えます。

何故ならば「幼児」または「小学生」は別にしたので、抽出しないようにします。

要保護者3.png

年齢の抽出条件に「Not Like "小*" And <>"幼児"」と入力します。

これで小学生と幼児は抽出されなくなります。

通常表示にしてみましょう。

要保護者4.png

上記のように大人だけ抽出されました。




エルセーヌ「小顔ハリ美肌コース」エステ体験


2017年10月19日

Accessで入場券を作ろう

大容量256GB、メールアドレス数無制限、共有SSL対応のレンタルサーバー 『ヘテムル』





マイクロソフトエクセルのまとめ記事はこちら


Microsoft Office ブログランキングへ

レポートの追加

今のR_入場券をコピーして要保護者用のレポートを作成しましょう。

要保護者5.png

データのレコードソースを「Q_要保護者発券」にしましょう。

それから性別の隣に「要保護者」と大きく追加しました。

これは「ラベル」で追加です。

通常表示にしてみましょう。

要保護者6.png

上記のように小学生と幼児だけ表示されましたね。

後はフォームの入場券発券に、要保護者用の入場券も印刷するように

設定すればOKです。

要保護者7.png

要保護者用のレポートを開き印刷という動作を追加したのが上図です。

ここで「クエリを開く」の右側に上下の矢印が出ています。

下を押せばこのコマンドは下に移動します。一番下まで移動しましょう。


要保護者8.png

上記のようになりました。

これでほぼ動作としては完成ですね。


このやり方も様々な応用ができると思うので、各自で工夫されたら良いと思います。


入場券の作成についてはここまでで終了とします。




【この部分にお好きな文章を入力してください。】

2017年10月29日

Access入門,バックアップの作成




東京の人気ホテル・旅館が最大50%OFF


マイクロソフトエクセルのまとめ記事はこちら


Microsoft Office ブログランキングへ

入場券の作成は前回で終了とします。

とりあえずしばらくはこれといったテーマもありませんので、

思いついたものから記載して行きたいと思います。

そのため、今までよりももっと更新頻度は落ちるでしょうね。

職場で何か作って、紹介したいと思うアプリが出来たときは、また紹介します。


【バックアップの作成方法】


BA1.png

上記のように「ファイル」タブを選択してください。

BA2.png

それから「名前を付けて保存」を選択してください。

BA3.png

「データベースののバックアップ」を選択して

「名前を付けて保存」ボタンを押してください。

BA4.png

今「ドキュメント」内に「Access」というフォルダーを作成し、

そこに保存しようとしています。

「保存」ボタンを押すとバックアップが作成されます。




===[PR]=====================================================
     月額1,980円(1年間・税別)で使えるスマホ【UQmobile】

     ◇番号そのままお乗換え可能!
     ◇当サイト限定初期費用&送料無料!
     ◇0円端末など豊富なラインナップ!

詳しくは↓↓
https://px.a8.net/svt/ejp?a8mat=2TIIN2+9W1A2Q+2CPQ+1BNBJN
=====================================================[PR]===

2017年11月16日

Access入門,データベースの分割

東京の人気ホテル・旅館が最大50%OFF





マイクロソフトエクセルのまとめ記事はこちら


Microsoft Office ブログランキングへ


データベースの分割

Accessで作成したデータベースをテーブルとその他ファイルに分割する方法です。

複数人でデータベースを使用するような環境の場合はお勧めです。

前回作成した「入場券」アプリを使用して、分割してみましょう。

DB分割1.png

データベースツールタブの「Accessデータベース」というところをクリックしてください。

DB分割2.png

上記のようなメッセージが出ます。

読んでもらえれば内容は分かると思います。

また最後にありますように「実行する前に、データベースのバックアップを

作成してください。」とあるように、バックアップを作成してください。

「分割」ボタンを押してください。

DB分割3.png

上のようにバックエンドデータベースの保存先を聞いてきます。

「分割」ボタンを押してください。

この段階で何らかのエラーが出た場合はフォーム等開いているものを

すべて閉じた状態で再度実行してみてください。

DB分割4.png

ドキュメント「Access」内に「入場券.be」というファイルが出来ました。

またAccessのテーブルのところにマークが入りましたね。

これは分割されているというマークです。

テーブルが複数ある場合は、すべて分割されます。


データベースの分割というのを分かりやすく言うと、

Accessで大事な部分は「テーブル」です。

一つのデータベースを共有して複数人で使用している場合、

誰かがフォーム等を修正している場合(デザインビューで開いている)は

マルチアクセスが出来ません。

しかし分割してやれば問題なく使用できます。

そのため、テーブルとその他(クエリ・フォーム・レポート)を分割します。

また分割する方が処理速度も速くなります。

その他のファイルを編集した場合、その部分だけ全員に配布して

差し替えてもらえば済みます。

社内LANを構築されている場合は、テーブルをサーバーに置き、

クライアント側にその他ファイルを置き、サーバーのテーブルにアクセスするというイメージです。




■□■━━━━━━━━━━━━━━━━━━━━━━━━
     +++ 月額1,980円(1年間・税別)で使えるスマホ【UQmobile】 +++
https://px.a8.net/svt/ejp?a8mat=2TIIN2+9W1A2Q+2CPQ+1BQJAB


 ・番号そのままお乗換え可能!
 ・当サイト限定初期費用&送料無料!
 ・0円端末など豊富なラインナップ!
━━━━━━━━━━━━━━━━━━━━━━━━■□■

2018年01月05日

Accessで在庫管理








マイクロソフトエクセルのまとめ記事はこちら


Microsoft Office ブログランキングへ


在庫管理表

以前からAccessを使って「在庫管理」出来ないかと色々試しておりました。

Accessの機能を考えると「在庫管理なんか簡単にできるはず。」と思っていました。

しかし、いざ作ってみると意外に難しく、満足のいくものがなかなかできませんでした。


今回、4〜5回目くらいになると思うのですが「切手在庫管理表」を

作りました。

今度は比較満足できる状態まで仕上がったと思うので紹介したいと思います。

要素として

・切手の種類

・切手の購入先

・使用先

・在庫数

簡単に言えば上記4つですね。

ここからもう少し付け足して「指定日間の入庫・出庫の表示」が

できれば良いかなと思いました。

また長期間設定した場合は「月」別で表示したい。


「テーブル」としては

・切手の種類

・購入先

・使用先

・入出庫一覧

「クエリ」としては

・入出庫一覧テーブルから「入庫」と「出庫」に分けてクエリを作成

・そこから「全入庫数」と「全出庫数」を出すクエリ

・全入庫数から全出庫数を引いて在庫数を出すクエリ

・月別に表示するために「入庫」と「出庫」をクロス集計クエリにする

「フォーム」として

・切手種別編集フォーム

・購入先編集フォーム

・使用先編集フォーム

・メインフォーム

・入庫フォーム

・出庫フォーム

・在庫を表示するフォーム・・・レポートでもよいが・・・。

・その他(サブフォーム関係)


上記のようなことを念頭に置いて進めて行きたいと思います。







2018年01月11日

Accessで在庫管理








マイクロソフトエクセルのまとめ記事はこちら


Microsoft Office ブログランキングへ

テーブルの作成


在庫1.png

「T_切手種別」というテーブルが上記です。

在庫2.png

「T_仕入れ先」というテーブルが上記です。

先ほど「購入先」という表現にしましたが、今後の事を考えると

「仕入れ先」の方が応用できそうですね。そのような理由から名前を変えています。

在庫3.png

「T_出庫先」というテーブルが上記です。

在庫4.png

「T_入出庫」というテーブルが上記です。

テーブルに関しては別段コメントする内容はありません。

作成方法もフィールドの設定も既に分かっているという前提で進めます。

テーブル作成方法はこちらあたりの記事を参考にしてください












Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: