製品の保守
マイクロソフトでは、ユーザーの皆様が西暦 2000 年問題に対応するための理由だけでなく、常に最新の Service Pack/Release (サービスパックおよびリリース)
をインストールすることを推奨していますが、多くの理由からこれが不可能である場合が多いことも認識しています。マイクロソフトは、Access
2000のユーザーの皆様の西暦 2000
年問題への取り組みの支援を目的とした保守を 2001 年 1 月 1 日まで対応いたします。Service Pack
の最新版の2000年対応の保守についても対応する予定ですが、こちらの方には西暦 2000 年問題以外の更新が含まれる場合もあります。西暦 2000
年問題を理由にアップグレードの機会として位置付けることをできるだけ避けるための措置です。
日付の処理
- 保存。 Microsoft Access 2000 では、日付/時刻型のデータが倍精度浮動小数点 (少数点以下 15 桁まで)
で保存されます。倍精度小数の整数部は日付を表し、小数部は時刻を表します。詳細については、サポート技術情報 Q130514
(を参照してください。
Access 2000 は、データの保存に Jet データベースを使用します。また、日付/時刻型データの計算には共有 VBA コンポーネントを使用します。
- 形式。
定型入力を使用しない場合にはデフォルト設定により、日付は 2 桁または 4 桁の西暦の年のどちらかで入力できます。日付は、定型入力を使用して定義済み書式とユーザー定義の書式で入力することができます。定型入力では、特定の書式でのみデータを入力することできます。定型入力にあらかじめ定義された書式には、[日付 (S)] の形式が含まれます。[日付 (S)] では、日付は強制的に 2 桁の形式で入力されます。日付入力を 4 桁の西暦表示に制限する場合には、ユーザー定義の定型入力を作成します。Microsoft Access では、日付入力に必ずしも定型入力を使用する必要はありません。
日付は、[書式] プロパティと [書式] 機能を使用して、定義済みとユーザー定義の書式で表示できます。デフォルトの設定では、[コントロール パネル] の [地域] で指定されている [日付 (S)] と [時刻 (S)] の組み合わせの、[日付 (標準)] 書式で表示されます。西暦を 4 桁で表示する場合には、ユーザー定義の書式を作成します。
次の手順で、日付フィールドとコントロールの日付表示を強制的に 4 桁の年にできます。特定の日付の世紀が正しいかどうか確認するときに便利です。
- [ツール] メニューから、[オプション] をクリックし、続いて [全般] タブを選択します。
- [4 桁の西暦形式を使用] で、次のいずれかを実行します。
データベース レベル (現在の Access データベースまたはプロジェクト) で、強制的に 4 桁の西暦を表示させるには、[このデータベース] チェック ボックスを選択します。
データベース レベル (現在の Access データベースまたはプロジェクト) で、強制的に 4 桁の西暦を表示させるには、[すべてのデータベース] チェック ボックスを選択します。
いずれかのチェック ボックスを選択した場合、変更されるのはデータ自身ではなく、日付表示のみです。このオプションは、各フィールドやコントロールに設定した [書式] プロパティより優先されます。[すべてのデータベース] オプションは、次のレジストリ キーを使用して設定することもできます。
[HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Access\Settings]
"Four-Digit Year Formatting All Databases"=DWORD:00000001
下 2 桁の西暦の処理
日付は、オートメーション ライブラリを使用して解析されます。詳しい情報については、ホワイト ペーパー
「オートメーション ライブラリと西暦 2000 年」 を参照してください。
日付に関する注意事項
- 定型入力。定型入力の [日付 (S)] を使用すると、2 桁表示の西暦の範囲外の日付は入力できません。
- 日付/時刻データ型。
日付データの保存には、テーブルで日付/時刻型フィールドを使用します。日付データの保存には、テキスト フィールドを使用しないでください。
- 日付表示。
[日付 (S)] の形式 (yy/mm/dd) は使用しないでください。[日付 (L)] の書式を使用するか、[コントロール パネル] の [地域] 設定と関連付けて [日付 (S)] の書式を使用するか、またはユーザー定義の書式を使用して、4 桁で西暦を表示するようにしてください (yyy/m/d)。
- クエリー中のリテラル日付。
4 桁の西暦を使用して、Query Designer の SQL 表示に日付基準を入力します。Query Designer のグリッドに入力した日付基準値が 4 桁に拡大されます。
- テキストのエクスポート。
VBA の TransferText などのテキスト エクスポート メソッドは、必ず 4 桁の西暦表示でエクスポート書式に設定してください。
テスト時のガイドラインと推奨事項
一般的に、ほかの非対応製品の影響が予測できないため、実作業環境ではテストをしないでください。
日付が正しく処理されたかを確認するためには、次の項目をテストします。次の表を参考にして、現在の環境内で Access 2000 をテストします。
機能 |
影響のある項目 |
備考 |
テキスト変換、インポート/エクスポート |
テーブル、クエリー、フォーム、レポート、マクロ、モジュール |
テキスト ファイルのインポートとエクスポートは、メニュー、Transfer Text マクロ アクション、および Transfer Text メソッドを使用する VBA コードから実行できます。
インポート/エクスポート定義を使用すると、日付のインポートおよびエクスポートを 2 桁と 4 桁のどちらの西暦表示でも行えます。デフォルトでは、2 桁の西暦表示でエクスポートされます。4 桁の西暦表示を選択できるようにするには、インポート/エクスポート定義を作成します。 |
インデックス |
テーブル |
日付と時刻の値はインデックス化でき、一意な値であることが必要です。 |
書式 |
テーブル、クエリー、フォーム、レポート、マクロ、モジュール |
テーブル、クエリー、フォーム、レポート、および VBA コードの日付/時刻型データの書式を設定します。テーブル、クエリー、フォーム、およびレポートの各フィールドのプロパティとして存在します。また、Format() が Access 組み込み関数として使用できます。
コントロール パネルの [地域] で設定できる書式は、[日付 (L)]、[日付 (S)]、[時刻 (L)] です。 Access 組み込みの書式には、[日付 (標準)]、[日付 (M)]、[時刻 (M)]、[時刻 (S)] があります。 すなわち、年月日と時刻を任意の書式で組み合わせることができます。 |
定型入力 |
テーブル、クエリー、フォーム、レポート、マクロ、モジュール |
ユーザーによるデータ入力を特定の値に制限します。ユーザー定義の [書式] プロパティと同様に、定型入力の値は (0、9、および X などの) トークン文字の組み合わせとなります。ただし、日付データの確認と書式設定は、定型入力フィールドにユーザーが日付を入力した後で行われます。
日付に関連したウィザード定義の定型入力には、[日付 (S)]、[日付 (M)]、[時刻 (S)]、[時刻 (M)]、[時刻 (L)] などがあります。 |
検証規則 |
テーブル、クエリー、フォーム |
入力されたデータが確認されます。検証規則の式にフィールドの日付/時刻型データを使用して、計算した日付値を比較できます。 |
集計クエリー |
クエリー |
日付/時刻型フィールドでクエリーをグループ化したり、並べ替えることができます。集計クエリーでは、日付/時刻型フィールドを合計して、グループ日付を計算できます。使用できる演算式は Sum、Avg、Min、Max、Count、StDev、Var、First、Last です。 |
定義域関数 |
クエリー、フォーム、レポート、モジュール |
データに対してルックアップと計算を実行し、結果を返します。これらの定義域関数には、DAvg、DCount、DLookup、DFirst、DLast、DMin、DMax、DStDev、DStDevP、DSum、DVar および DVarP があります。 |
日付と時刻の挿入 |
フォーム、レポート |
Date() の値に対して Format 関数を使用する集計フィールドを挿入します。 |
グラフ作成 |
フォーム、レポート |
フォームおよびレポートでは、Access のレコード ソースに基づく日付/時刻型データを示すグラフを表示することができます。 |
カレンダー コントロール |
フォーム、レポート、モジュール |
値 プロパティは、カレンダーの日付を取得したり、設定するときに使用します。年は常に 4 桁の西暦で表示されます。 |
レポートのグループ化 |
レポート |
レポートでは、各値、年、四半期、月、週、日、時間、分に基づいて日付/時刻型データをグループ化したり、並べ替えたりすることができます。 |
Day()、Month()、Year()、WeekDay() |
クエリー、フォーム、レポート、モジュール |
日付/時刻型データを解析します。 |
Date()、Now() |
クエリー、フォーム、レポート、モジュール |
日付、および日付と時刻を返します。 |
DateAdd()、DateDiff() |
クエリー、フォーム、レポート、モジュール |
日付/時刻型データを計算します。 |
LastUpdated および DateCreated プロパティ |
すべてのデータベース オブジェクト |
Data Access Objects (DAO) により提供される、最新更新日時およびオブジェクトの作成日時の日付/時刻型スタンプ。 |
CDate() |
クエリー、フォーム、レポート、モジュール |
有効範囲は、-657434 (100 年 1 月 1 日) ~ 2958465 (9999 年 12 月 31 日) です。時刻の数字は、小数点形式で保存されます。 |
詳細情報
詳細情報と、日付関連の問題に付いては、次に示す Knowledge Base へのリンクをクリックしてください。
HOWTO: 西暦 2000 年問題に関する Visual Basic アプリケーションの作成
)
ACC: ユリウス暦から Access の日付、Access の日付からユリウス暦への変換方法
Q162745(
ACC: 指定された月の日数を調べる方法
Q109703(英語)
HOWTO: Visual Basic から [日付 (S)] 形式を変換する方法
Q168793(英語)
ACC: 日付が週末または祝祭日かどうかを判断する方法
Q149127(英語)
ACC: [地域] 設定とは関係なく日付を米国式に形式化する方法
Q149095(英語)
ACC: 日付 (S) 書式を別の書式に変換する方法 Q141536
(英語)
ACC: 特定の日付の会計年度および月を取得する方法 Q132101
(英語)
ACC: 年を 2 桁でのみ表示する方法 Q95907
(英語)
ACC: VBA、Access Basic コードを使ってユリウス暦の日付を変換する
Q92816
(英語)
ACC: 日付/時刻の値を計算し、表示する関数 Q88657
(英語)
ACC: 指定された日付より前の月曜日の日付を取得する関数
Q103138
(英語)
ACC: 月数、年数で年令を計算する 2 つの関数 Q100136
(英語)
ACC: 日付/時刻型データの格納、計算、および比較
ADT/ODE: カレンダー コントロールの各日付を書式設定できない Q114832(英語)
ACC: 付属の SQL テーブルの編集時に操作が停止する
Q96897(英語)
ACC : [日付 (S)] に基づいた定型入力型を使っても追加貼り付けできない
Q160575(英語)
ACC : DDMMMYY 形式でのテキスト ファイルと日付のインポート (95/97)
Q159323(英語)
ACC : データを別の形式でインポートすると変換エラーが発生する
Q142184(英語)
カスタム プロパティのタブで間違った日付値を追加した
Q130580(英語)
ACC: Format() と Month() 関数を組み合わせると正しい月が表示されない
Q106290(英語)
ACC: 日付フィールドをテキストへエクスポートすると時刻が含まれる
Q103174(英語)
ACC: 世界時刻基準をクエリーしても Microsoft SQL Server からレコードが返されない
Q173097(英語)