DXR165の備忘録

自分用の備忘録です。

Access テキスト フィールドに保存されている数値に基づいてレコードを並べ替える際の注意点  

テキスト フィールドに保存されている数値に基づいてレコードを並べ替えると一般的に想定する順序(数値の小さいもの順またはその逆)になりませんので注意が必要です。


テキスト フィールドに1から21までの数値しか格納されていない場合で昇順に並べ替えを実行すると

1
10
11
12
13
14
15
16
17
18
19
2
20
21
3
4
5
6
7
8
9
のようになります。左からまず1文字目がまず評価され、つぎに2文字目がというような仕様と思われます。「まさか、こうなるとは」と思ってしまいますね。商品コードなどで数値しか入らないがテキスト型にしているときなど注意が必要です。

category: Access テーブル

tb: 0   cm: 0

Access 日付/時刻型フィールドの表示形式について  

Access のテーブルで日付/時刻型のフィールドを作成した場合、様々なケースで表示形式に注意する必要があります。

1.データシートビュー、フォーム、レポートでの表示はWindows の地域と言語の日付と時刻の形式の短い形式の書式で表示されます。どのパソコンでも同じ表示にしたい場合はフィールドの書式を明示的に指定しておくと、フォーム・レポート上の連結フィールドにもその書式が継承され、その書式で表示されます。

2.クエリのデザインビューで日付/時刻型フィールドに抽出条件を指定する場合はWindows の地域と言語の日付と時刻の形式の短い形式の書式の影響を受けるようです。

3.Access SQLで日付を扱う場合は#m/d/yy#の形式で指定します。日付の表示書式を変更するにはFormat 関数を使用します。

category: Access テーブル

tb: 0   cm: 0

Access テータシートビュー  

テーブルのデータは本来はそれ専用のフォームを作成し、データを入力、検索、変更などできるようにします。しかし、Access ではその方法を使わずとも、どのテーブルでも使えてほぼ同等の機能をする「テータシートビュー」というフォーム(極端な言い方ですが)が用意されています。このおかげで、テーブルを設計したあとにすぐにデータシートビューでデータを入力できます。テーブルやクエリの開くときの規定値のビューはデータシートになっています。

category: Access テーブル

tb: 0   cm: 0

Access リンクテーブル Excel  

Excelのワークシートをリンクテーブルとして扱えます。実務でもよく必要性があるケースです。ただし、以下の点で注意が必要です。

Access 2003 SP2以降また、Access 2007以降では Excel ブックにリンクされているテーブル内のデータの変更、追加、削除を行うことができません。

リンクテーブルを作成した際、各列に適用されるデータ型・サイズは Access によって、自動的に決定され変更できません。 

Access 2010でExcelのワークシートをリンクしたときのデータ型は以下のようになっています。
     数値 → 数値型(倍精度浮動小数点型) 
     文字列 → テキスト型(255)
     日付時刻 → 日付/時刻型


メモ
どのようなデータ型が設定されているかは、リンクテーブルをデザインビューで開くと確認できます。Excelのワークシートをリンクテーブルとして使用するときは、どのようなデータ型が適用されているかをよく調べておく必要があります。

Excel リンクテーブルのデータ型で問題が発生した場合は一時的で局所的な回避策ですがインポートに切り替えてデータ型を指定することで回避できます。Excel のデータをレポートで印刷するといったケースではこの回避策で対応できると思われます。
(2012/10/18 追記)
Access 2003 ではExcel ワークシートをインポートするとき、各フィールドのデータ型はAccess により自動判定されたデータ型が決定され、ユーザーがデータ型の指定をすることはできません。Access 2007 以降ではExcel ワークシートをインポートするときデータ型を各フィールド毎に指定できます。

category: Access テーブル

tb: 0   cm: 0

Access テーブルの結合  

リレーションシップでのテーブルの結合
データベース作成時にテーブルを定義したあとで、データを入力する前に定義しておく。
結合の参照整合性はクエリでは定義できず、リレーションシップでしか定義できない。(注1)

(注1)
SQLを使えば、クエリでも参照整合性を定義できます。

ALTER TABLE
売上
ADD CONSTRAINT
売上の整合性1
FOREIGN KEY(
社員コード
)
REFERENCES
社員(
社員コード
)
;


クエリでのテーブルの結合
リレーションシップで定義されていれば、自動的に結合されている。
リレーションシップで定義されていない結合でそのクエリだけで結合したい場合はクエリで結合を定義する。

テーブルの結合の種類
リレーションシップで結合を定義すると結合の種類は内部結合(規定値)になります。通常は内部結合でOKです。
データ活用などで蓄積したデータをいろんな角度で見たいときにクエリで外部結合を使います。
結合の種類の設定は結合プロパティで設定します。

備考
結合するフィールドのデータ型が数値型の場合(Access 2010で検証)で調べた範囲では

リレーションシップのテーブル結合で参照整合性を定義する場合、結合するフィールドのデータ型とフィールドサイズが同じでないといけません。
リレーションシップのテーブル結合で参照整合性なしで結合する場合は、以下の組み合わせでは結合するフィールドのサイズが違っていてもだいじょうぶのようです。

長整数型 -- 倍精度浮動小数点型
長整数型 -- 単精度浮動小数点型
倍精度浮動小数点型  --  単精度浮動小数点型
※注意 すべてのサイズの組み合わせを検証した結果ではなく、少なくとも上記の組み合わせでの結果ということです。

クエリでのテーブルの結合で以下の組み合わせでは、結合するフィールドのサイズが違っていてもだいじょうぶのようです。

長整数型 -- 倍精度浮動小数点型
長整数型 -- 単精度浮動小数点型
倍精度浮動小数点型 -- 単精度浮動小数点型
※注意 すべてのサイズの組み合わせを検証した結果ではなく、少なくとも上記の組み合わせでの結果ということです。

category: Access テーブル

tb: 0   cm: 0

Access データベース設計  

テーブルのフィールドプロパティはそのテーブルをもとに作成したフォームのフィールドプロパティに継承される。

小数点以下桁数を入力制限する
例 小数点第一位で入力制限
入力規則: Fix([フィールド名]*10)/10

テーブルとクエリには同じ名前をつけることが出来ない。

category: Access テーブル

tb: 0   cm: 0

Access デーブルを完成させた後にフィールドの書式変更  

Access2003以降ではデーブルを完成させた後にフィルードの書式を変更すると<プロパティの変更オプションボタン>が表示される。このボタンで関係するすべてのコントロールを更新することができる。

category: Access テーブル

tb: 0   cm: 0

Access テーブルのフィールドにルックアップリストを設定  

記事修正 2012/10/06
テーブルのフィールドにルックアップリストを設定するケースとそのメリット

ケース
表示する項目がスクロールバーで見渡せるような項目数で、変更がほとんどないような場合。値リストとして設定する場合。例 性別(男、女)など

メリット
ルックアップを設定したフィールドをフォームに貼り付けると、自動的にコンボボックスが設定される。 
値リストに変更があった場合も<プロパティの変更オプションボタン>機能で関係するオブジェクトにも変更が反映される。

方法
フィールドにルックアップリストを設定するにはウィザードが便利です。ウィザードを起動するにはデータ型のリストボックスの最下段の<ルックアップ ウィザード>を選択します。(見つけにくいです。)

ルックアップの例
表示コントロール:[コンボボックス]
値集合タイプ:[値リスト]
値集合ソース:["男";"女"]
連結列:[1]
列数:[1]


注意事項  
連結列がキー項目で列数が2列以上のとき、ルックアップフィールドがあるテーブルをデータシートビューで表示させた場合、フィールドにはキー値が保存されていますが見かけの表示は最左の表示列の値が表示されています。フィールドに入っている値と表示している値が違う場合があるので注意が必要です。
クエリでルックアップフィールドに抽出条件を設定する場合には格納値で指定します。また、ルックアップ フィールドに対して、[検索と置換] ダイアログ ボックスで検索する場合には[表示書式で検索する]チェック ボックスをオンにする必要があります。 

ルックアップタブ/入力チェック プロパティが[はい]に設定されていると、一覧以外の値は入力できません。

備考
ルックアップ列(フィールド)とはルックアップリストを設定したフィールドのこと。
値集合値タイプが[フィールド リスト]の場合はテーブルなどのフィールド名が設定できる。 
テーブルのどのフィールドにルックアップが設定されているかを調べるには、「データベース構造の解析」が便利。

category: Access テーブル

tb: 0   cm: 0

Access テーブル フィールドのデータ型  

一般的に使うのは

テキスト型 TEXT(XXX)
日付時刻型 DATETIME
数値型(長整数型) LONG
通貨型 CURRENCY
Yes/No型 YESNO

小数点以下が必要な場合は通貨型を使用し、フィールドの書式/小数点以下桁数 プロパティを適宜指定します。体重などの通貨記号が不要なフィールドの場合は書式 プロパティを[数値]にすると通貨記号が自動的に表示されなくなります。

category: Access テーブル

tb: 0   cm: 0

プロフィール

最新コメント

カウンター(2012/3/10以降)