Access データベースの更新クエリを使用して、既存のレコード内の情報を追加、変更、または削除します。 更新クエリは、[検索と置換] ダイアログ ボックスを強力にしたものと考えることができます。 データベースに新しいレコードを追加したり、データベースからレコードを削除したりするために更新クエリを使用することはできません。
データベースに新しいレコードを追加するには、追加クエリを使用し、データベースからレコード全体を削除するには削除クエリを使用します。
この記事の内容
概要
"検索と置換" と更新クエリには類似点と相違点があります。
[検索と置換] ダイアログ ボックスと同様に、更新クエリにより置き換え対象の値や新しい値の動作を指定できます。
[検索と置換] ダイアログ ボックスとは異なり、更新クエリでは、次の操作を行うことはできません。
-
置換する値に依存しない条件を使用する。
-
1 つのパスで複数のレコードを更新する。
-
複数のテーブルのレコードを同時に変更する。
更新可能なフィールドに関する制限
更新クエリを使用して、次の種類のフィールドのデータを更新することはできません。
-
集計フィールド 計算フィールドの値は、テーブルに永続的に存在しません。 これらは、Access によって計算された後にのみ、コンピューターの一時メモリに存在します。 計算フィールドには永続的な保存場所がないため、更新できません。
-
集計クエリまたはクロス集計クエリからのフィールド: これらの種類のクエリの値は集計値であるため、更新クエリでは更新できません。
-
オートナンバー型フィールド: 設計上、オートナンバー型フィールドの値は、テーブルにレコードが追加された場合にのみ変更されます。
-
一意値クエリおよび一意レコード クエリのフィールド このようなクエリの値が要約されます。 一部の値は 1 つのレコードを表し、他の値は複数のレコードを表します。 重複として除外されたレコードを特定できないため、必要なすべてのレコードを更新できないため、更新操作は実行できません。 この制限は、更新クエリを使用するか、フォームまたはデータシートに値を入力してデータを手動で更新しようとするかに関係なく適用されます。
-
ユニオン クエリのフィールド: 2 つ以上のデータ ソースに表示される各レコードがユニオン クエリの結果に表示されるのは 1 回のみになるため、ユニオン クエリのフィールドから取得されたデータを更新することはできません。 重複している一部のレコードは結果から削除されるため、必要なレコードをすべて更新できるわけではありません。
-
主キー フィールド: 主キー フィールドがテーブル リレーションシップで使用されている場合など、最初に連鎖更新が自動的に行われるようにリレーションシップを設定していないと、クエリを使用してフィールドを更新できない場合があります。
注: 連鎖的な更新を行う場合、親テーブルの主キーの値を変更すると、外部キーの値が自動的に更新されます。
更新クエリを使用する
更新クエリの作成時のベスト プラクティスとして、まず更新するレコードを特定する選択クエリを作成し、そのクエリを、レコードを更新するために実行できる更新クエリに変換します。 最初にデータを選択することで、実際に変更する前に、必要なレコードを更新していることを確認できます。
ヒント: 更新クエリを実行する前に、データベースをバックアップします。 更新クエリの結果を元に戻すことはできません。バックアップを作成すると、気が変わったら変更を取り消すことができます。
データベースをバックアップする方法
-
[ファイル] タブをクリックし、[名前を付けて保存] をクリックします。
-
右側の [詳細設定] で、[データベースのバックアップ] をクリックします。
-
[名前を付けてバックアップを保存] ダイアログ ボックスで、バックアップ コピーの名前と場所を指定し、[保存] をクリックします。
元のファイルが閉じられてバックアップが作成され、元のファイルが再度開かれます。
バックアップに戻すには、元のファイルを閉じて名前を変更し、バックアップ コピーが元のバージョンの名前を使用できるようにします。 元のバージョンの名前をバックアップ コピーに割り当て、名前を変更したバックアップコピーを Access で開きます。
このセクションの内容
手順 1: 更新するレコードを特定する選択クエリを作成する
-
更新するレコードのあるデータベースを開きます。
-
[作成] タブの [クエリ] グループで [クエリ デザイン] をクリックします。
-
[テーブル] タブをクリックします。
-
更新するレコードが含まれているテーブルを選択 (複数可) し、[追加] をクリックします。次に [閉じる] をクリックします。
テーブルがクエリ デザイナーの 1 つ以上のウィンドウとして表示され、これらのウィンドウで、各テーブルのすべてのフィールドが一覧表示されます。 次の図に、クエリ デザイナーに表示された典型的なテーブルを示します。
1. クエリ デザイナーに表示されたテーブル
2. クエリ デザイン グリッド
-
テーブル ウィンドウで、更新するフィールドをダブルクリックします。 選択したフィールドが、クエリ デザイン グリッドの [フィールド] 行に表示されます。
クエリ デザイン グリッドの列ごとに 1 つのテーブル フィールドを追加できます。
テーブルのすべてのフィールドをすばやく追加するには、テーブル ウィンドウのテーブル フィールドの一覧の一番上にあるアスタリスク (*) をダブルクリックします。 次の図に、すべてのフィールドが追加されたクエリ デザイン グリッドを示します。
-
フィールドの値に基づいてクエリの結果を制限するには、クエリ デザイン グリッドの [抽出条件] 行に、結果を制限するために使用する抽出条件を入力します。
抽出条件の例の表
次の表に、抽出条件の例と抽出条件がクエリの結果に与える効果を示します。
注: クエリをより柔軟または強力なものにするために、この表の多くの例では、ワイルドカード文字が使用されています。
抽出条件
効果
>234
234 より大きいすべての数値を返します。 234 より小さいすべての数値を検索するには、<234 を使用します。
>="Cajhen"
アルファベット順で Cajhen 以降のすべてのレコードを返します。
#2/2/2020# から #12/1/2020 までの間#
2017 年 2 月 2 日から 2017 年 12 月 1 日までの日付を返します (ANSI-89)。 ご利用のデータベースで ANSI-92 のワイルドカード文字が使用されている場合、シャープ記号 (#) の代わりに単一引用符 (') を使用します。 例: '2/2/2020' と '12/1/2020' の間。
Not "千葉県"
フィールドの内容が "千葉県" と完全に一致しないすべてのレコードを検索します。 この抽出条件は、"千葉県" およびそれ以外の文字 ("千葉県 (関東)" や "関東 (千葉県)" など) が含まれるレコードも返します。
Not "タ*"
先頭の文字が "タ" でないすべてのレコードを検索します。データベースで ANSI-92 ワイルドカード文字セットが使用されている場合、アスタリスク (*) の代わりにパーセント記号 (%) を使用します。
Not "*タ"
末尾の文字が "タ" でないすべてのレコードを検索します。 データベースで ANSI-92 ワイルドカード文字セットが使用されている場合、アスタリスク (*) の代わりにパーセント記号 (%) を使用します。
In(東京都,大阪府)
リストから "東京都" または "大阪府" を含むすべてのレコードを検索します。
Like "[ア-サ]*"
テキスト フィールドで、"ア" から "サ" までの文字で始まるすべてのレコードを検索します。データベースで ANSI-92 ワイルドカード文字セットが使用されている場合、アスタリスク (*) の代わりにパーセント記号 (%) を使用します。
Like "*株式*"
"株式" という文字シーケンスが含まれたすべてのレコードを検索します。 データベースで ANSI-92 ワイルドカード文字セットが使用されている場合は、アスタリスク (*) の代わりにパーセント記号 (%) を使用します。
Like "株式会社?"
先頭の 4 文字が "株式会社" でその後に任意の 1 文字が続く 5 文字のすべてのレコードを検索します。 データベースで ANSI-92 ワイルドカード文字セットが使用されている場合、疑問符 (?) の代わりにアンダースコア (_) を使用します。
#2/2/2020#
2020 年 2 月 2 日のすべてのレコードを検索します。 データベースで ANSI-92 ワイルドカード文字セットを使用する場合は、ポンド記号 (#)の代わりに単一引用符 (') で日付を囲みます。たとえば、('2/2/2020') などです。
< Date() - 30
Date 関数を使用して、30 日前よりも古いすべての日付を返します。
Date()
Date 関数を使用して、今日の日付を含むすべてのレコードを返します。
Between Date() And DateAdd("M", 3, Date())
Date 関数と DateAdd 関数を使用して、今日の日付から 3 か月以内のすべてのレコードを返します。
Is Null
Null 値 (空白または未定義の値) を含むすべてのレコードを返します。
Is Not Null
値を含むすべてのレコードを返します。
""
長さがゼロの文字列を含むすべてのレコードを返します。 長さゼロの文字列は、必須フィールドに値を追加する必要があり、その値が不明な場合に使用します。 たとえば、FAX 番号の入力が必要なフィールドが存在し、FAX を設置していない顧客があるとします。 その場合には、番号を入力する代わりに、スペースを含めずに二重引用符を 2 度続けて ("") 入力します。
-
[ クエリ デザイン ] タブの [ 結果 ] グループで、[ 実行] をクリックします。
-
クエリから返されるレコードが、更新を行う対象のレコードであることを確認します。
-
クエリ デザインに含めないフィールドを削除するには、フィールドを選択し、Del キーを押します。
-
クエリ デザインに含めるフィールドを追加するには、追加のフィールドをクエリ デザイン グリッドにドラッグします。
手順 2: レコードを更新する
-
[ クエリ デザイン ] タブの [ クエリの種類 ] グループで、[ 更新] をクリックします。
ここでは、選択クエリを更新クエリに変換する方法を説明します。 この変換を行うと、クエリ デザイン グリッドに [レコードの更新] 行が追加されます。 次の図に、2005 年 1 月 5 日以降に購入したすべての資産を返し、その抽出条件を満たすすべてのレコードについて、保管場所を "倉庫 3" に変更する更新クエリを示します。
-
更新するデータを含むフィールドを見つけて、式 (作成した変更抽出条件) をそのフィールドの [レコードの更新] 行に入力します。
[レコードの更新] 行では、有効な任意の式を使用できます。
式の例の表
次の表に、式の例と、この式によってデータがどのように変更されるかを示します。
式
結果
"販売員"
[短いテキスト] フィールドで、テキスト値を Salesperson に変更します。
#8/10/20#
[日付/時刻] フィールドで、日付値を 10-Aug-20 に変更します。
Yes
Yes/No フィールドで、"No" 値を "Yes" に変更します。
"PN" & [部品番号]
指定した各部品番号の先頭に "PN" を追加します。
[単価] * [数量]
"単価" フィールドと "数量" フィールドの値を乗算します。
[運送料] * 1.5
"運送料" フィールドの値を 5 割増にします。
DSum("[Quantity] * [UnitPrice]",
"注文の詳細"、"[ProductID]=" & [ProductID])現在のテーブルの "商品コード" の値が "受注明細" テーブルの "商品コード" の値と一致する場合に、"数量" フィールドの値と "単価" フィールドの値を乗算して、合計販売額を更新します。 複数のテーブルおよびテーブル フィールドを処理できるため、この式は DSum 関数を使用します。
Right([発送先郵便番号], 5)
テキスト文字列または数値文字列の右側 5 文字を残して、残りの左側の文字を切り捨て (削除し) ます。
IIf(IsNull([単価]), 0, [単価])
"単価" フィールドの Null 値 (未知または未定義の値) をゼロ値に変更します。
-
[ クエリ デザイン ] タブの [ 結果 ] グループで、[ 実行] をクリックします。
警告メッセージが表示されます。
-
[はい] をクリックしてクエリを実行し、データを更新します。
注: クエリを実行すると、一部のフィールドが結果セットに存在していないことに気付く場合があります。 クエリに更新しないフィールドが含まれている場合、Access は既定で結果にそれらのフィールドを表示しません。 たとえば、クエリが正しいレコードを識別して更新できるように、2 つのテーブルの ID フィールドを含めることができます。 これらの ID フィールドを更新しない場合、Access では結果に表示されません。
他のテーブルのデータを更新する
あるテーブルから他のテーブルのデータを更新する必要がある場合、更新元のフィールドと更新先のフィールドのデータ型が一致している、または互換性を持つ必要があるという規則に注意してください。
また、あるテーブルから別のテーブルのデータを更新するときに、一致するデータ型ではなく互換性のあるデータ型を使用した場合、これらのフィールドのデータ型は更新先のテーブルで変換されます。 そのため、更新先フィールドの一部のデータが切り捨てられる (削除される) 場合があります。 データ型変換の制限に、データ型を変換できる場合とできない場合を示します。 この表では、データ型の変換時にフィールドのデータの一部またはすべてが変更または削除される条件と、削除の対象となる可能性があるデータについても説明します。
あるテーブルから別のテーブルのデータを更新する方法は、主に次の手順から構成されます。
-
更新クエリを作成し、このクエリに更新元テーブルと更新先テーブルの両方を追加する。
-
関連する情報を含むフィールドで 2 つのテーブルを結合する。
-
クエリ デザイン グリッドの [フィールド] 行に、更新先フィールドの名前を追加する。
-
[更新元テーブル].[更新元フィールド] という構文を使用して、クエリ デザイン グリッドの [レコードの更新] 行に更新元フィールドの名前を追加する。
以下の手順では、よく似ている 2 つのテーブルを使用することを想定しています。 下の表の例では、"顧客" テーブルは継承した直後のデータベース内にあり、"得意先" テーブルよりも最新のデータが含まれています。 何人かの管理者の名前が変更されており、さらに住所も異なるものがあります。 このため、"顧客" テーブルのデータで "得意先" テーブルを更新することになります。
"顧客" テーブル
顧客コード |
会社名 |
都道府県 |
市区町村 |
番地 |
郵便番号 |
国/地域 |
電話番号 |
担当者 |
---|---|---|---|---|---|---|---|---|
1 |
一休ミート |
東京都 |
調布市 |
表通り 1-1 |
12345 |
日本 |
(545) 555-2122 |
鈴木 保美 |
2 |
伊予商店株式会社 |
神奈川県 |
川崎市 |
西山 51-1 |
23456 |
日本 |
(104) 555-2123 |
山本 浩平 |
3 |
尾張堂株式会社 |
3122 75th Ave. S.W. |
青梅市 |
緑町 31-23 |
34567 |
日本 |
(028) 555-2124 |
友野 司郎 |
4 |
加賀屋株式会社 |
千葉県 |
松戸市 |
希望ヶ丘 1-23 |
NS1 EW2 |
日本 |
(171) 555-2125 |
佐本 久明 |
5 |
サクラ食品販売株式会社 |
埼玉県 |
さいたま市 |
56789 |
日本 |
(771) 555-2126 |
藤巻 陽子 |
|
6 |
讃岐商店株式会社 |
東京都 |
青梅市 |
緑町 31-23 |
34567 |
日本 |
(206) 555-2125 |
加山 宏 |
7 |
東海道スーパー |
神奈川県 |
横浜市 |
けやき通り 67 |
87654 |
日本 |
(916) 555-2128 |
上川 昌真 |
8 |
成田屋商店株式会社 |
栃木県 |
宇都宮市 |
東町 4-1 |
31415 |
日本 |
(503) 555-2129 |
越安 辰夫 |
9 |
肥後株式会社 |
栃木県 |
宇都宮市 |
東町 4-1 |
31415 |
日本 |
(503) 555-2233 |
柴瀬 満 |
"得意先" テーブル
得意先コード |
会社名 |
都道府県 |
市区町村 |
番地 |
郵便番号 |
国または地域 |
電話番号 |
管理者 |
---|---|---|---|---|---|---|---|---|
1 |
一休ミート |
東京都 |
調布市 |
表通り 1-1 |
12345 |
日本 |
(545) 555-2122 |
河田 弘穀 |
2 |
伊予商店株式会社 |
神奈川県 |
川崎市 |
西山 51-1 |
23456 |
日本 |
(104) 555-2123 |
山本 浩平 |
3 |
尾張堂株式会社 |
3122 75th Ave. S.W. |
青梅市 |
緑町 31-23 |
34567 |
日本 |
(028) 555-2124 |
友野 司郎 |
4 |
加賀屋株式会社 |
千葉県 |
松戸市 |
希望ヶ丘 1-23 |
NS1 EW2 |
日本 |
(171) 555-2125 |
佐本 久明 |
5 |
サクラ食品販売株式会社 |
埼玉県 |
さいたま市 |
56789 |
日本 |
(771) 555-2126 |
藤巻 陽子 |
|
6 |
讃岐商店株式会社 |
東京都 |
青梅市 |
緑町 31-23 |
34567 |
日本 |
(206) 555-2125 |
小林 昌子 |
7 |
東海道スーパー |
神奈川県 |
横浜市 |
けやき通り 67 |
87654 |
日本 |
(916) 555-2128 |
西村 美智江 |
8 |
成田屋商店株式会社 |
栃木県 |
宇都宮市 |
東町 4-1 |
31415 |
日本 |
(503) 555-2129 |
武島 友子 |
9 |
肥後株式会社 |
栃木県 |
宇都宮市 |
東町 4-1 |
31415 |
日本 |
(503) 555-2233 |
柴瀬 満 |
操作を行う際には、各テーブル フィールドのデータ型が一致している必要はありませんが、互換性が必要であることに注意してください。 つまり、更新元のテーブルにあるデータを更新先テーブルで使用可能なデータ型に変換できる必要があります。 場合によっては、変換中にデータの一部が削除されることがあります。 データ型変換の制限の詳細については、データ型変換の制限を参照してください。
更新クエリを作成して実行する
注: 次の手順では、上記の 2 つのサンプル テーブルを使用することを前提としています。 使用するデータに合わせてこの手順を適用してください。
-
[作成] タブの [クエリ] グループで [クエリ デザイン] をクリックします。
-
[ テーブルの追加] を選択します。
-
ソース テーブルと変換先テーブルをダブルクリックして、クエリに追加します。 各テーブルはクエリ デザイナーのウィンドウに表示されます。
-
ほとんどの場合、関連フィールドはクエリで自動的に結合されます。 関連する情報が含まれるフィールドを手動で結合するには、関連するフィールドを、一方のテーブルからもう一方のテーブルの相当するフィールドにドラッグします。
たとえば、上記のサンプル テーブルを使用する場合、"顧客コード" フィールドを "得意先コード" フィールドにドラッグします。 こうすることで、2 つのテーブルのこれらのフィールド間にリレーションシップが作成され、このリレーションシップを使用して、関連するレコードが結合されます。
-
[ クエリ デザイン ] タブの [ クエリの種類 ] グループで、[ 更新] をクリックします。
-
更新先テーブルで、更新するフィールドをダブルクリックします。 ダブルクリックした各フィールドがクエリ デザイン グリッドの [フィールド] 行に表示されます。
サンプル テーブルを使用する場合は、"得意先コード" フィールド以外のすべてのフィールドを追加します。 更新先テーブルの名前が、デザイン グリッドの [テーブル] 行に表示されていることを確認します。
-
クエリの [レコードの更新] 行の更新先フィールドが含まれている各列に、更新元テーブルの名前と、更新先テーブルのフィールドに対応する更新元テーブルのフィールド名を追加します。必ず [テーブル].[フィールド] という構文を使用します。ここで、テーブルとフィールドの名前は角かっこで囲み、テーブル名とフィールド名との区切りにはピリオドを使用します。
次の図に、サンプル テーブルを使用したときのデザイン グリッドの一部を示します。 [レコードの更新] 行のテーブル名とフィールド名の構文に注意してください。
操作を行う際には、[レコードの更新] 行にテーブルとフィールドの名前を正しく入力する必要があります。 元のテーブル名およびフィールド名と同じ区切り記号やスペースを使用する必要がありますが、英字の大文字と小文字は合わせる必要はありません。
-
[ クエリ デザイン ] タブの [ 結果 ] グループで、[ 実行] をクリックします。
-
更新の実行を確認するメッセージが表示されたら、[はい] をクリックします。
データ型変換の制限
次の表に、Access で使用できるデータ型と、データ型の変換方法に関する制限事項を示します。変換中に発生する可能性があるデータ損失についても簡単に説明します。
変換先のデータ型 |
変換元のデータ型 |
変更点または制限 |
---|---|---|
短いテキスト |
長いテキスト |
先頭の 255 文字以外の文字はすべて削除されます。 |
数値型 |
制限はありません。 |
|
日付/時刻型 |
制限はありません。 |
|
通貨型 |
制限はありません。 |
|
オートナンバー型 |
制限はありません。 |
|
Yes/No |
値 -1 (Yes/No 型フィールドの "Yes") は、"Yes" に変換されます。 値 0 (Yes/No 型フィールドの "No") は、"No" に変換されます。 |
|
ハイパーリンク型 |
255 文字を超えるリンクは切り詰められます。 |
|
長いテキスト |
短いテキスト |
制限はありません。 |
数値型 |
制限はありません。 |
|
日付/時刻型 |
制限はありません。 |
|
通貨型 |
制限はありません。 |
|
オートナンバー型 |
制限はありません。 |
|
Yes/No |
値 -1 (Yes/No 型フィールドの "Yes") は、"Yes" に変換されます。 値 0 (Yes/No 型フィールドの "No") は、"No" に変換されます。 |
|
ハイパーリンク型 |
制限はありません。 |
|
数値型 |
短いテキスト |
テキストは、数字、有効な通貨、および小数点で構成されている必要があります。 テキスト型フィールドの文字数は、数値型フィールドに設定されているサイズ内に収まっている必要があります。 |
長いテキスト |
[長いテキスト] フィールドには、テキストと有効な通貨と小数点のみを含める必要があります。 [長いテキスト] フィールドの文字数は、[数値] フィールドのサイズ セット内に収まる必要があります。 |
|
異なるフィールド サイズまたは精度を持つ数値型 |
値は、新しいフィールドで格納できるサイズを超えたり下回ったりすることはできません。 精度を変更すると、値が丸められる可能性があります。 |
|
日付/時刻型 |
変換できる日付は、数値型フィールドのサイズにより異なります。 Access では、すべての日付はシリアル日付として格納され、日付値は倍精度浮動小数点整数として格納されます。 Access では、1899 年 12 月 30 日が日付 0 として使用されます。 1899 年 4 月 18 日~ 1900 年 9 月 11 日の範囲外の日付は、バイト型フィールドのサイズを超えます。 1810 年 4 月 13 日 ~ 1989 年 9 月 16 日の範囲外の日付は、整数型フィールドのサイズを超えます。 考えられるすべての日付に対応させるためには、数値型フィールドの "フィールド サイズ" プロパティを [長整数型] に設定するか、またはこれよりも大きな値に設定します。 |
|
通貨型 |
値は、フィールドに設定されたサイズ制限を超えたり下回ったりすることはできません。 たとえば、値が 255 よりも大きく 32,767 を超えない場合にだけ、通貨型フィールドを整数型フィールドに変換できます。 |
|
オートナンバー型 |
値は、フィールドに設定されたサイズ制限内に収まっている必要があります。 |
|
Yes/No 型 |
"Yes" 値は、-1 に変換されます。 "いいえ" 値は、0 に変換されます。 |
|
日付/時刻型 |
短いテキスト |
元のテキストは、認識可能な日付または日付/時刻の組み合わせである必要があります。 たとえば、2020 年 1 月 18 日。 |
長いテキスト |
元のテキストは、認識可能な日付または日付/時刻の組み合わせである必要があります。 たとえば、2020 年 1 月 18 日。 |
|
数値 |
値は、-657,434 ~ 2,958,465.99998843 の範囲内の値である必要があります。 |
|
通貨型 |
値は、-\657,434 ~ \2,958,465.9999 の範囲内の値である必要があります。 |
|
オートナンバー型 |
値は、-657,434 よりも大きく、2,958,466 よりも小さい値である必要があります。 |
|
Yes/No |
値 -1 (Yes) は、1899 年 12 月 29 日に変換されます。 値 0 (No) は、午前 0 時 (12:00 AM) に変換されます。 |
|
通貨型 |
短いテキスト |
テキストは、数字と有効な区切り文字から構成されている必要があります。 |
長いテキスト |
テキストは、数字と有効な区切り文字から構成されている必要があります。 |
|
数値型 |
制限はありません。 |
|
日付/時刻型 |
制限はありませんが、値が丸められる可能性があります。 |
|
オートナンバー型 |
制限はありません。 |
|
Yes/No 型 |
値 -1 (Yes) は、\1 に変換されます。値 0 (No) は、0\ に変換されます。 |
|
オートナンバー型 |
短いテキスト |
オートナンバー型のフィールドが主キーの場合は許可されません。 |
長いテキスト |
オートナンバー型のフィールドが主キーの場合は許可されません。 |
|
数値型 |
オートナンバー型のフィールドが主キーの場合は許可されません。 |
|
日付/時刻型 |
オートナンバー型のフィールドが主キーの場合は許可されません。 |
|
通貨型 |
オートナンバー型のフィールドが主キーの場合は許可されません。 |
|
Yes/No 型 |
オートナンバー型のフィールドが主キーの場合は許可されません。 |
|
Yes/No 型 |
短いテキスト |
元のテキストは、Yes、No、True、False、On、または Off からのみ構成されている必要があります。 |
長いテキスト |
元のテキストは、Yes、No、True、False、On、または Off からのみ構成されている必要があります。 |
|
数値型 |
0 または Null は "No" に変換され、それ以外の値は "Yes" に変換されます。 |
|
日付/時刻型 |
Null または 12:00:00 AM は "No" に変換され、それ以外の値は "Yes" に変換されます。 |
|
通貨型 |
0 および Null は "No" に変換され、それ以外の値は "Yes" に変換されます。 |
|
オートナンバー型 |
すべての値が "Yes" に変換されます。 |
|
ハイパーリンク型 |
短いテキスト |
元のテキストに有効な Web アドレス ( adatum.com、www.adatum.com、 http://www.adatum.com など) が 含まれている場合、Access はテキストをハイパーリンクに変換します。 アクセスは他の値の変換を試みます。つまり、下線が付いたテキストが表示され、リンクをポイントするとカーソルが変更されますが、リンクは機能しません。 テキストには、http://、gopher://、telnet://、ftp://、wais:// など、任意の有効な Web プロトコルを含めることができます。 |
長いテキスト |
前の項目を参照してください。 同じ制限が適用されます。 |
|
数値 |
数値型フィールドがリレーションシップの一部の場合は、変換できません。 元の値が有効なインターネット プロトコル (IP) アドレス (nnn.nnn.nnn.nnn のようなピリオドで区切られた 4 つの 3 桁の数字) として有効な範囲内にあり、この数値が Web アドレスだと考えられる場合は、有効なリンクに変換されます。 そうでない場合は、それぞれの値の先頭に "http://" が付加されますが、結果のリンクは有効ではありません。 |
|
日付/時刻型 |
それぞれのアドレスの先頭に "http://" が付加されますが、ほとんどの場合、結果のリンクは機能しません。 |
|
通貨型 |
それぞれの値の先頭に "http://" が付加されますが、日付と同様に、ほとんどの場合、結果のリンクは機能しません。 |
|
オートナンバー型 |
オートナンバー型フィールドがリレーションシップの一部である場合は、変換できません。 それぞれの値の先頭に "http://" が付加されますが、ほとんどの場合、結果のリンクは機能しません。 |
|
Yes/No 型 |
すべての Yes 値が -1 に、No 値が 0 に変換され、それぞれの値の前に "http://" が付加されます。 結果のリンクは機能しません。 |
無効モードでクエリがブロックされないようにする
アクション クエリを実行しようとしたのに、何も実行されていないように思われる場合は、Access ステータス バーに次のメッセージが表示されていないか確認してください。
無効モードのため、アクションまたはイベントはブロックされました。
既定では、データベースが信頼できる場所にあるかデータベースが署名され信頼されていない限り、Access のすべてのアクション クエリ (更新クエリ、追加クエリ、削除クエリ、またはテーブル作成クエリ) は無効になります。 これらのアクションのいずれも行っていない場合でも、メッセージ バーの [コンテンツの有効化] をクリックして、カレント データベースのセッションのクエリを有効にすることはできます。
SQL バージョンの UPDATE ステートメント
SQL の操作に慣れているユーザーは、SQL ビューで UPDATE ステートメントを記述することもできます。 SQL ビューを使用するには、空白の新しいクエリを作成し、SQL ビューに切り替えます。
ここでは、UPDATE ステートメントの構文と例を示します。
構文
UPDATE table SET newvalue WHERE criteria;
UPDATE ステートメントには、次の引数があります。
引数 |
説明 |
---|---|
table |
変更するデータが含まれるテーブルの名前です。 |
newvalue |
更新後のレコードの特定のフィールドに挿入する値を決めるための式です。 |
criteria |
レコードを更新するか決めるための式です。 式の条件を満たすレコードのみが更新されます。 |
解説
UPDATE ステートメントは、多数のレコードを変更する場合や、変更するレコードが複数のテーブルに含まれている場合に特に便利です。
複数のフィールドを同時に変更することができます。 次に示すのは、"受注金額" の値が 10% ずつ、"運送料" の値が 3% ずつ増えている英国の運送会社の例です。
UPDATE Orders
SET OrderAmount = OrderAmount * 1.1,
Freight = Freight * 1.03
WHERE ShipCountry = 'UK';