スポンサーリンク

2013年10月29日火曜日

フォームデザインによる入力フォームの作成方法入門 - アクセス・Access2013

Access2013のフォームデザインを使用し入力フォームを作成する方法です。

下の顧客テーブルを元に入力フォームを作成します。
顧客テーブルを元に入力フォームを作成します
リボンの[作成]-[フォームデザイン]をクリックします。
フォームデザインのヒントです「新しい空のフォームをデザインビューで作成します。デザインビューでは、独自のコントロールの種類の追加やコードの記述など、高度なデザイン変更をフォームに対して実行できます。」
[フォームデザイン]をクリックします
  1. リボンの[デザイン]タブにします。
  2. [プロパティ シート]をクリックしプロパティ シートを表示します。
  3. プロパティ シートを[データ]タブにします。
  4. [レコード ソース]で元になる「顧客テーブル」を選択します。
[レコード ソース]で元になる「顧客テーブル」を選択します
  1. リボンの[フォーム デザイン]-[デザイン]でコントロールの[テキストボックス]を選択します。
  2. フォーム上にドラッグし配置します。
コントロールの[テキストボックス]を選択します
  1. テキストボックスをクリックし選択します。
  2. プロパティ シートを[データ]タブにします。
  3. コントロールソースで入力するフィールドを選択します。
コントロールソースで入力するフィールドを選択します
  1. ラベルをクリックし選択します。
  2. プロパティ シートを[書式]タブにし[標題]に入力するタイトルを入力します。
[書式]タブにし[標題]に入力するタイトルを入力します
ラベルとテキストボックスの位置を調整します。
ラベルとテキストボックスの位置を調整します
同様に次に入力するテキストボックスを作成します。
テキストボックスを作成します
配置が完了したフォームビューの画面です。
レコード移動は下のレコード移動ボタンで可能です。
レコード移動は下のレコード移動ボタンで可能です

2013年10月27日日曜日

郵便番号から住所を自動入力する - アクセス・Access2013

Access2013で郵便番号を入力すると自動的に住所を表示する方法です。

  1. フォームデザインで[郵便番号][住所]を入力するテキストボックスを配置します。
  2. [郵便番号]を入力するテキストボックスをクリックし選択します。
  3. プロパティシートで[その他]タブにし[住所入力支援]の右の[・・・]ボタンをクリックします。

[郵便番号][住所]を入力するテキストボックスを配置します
住所入力支援ウィザード ダイアログが開きます。
「このフォームで郵便番号、住所、カスタマーバーコードデータの入力を支援するための設定を行います。入力先には必ずテキストボックスを指定してください。」「郵便番号を入力するテキストボックスを指定してください。このテキストボックスは、後で指定する住所テキストボックスと相互に入力が支援されます。」で郵便番号を入力するテキストボックスを指定します。
住所入力支援ウィザード ダイアログ
住所を入力するテキストボックスを指定してください。住所のテキストボックスは、4つまで分割して指定できます。住所の構成を選択すると、必要なテキストボックスと入力データの例が表示されます。」で[住所の構成]と[住所]を入力するテキストボックスを指定します。
[住所の構成]と[住所]を入力するテキストボックスを指定します
「これで、このフォームへの住所入力支援機能の設定は完了しました。以下のテキストボックスで入力動作の確認ができます。郵便番号や住所のテキストボックスに入力すると、対応するデータが自動入力されます。」で郵便番号を入力すると住所が自動表示されます。
これで設定完了です。
住所入力支援機能の設定は完了しました
フォームビュー画面です。 郵便番号の住所変換が出来るようになりました。
郵便番号の住所変換が出来るようになりました


2013年10月25日金曜日

クエリでDatediff関数を使う - アクセス・Access2013

Access2013クエリでDatediff関数を使い2つの日数の間隔を取得します。

ドントフォーゲットのデータベースです。 このテーブルは[するべきこと][いつまで][実行日]フィールドで構成されています。
クエリでDatediff関数を使用し[実行日]と[いつまで]の経過日数を計算します。
Datediff関数を使用し経過日数を計算します
クエリのデザイン画面です。 下のDatediff関数を使った計算式を入力します。
 経過日数: DateDiff("d",[するべきこと]![いつまで],[するべきこと]![実行日])
Datediff関数を使った計算式を入力します
[実行日]と[いつまで]の経過日数が計算できました。
経過日数が計算できました

2013年10月23日水曜日

クエリでLike演算子を使いあいまい抽出をする - アクセス・Access2013

Access2013のクエリでLike演算子を使いあいまい抽出を行います。

抽出元の顧客名簿テーブルです。
抽出元の顧客名簿テーブル
顧客名フィールドから名前に「木」の文字が含まれるレコードを抽出します。
クエリのデザイン画面で[顧客名]の抽出条件に Like "*木*" と入力します。
[顧客名]の抽出条件
名前に「木」の文字が含まれるレコードが抽出できました。
レコードが抽出できました
「木」か「三」が含まれる名前を抽出します。
クエリのデザイン画面で[顧客名]の抽出条件に Like "*木*" Or Like "*三*" と入力します。
クエリのデザイン画面

名前に「木」か「三」の文字が含まれるレコードが抽出できました。
文字が含まれるレコードが抽出できました

2013年10月21日月曜日

NZ関数でNULLを別の値に置換える - アクセス・Access2013

Access2013のクエリでNZ関数を使いNULLを別の値に置換えます。

下画像のクエリの[血液型]には何も入力されていないNULL値のレコードがあります。 このNULL値をNZ関数を使い「不明」と表示させます。
NZ関数を使い「不明」と表示させます
NZ関数を使った下記の計算式を入力します。
Blood: Nz([血液型],"不明")
NZ関数を使った下記の計算式を入力
実行結果です。 血液型がNULLのデータに「不明」と表示されました。
血液型がNULLのデータに「不明」と表示されました

2013年10月19日土曜日

重複データをまとめる - アクセス・Access2013

Access2013で重複したデータがある場合、まとめて一つだけ表示させます。

「顧客名」「血液型」で構成されて顧客テーブルです。
  • 室 敬三 さんは名前は同じですが血液型が違います。
  • 佐々木 和夫 さんと 寺島 富雄 さんは名前も血液型も同じで重複しています。
重複している「佐々木和夫」さんと「寺島富雄」さんをクエリを作成しまとめます。
「顧客名」「血液型」で構成されて顧客テーブル
クエリをデザインモードで作成します。
  1. 「顧客名」「血液型」フィールドを選択します。 オートナンバー型の[ID]はレコード固有の番号なので、同じものは存在しません。そのためクエリには加えません。
  2.  リボンの[クエリ ツール]-[デザイン]-[集計]をクリックします。
[クエリ ツール]-[デザイン]-[集計]をクリック
すると[集計]の行に「グループ化」と表示されます。
[集計]の行に「グループ化」と表示
クエリの実行画面です。 重複レコードが一つになり表示することができました。
重複レコードが一つになり表示

2013年10月17日木曜日

テンプレート - アクセス・Access2013

Access2013のテンプレート一覧です。

Access2013を起動すると下記のテンプレートを選択することができます。
  •  カスタムWebアプリ
  • 取引先住所録
  • 資産管理
  • 連絡先
  • 案件管理
  • プロジェクト マネジメント
  • タスク管理
  • プロジェクト

2013年10月14日月曜日

Trim関数の使用例 - アクセス・Access2013

Access2013のクエリでTrim関数を使用する方法です。
Trimは文字列から先頭または末尾のスペースを削除する関数です。

下の製品名にはスペースが含まれています。
  •  プリンタ AP-100 : 先頭に全角スペース
  •  プリンタ AP-200 : 先頭に半角スペース
  • デジカメ CA-500 : 末尾に全角スペース
  •  HDD  : 先頭と末尾に全角スペース
スペースが含まれた製品名
Trim関数を使ったクエリを作成します。
空白なし製品名: Trim([製品名])
Trim関数を使ったクエリ
Trim関数を使ったクエリの実行画面です。 先頭と末尾のスペースが削除できました。
Trim関数を使ったクエリの実行画面

2013年10月11日金曜日

Instr関数の使用例 - アクセス・Access2013


Access2013のクエリでInstr関数を使い、スペースで区切られた名前から苗字と名を取り出します。

使用する顧客テーブルです。 顧客名は「苗字+スペース+名」の形式になっています。
顧客テーブル
 クエリデザインでInstr関数を使った式を入力します。
  • 苗字を取り出す式 :  苗字: Left([顧客名],InStr(1,[顧客名]," ")-1)
    Instr関数でスペースを検索し、見つかった位置の1文字前から左の文字列を取り出します。
  • 苗字を取り出す式 : 名: Mid([顧客名],InStr(1,[顧客名]," ")+1)
    Instr関数でスペースを検索し、見つかった位置の1文字後からの文字列を取り出します。
 クエリデザインでInstr関数を使った式を入力
 実行結果です。 顧客名から苗字と名を分解し取り出すことができました。
顧客名から苗字と名を分解し取り出すことができました

2013年10月9日水曜日

Excelとリンクする - アクセス・Access2013

Access2013でExcelの表とリンクするする方法です。 Excelでデータを変更するとAccessに反映されます、Accessではデータ変更はできません。

■Excelリンクの準備
  1. Accessとリンクする範囲を選択します。
  2. リボンの[数式]-定義された名前グループの[名前の定義]をクリックします。
  3. 新しい名前ダイアログが開くので、名前を入力し[OK]ボタンをクリックします。
これで準備は完了です。
AccesとExcelのリンクの準備
■AccessからExcelにリンクする
リボンの[外部データ]-インポートとリンクグループの[Excel]をクリックします。
Excelのヒントです「Excelスプレッドのインポート Microsoft Excel ファイルからデータをインポートします。または、Microsoft Excelファイルのデータにリンクします。」
AccessからExcelにリンクする
外部データの取り込み-Excelスプレッドシートダイアログが開きます。
「データのインポート元とインポート先、またはリンク元とリンク先の選択」で
  1. 「インポート結果」部分のファイル名を指定します。
  2. 「現在のデータベースの保存方法と保存場所を指定してください。」で
  • 「現在のデータベースの新しいテーブルにソースデータをインポートする」 指定したテーブルが存在しない場合は、そのテーブルが作成されます。指定したテーブルが既に存在する場合は、インポートされたデータでテーブルの内容を上書きする可能性があります。ソースデータへの変更は、データベースに反映されません。 
  • 「リンクテーブルを作成してソースデータにリンクする」 Excelのソースデータとのリンクが保持されているテーブルが作成されます。Excelでソースデータび対して行った変更hs、リンクテーブルに反映されます。ただし、ソースデータをAccessから変更することはできません。
「リンクテーブルを作成してソースデータにリンクする」を選択します。
リンクテーブルを作成してソースデータにリンクする
スプレッドシート リンク ウィザード ダイアログが開きます。
「指定したファイルには、複数のワークシートまたは範囲が含まれます。ワークシートまたは範囲から必要なものを指定してください。」で
  1. [名前の付いた範囲]を選択します。
  2. Excelで上で名前の定義した名前を選択します。
スプレッドシート リンク ウィザード

「元のデータの先頭行が列見出しである場合、これをフィールド名として使うことができます。」で今回はExcelの項目名も範囲指定しているので、「先頭行をフィールドとして使う」にチェックします。
先頭行をフィールドとして使う
「これで、データをリンクするための設定は終了しました。」で[リンクしているテーブル名]を入力します。ここではExcelの範囲定義名をそのまま使います。
リンクしているテーブル名
リンクテーブルが作成されました。テーブルのアイコンはExcelになっています。Excelで項目名を付けていなかった「月」の部分は自動的に「F1」のフィールド名になっています。
リンクテーブルが作成されました
Excelでデータを変更します。
Excelでデータを変更します

Accessのデータに反映されます。 すぐに反映させたい場合はリボンの[ホーム]-レコードグループの[すべて更新]をクリックします。
Accessのデータに反映されます
以上でAccesからExcelとのリンクは終了です。 Excelをデータ入力ソフトとして利用し、Accessで大量のデータをデータベースに蓄積し解析するようなことができそうです。

2013年10月6日日曜日

MsgBox関数の使い方 - アクセス・Access2013





Access2013でMsgBox関数を使う方法です。


MsgBox関数を使うとユーザーにメッセージを表示することができます。 例えば「終了しますか?」「削除してもよろしいですか?」「入力できません。」などがよくあります。

■MsgBox関数の構文
MsgBox(prompt[, buttons][, title][, helpfile, context])
  •  prompt : メッセージの文字列
  •  buttons : (省略可)ボタンやアイコンを指定
  •  title : (省略可)タイトルバーに表示する文字列
  •  helpfile : (省略可)使用するヘルプファイルの名前
  •  context : (省略可)ヘルプトピックに指定したコンテキスト番号
■buttonsの種類
 定数 値   内容
 vbOKOnly  0 [OK]ボタン
 vbOKCancel  1 [OK] ボタンと [キャンセル] ボタン
 vbAbortRetryIgnore  2 [中止][再試行][無視] ボタン
 vbYesNoCancel  3 [はい][いいえ][キャンセル]
 vbYesNo  4 [はい] ボタンと [いいえ] ボタン
 vbRetryCancel  5 [再試行] ボタンと [キャンセル] ボタン
 vbCritical  16 警告メッセージアイコン
 vbQuestion  32 問い合わせメッセージアイコン
 vbExclamation  48 注意メッセージアイコン
 vbInformation  64 情報メッセージアイコン
 vbDefaultButton1  0 第1ボタンを標準ボタンにする
 vbDefaultButton2  256 第2ボタンを標準ボタンにする
 vbDefaultButton3  512 第3ボタンを標準ボタンにする
 vbDefaultButton4  768 第4ボタンを標準ボタンにする
 vbApplicationModal  0  MsgBoxを閉じるまで、現在のアプリケーションを操作できない
 vbSystemModal  4096  MsgBoxを閉じるまで、すべてのアプリケーションを操作できない
■戻り値
 定数  値 選択されたボタン 
 vbOK  1  OK
 vbCancel  2 キャンセル 
 vbAbort  3  中止
 vbRetry  4  再試行
 vbIgnore  5  無視
 vbYes  6  はい
 vbNo  7  いいえ

■使用例
ret = MsgBox("メッセージボックス使用例", vbOKOnly + vbInformation, "MsgBox")
vbOKOnlyのMsgBox
ret = MsgBox("中止しますか?", vbYesNoCancel + vbQuestion, "MsgBoxサンプル")
vbYesNoCancelのMsgBox

2013年10月4日金曜日

アクセス・Access2013の値段

Access2013を購入する場合、Office Professional2013 か Access2013 を単体で購入するかになります。 Office Professional2013には下記のソフトが含まれます。
  • Word2013 - ワープロソフト
  • Excel2013 - 表計算ソフト
  • PowerPoint2013 - プレゼンテーション用ソフト
  • OneNote2013 - デジタル ノートブック
  • Outlook2013 - メールソフト
  • Publisher2013 - ページレイアウトソフト
  • Access2013 - データベース
値段はマイクロソフト直販で ¥62,790 でした。 アップグレード版・アカデミック版は半額前後になります。
Access2013単体はマイクロソフト直販で ¥15,540 でした。
通常の商品と同様に店により値段も違うので安価なお店をさがしてください。

2013年10月2日水曜日

MID関数を使う - アクセス・Access2013

Access2013のクエリでMID関数を使います。

クエリのデザインビュー画面です。 この日付からMID関数を使い年と月と日を取り出します。
クエリのデザインビュー画面
下記のMID関数を使った計算式を入力しました。
  •  年: Mid([T_入出庫]![日付],1,4) : 日付の1番目から4文字取り出します。
  •  月: Mid([T_入出庫]![日付],6,2) : 日付の6番目から2文字取り出します。
  •  日: Mid([T_入出庫]![日付],9,2) : 日付の9番目から2文字取り出します。
MID関数を使った計算式
MID関数で日付から年と月と日を取り出した結果です。 月と日は先頭に0が付いているので文字型になっているのが分かります。
MID関数で日付から年と月と日を取り出した結果