Access Tips

 Accessを利用するにあたってちょっと役立つかもしれない知識について、本編からの抜粋を含めいくつか紹介します。
 実用性を無視したネタみたいなものがかなりありますがご容赦を_ _)

目次

基本操作・設定

内容重要度難度
テーブル、クエリ等をタブではなく同時に開いて見比べる設定★★★
列をウインドウ内の右側から並べる
ファイルを開いたときにフォームを自動的に表示する★★★
ファイルのバックアップを作成する★★★
ファイルのパスワードを設定する
1つ前のレコードと同じ値を入力する
最適化によりファイルをメンテナンスする★★★
Accessを最新の状態に更新する★★
サンプルデータベース(ノースウインド2007)を利用する
マイクロソフトにフィードバックを送信する
プロパティシートを移動または固定する
CSVファイルをインポートする★★
システムオブジェクト(システムテーブル)を表示する
ナビゲーションウインドウの幅を変えられなくなったときの対応
隠しオブジェクトを作成(表示)する
コントロールの大きさと位置を揃える
リボン上のボタンを大きく表示する(タッチモード)
長さの指定の際に使える単位
フィールド移動時のカーソルの位置を設定する★★
レポートやその他のオブジェクトをPDFに出力する★★
公式チュートリアル動画を見る★★
ナビゲーションウインドウの開閉と表示・非表示の切り替え★★

テーブル

内容重要度難度
値要求と空文字列の許可の効果と注意点★★★★
空文字列(長さ0の文字列)を入力する
ふりがなを自動的に入力する
テーブルに列の合計等を表示する行(集計行)を表示する★★
主キーは1つのテーブルに1つだけ★★
添付ファイル型に設定できない場合
日付を和暦で表示する★★★
テーブルのデータの変更(追加・更新・削除)を禁止する★★
列を固定する
日付から曜日を求める★★★
未入力のフィールドに代わりの文字列を表示する
郵便番号から住所を(住所から郵便番号を)自動入力する★★
プラス・マイナス・ゼロの数値の表示方法あれこれ★★★
全角文字のみ入力させる
インデックスを自動的に作成する設定
添付ファイル型のフィールドの名前を表示する
入力規則を追加・変更したときにNull値がエラー扱いされる
自テーブルをサブデータシートにして自動展開するとどうなるか
複数の列に関係する入力規則の設定★★★
数字のゼロ埋め(ゼロパディング)をする★★
改行を禁止する
「午後3時45分」といった時刻表示をする★★
「インデックス、主キー、またはリレーションシップで値が重複…」のエラーが出る原因★★
数字だけで日付を入力する設定

リレーションシップ

内容重要度難度
主キーが複合キーである場合の参照整合性等の設定★★★★★
主キーではなくインデックスを利用する参照整合性等の設定
1つのテーブルにある複数の外部キーが同じ主キーを参照している場合の参照整合性等の設定★★★★
参照整合性の設定時における代表的なエラーと対応例★★★★★
リレーションシップとそれに類似する機能や考え方の区別について★★★
Null値に対する連鎖更新と連鎖削除の挙動について★★
リレーションシップの設定画面の内容を印刷する
一対一リレーションシップの設定時にはドラッグの向きに注意★★

クエリ・SQL

内容重要度難度
クエリを開いたときにMsgBox関数でメッセージを表示する
同じ行を2行ずつ出力するクエリ
縦持ちデータを横持ちデータに変換する★★★★
横持ちデータを縦持ちデータに変換する★★★★
縦持ち・横持ちの変換、クロス集計、行列の入れ替えの違い
テーブルに依らないクエリ
クエリで抽出条件としてNullを指定する★★★
SQL集合関数を列方向(横方向)に用いて集計を行う★★★★
レコードごとに複数の列の値を比較して最大値を求める★★★★
UNIONとUNION ALLを併用した場合の結果
クエリですべての列が表示されてしまう設定
クエリの「固有の値」プロパティと「固有のレコード」プロパティ★★
DISTINCTとDISTINCTROWの違い
期間の重複をチェックする★★★★
並べ替えの基準となる列を列番号で指定する
循環参照エラーを回避し同名の列を出力する★★
値が何種類あるか数える★★★★
オートルックアップクエリの利用★★★★
「指定した式の構文が正しくありません。」エラーが出る意外な例
パラメータクエリで値を入力しないときにすべてのレコードを返す★★
パラメータクエリにIn演算子を用いて複数の条件で抽出するための設定
相関係数を求める
グループごとにn行ずつレコードを抽出する
クエリパラメーターウインドウの利用
DLookUp関数による値の抽出と結合(Join)による値の抽出★★
クエリでエラーを表示させない
TOP句を用いる際にはORDER BY句の内容による抽出レコード数の違いに注意
「~を途中に含む」という条件で抽出する★★
同じ値が何回連続しているか数える★★★★
グループ化しても同じ値の行が複数出る例
空きのない順位(DENSE_RANK)をつける★★★★
クロス集計クエリで集計値がNullとなるのを0にする★★★★
クロス集計クエリの列見出しの順序を任意に指定する★★
飲み合わせ・食べ合わせの検索の例★★★
重複クエリウィザードを使わずに重複レコードを抽出する★★★★
重複クエリウィザードはレコードをどのように抽出しているか★★
完全外部結合を実現する
In (Null)という条件ではNullを抽出できない★★
グループ化集計の結果に対する絞り込みと集計対象レコードの絞り込みの違い★★★
クエリで1つ前のレコードの値を取得する★★
クエリのパラメータ入力時にインプットボックス(InputBox関数)を使う★★

フォーム

内容重要度難度
コントロールを矢印キーで少しずつ動かす★★
既定値により自動で連番をふる★★★★★
既定値により欠番を埋めながら自動で連番をふる★★★★
入力時にヒントとなるテキストをポップアップ表示する★★
コンボボックスの2列目以降の値を別のテキストボックスに表示する★★★
コンボボックスの何行目が選択されているかを取得する
選択後のコンボボックスに複数の列の値を表示させる★★
コンボボックスの「区切り文字」プロパティ
チェックボックス等の「トリプルステート」プロパティ
コンボボックス等の「値集合ソースの値のみの表示」プロパティ★★
コンボボックス等の「値リストの継承」プロパティ★★
チェックボックス等の値がNullのときの表示をメッシュ状にする★★
テキストボックス内でEnterキーだけで改行できるようにする
オプショングループ(フレーム)に選択肢を追加する
カレントレコードの背景色を変えて強調する★★
帳票フォームに簡易な行番号(1,2,3…)を表示する★★
存在しない値リストに基づくコンボボックス等が表示される★★
コンボボックス等のスクロールバーを左側に表示する
入力時にテキストボックスをズームさせる
選択中のコンボボックスのリストをコンボボックス本体より広げて表示する★★★
値がNullであることを条件とする条件付き書式の設定★★
コンボボックスに値を直接入力するときに自動的に補完させない(自動拡張プロパティ)
ラベルのないコントロールをラベルと結び付ける
リンク親フィールドが空のときにサブフォームのレコードをすべて表示する★★
テキストボックスに透かし文字を表示する
カーソルがテキストボックスの何文字目にあるかを取得する★★
検索文字列をすべてハイライト表示で強調する★★
テキストボックスに入力中の値を取得する
フォームであいまい検索を実現する設定の例★★★★★
フォーム上でのレコードの追加・更新・削除を禁止する★★
テキストボックス等の使用可・不可をチェックボックスで制御させる
フォーム上にデータシートとサブデータシートを表示する
フォームでSum関数の結果が「#エラー」になる原因★★
フォームでのアンカーによるレイアウト調整
コントロールをグループ化する
ラベルの文字を縦位置の中央に表示する
集合形式レイアウトのコントロールの幅を個別に変更する★★
空白セルを作成する
テキストボックスの文字を縦位置の中央に表示する★★
ボタンの形とスタイルを変更する
コンボボックスに直接キー入力をさせない
Enterキーを押したときにフォーカスを移動させない
大きいチェックボックスを作る
ただのテキストボックスにカレンダーコントロールを使えるようにする
モーダルフォームを作る★★

レポート

内容重要度難度
合計値をページ下部に表示する(その1)★★
レポートでオートシェイプを利用する
イメージ(画像)のサイズと縦横比の調整★★
境界線と枠線の設定の違い
ページごとに1から連番をふる★★
文字列の一部だけ書式を変える★★★
レポートでレコードごとに連番をふる★★★
グループ化や並べ替えのキーとして関数を使う
縦書きで表示する★★
ページ番号と総ページ数を表示する★★★
グループごとにページ番号をふる★★★★
縦書きにしたときに文字や数字が横向きになる場合の対応★★
前のレコードと同じ値の場合に「同上」「〃」「々」などを表示する★★
「サブクエリでは、マルチレベルGROUP BY句は使用できません。」のエラーを回避する★★
レポートでページ毎の合計を表示する★★★★
コントロールを手前(奥)に移動する★★
すべてのグループのページ数を偶数にする★★
レポートでSum関数の結果が「#エラー」等になる原因★★
文字列の長さに応じてテキストボックスを拡張・縮小する(印刷時拡張・印刷時縮小)★★★
印刷時拡張を設定した時にテキストボックスの高さを揃える★★
ラベル印刷を用紙の途中から開始する★★
段組みの方向を右から左にする
レポートに透かし文字を表示する★★
レポートの罫線をページの下部まで表示する★★★★
ラベルを指定した枚数ずつ印刷する★★
レポートに取り消し線(打ち消し線)をひく

関数と演算子の応用

内容重要度難度
生年月日から満年齢を求める★★★
住所から都道府県を抽出する★★★
クエリでのRnd関数による抽選★★★★
月末の日付を求める★★
直近の日曜日を求める★★
Switch関数でElseに相当する条件(いずれにも該当しない場合)を設ける★★
割り算の余りを求める★★
あかさたな…で行分けする★★
Imp演算子
文字列に1文字ずつスペースをはさむ
半角数字を横書き(縦中横)にした縦書き文字列をつくる★★
四捨五入する★★★
日付から年度を求める★★
数字を漢数字に変換する★★
日付(和暦)の数字を漢数字に変換する★★
円周率を求める
度数とラジアンを変換する
2文字以上の文字列を指定した回数繰り返す
その日がその月の第何週目にあるのかを求める★★
その日の曜日がその月で何回目なのかを求める
常用対数(あるいは任意の底を持つ対数)を求める
月の最初の日曜日(または任意の曜日)の日付を求める
月の最後の日曜日(または任意の曜日)の日付を求める
生年月日から干支を求める
数値の切り上げをする
DateAdd関数による月末の日付から1月後(または1月前)の日付の扱い★★
文字列中にある特定の文字(または文字列)の数を数える
回文を判定する
苗字と名前(姓と名)を分割する★★
文字列の左端や右端(あるいは両方)に並んでいる特定の文字を取り除く
ある日付から満何年何か月と何日経過しているかを求める
カッコなどの囲み文字とその内側の文字列を削除する
数値の大小に基づき順位をつける★★★★★
FLOOR関数とCEILING関数を実現する
濁点と半濁点を取り除く(清音化)★★★★
文字列から数字だけを抽出する★★★★
住所から番地以下を抽出する★★★★
日付を表す文字列を日付型に変換する★★★
いろは順で並べ替える★★
ゼロ埋めされた数値形式の文字列の左側の0を取り除く★★
ExcelのVLOOKUP関数(第4引数TRUEによる近似値検索)を実現する★★
Any演算子とAll演算子
関数で文字種を変換する★★
文字列のうち数字だけを半角に変換する★★
日付に基づき上旬・中旬・下旬に区分する
数値を表す文字列を数値型に変換する★★
特定の文字より左側にある文字列を抽出する★★
特定の文字のうちn番目のものの文字位置を求める
特定の文字より右側にある文字列を抽出する
n文字目の文字を別の文字に置き換える

その他・未分類

内容重要度難度
名前付けの規則(命名規則)と接頭辞
起動中のファイルのパスやファイル名を表示する
正規化の説明に主キーを持ち出すのは大きな誤り★★★
エクスポート時にファイル形式と出力先を選択させる
フォルダ内のファイル名の一覧をテーブルに記録する★★★★