概要
| この記事の結論 Accessのクエリで固定値を表示するには、空いているフィールド欄に「項目名: 値」と入力します。文字列は引用符で囲み、数値はそのまま指定します。この方法はクエリ結果に列を加えるもので、元テーブルへ値を保存する操作ではありません。この記事では文字列・数値・日付の書き方、先頭0とNullの扱い、更新・追加クエリで保存する場合の違いまで説明します。 |
この記事でわかること
- 固定値を表示する場合と保存する場合を分ける
- デザインビューで固定値の列を追加する
- 文字列 数値 日付の書き方を使い分ける
- SQLで固定値を指定して出力する
- 更新クエリと追加クエリで値を保存する
この記事の主な内容
- 固定値を表示する場合と保存する場合を分ける
- デザインビューで固定値の列を追加する
- 文字列 数値 日付の書き方を使い分ける
- SQLで固定値を指定して出力する
- 更新クエリと追加クエリで値を保存する
- CSV出力とエラーを確認する
- よくある質問
想定読了時間:約12分~15分
固定値を表示する場合と保存する場合を分ける
クエリで固定値を使うときは、まず結果に表示したいだけなのか、テーブルへ保存したいのかを分けます。選択クエリの「項目名: 値」は、結果に同じ値の列を加える方法です。CSVへ会社コードを付ける、帳票に区分を表示する、といった用途で使えます。この操作だけで元テーブルの値が書き換わるわけではありません。
| やりたいこと | 選ぶ方法 | 元テーブルへの影響 |
|---|---|---|
| 結果の各行へ同じ区分を付ける | 選択クエリの演算フィールド | 値は保存しない |
| 既存行の項目を同じ値へ変える | 更新クエリ | 対象行を書き換える |
| 別テーブルへ固定値付きで登録する | 追加クエリ | 新しい行を追加する |
| 今後の新規入力時に初期値を出す | テーブルやフォームの既定値 | 新規入力時の値に関わる |
演算フィールドとは、テーブルの項目をそのまま表示する代わりに、式の結果を表示するクエリの列です。計算式だけでなく、文字列や数値の定数も指定できます。例えば全行へ「国内」と出す場合は、既存の住所や地域を判定しているのではなく、対象行すべてに同じ文字を付けています。抽出対象に海外データが混ざっていないかも確認します。

デザインビューで固定値の列を追加する
今回は[T_商品]に商品コード、商品名、単価がある例を使います。商品コードと商品名は短いテキスト、単価は通貨型を想定します。元テーブルに会社コードがなくても、出力結果だけに「001」を加えられます。既存クエリを変更する場合は、元のクエリを別名で保存してから作業すると比較しやすくなります。
| 手順 | 操作 | 入力・確認する内容 |
|---|---|---|
| 1 | [作成]→[クエリデザイン] | T_商品を追加 |
| 2 | 必要なフィールドを配置 | 商品コード、商品名、単価 |
| 3 | 空いているフィールド欄を選ぶ | 会社コード: “001” |
| 4 | データシートビューで確認 | 会社コード列が各行に001と出る |
| 5 | 名前を付けて保存 | Q_商品出力 |
項目名 コロン 値の順に書く
「会社コード: “001”」では、左側の会社コードが出力列の名前、コロンの右側が表示する値です。コロンと引用符は半角を使います。文字列は半角の二重引用符で囲み、数値はそのまま指定します。既存フィールドと同じ列名を重ねると後で参照しにくくなるため、出力用の名前を明確にしてください。
会社コード: “001”
出力区分: “国内”
固定数量: 1
結果に表示される「001」には引用符そのものは含まれません。引用符はAccessへ文字列だと伝えるための記号です。また、演算フィールドには[表示]のチェックが必要です。列が見つからないときは右側に隠れていないか、表示が外れていないか、元データが抽出条件で0件になっていないかを確認します。

固定値の列は新しい行を作るものではない
この方法は、元のクエリが返した各行へ同じ値を付けます。商品が3件なら3行に同じ会社コードが表示されますが、対象商品が0件なら固定値だけの行は作られません。また、固定数量を1にしても商品行が増えるわけではありません。値を加えることと、レコードを追加することを区別して扱いましょう。
文字列 数値 日付の書き方を使い分ける
固定値は、見た目だけでなくデータの種類に合わせて指定します。特に会社コードや郵便番号は数字だけでも計算用の数値とは限りません。先頭0を残す必要がある識別子は文字列として扱うのが基本です。出力先が要求する型、文字数、日付形式を先に確認すると、後の変換ミスを減らせます。
| 種類 | デザインビューでの例 | 意味 |
|---|---|---|
| 文字列 | 区分: “国内” | 国内という文字を表示 |
| 数値 | 数量: 1 | 計算できる数値1を表示 |
| 小数 | 掛率: 0.1 | 数値0.1を表示 |
| 日付 | 基準日: DateSerial(2026,4,1) | 指定した年月日を返す |
| 空文字 | 備考出力: “” | 長さ0の文字列 |
| Null | 未設定値: Null | 値が存在しない状態 |
日付を直接表すリテラルには#で囲む書き方もありますが、地域設定や日付の解釈を混同しないよう、本記事ではDateSerialで年・月・日を明示しています。DateSerialの結果は日付の値です。表示を2026/04/01にするか2026年4月1日にするかは、書式や出力方法の指定として別に考えます。

001は文字列 1は数値として区別する
「会社コード: 001」のように引用符を付けずに書くと、数値の1として扱われ、先頭0の意味は残りません。「会社コード: “001”」とすれば、文字列として001を指定できます。ただし、後で数値型の保存先へ追加すると数値へ変換されることがあります。出力列だけでなく、保存先や受取側の型もそろえる必要があります。
数値の1へ表示書式「000」を指定すると画面上は001に見えることがありますが、保存されている値が文字列の001になるわけではありません。計算に使う数量と、桁数に意味がある識別コードを分けてください。CSV連携では表示だけで安心せず、実際に書き出された文字と取り込み後の値を確認します。

Null 空文字 0は用途が違う
Nullは値がない状態、空文字は長さ0の文字列、0は数値です。例えば「まだ判定していない」をNull、「備考は意図的に空欄」を空文字、「数量がゼロ」を0とするなど、業務上の意味を決めます。短いテキストの保存先で空文字を使えるかは、フィールドの[空文字列の許可]などの設定にも影響されます。
Nullを調べる条件は「Is Null」です。「= Null」で通常の値と同じように比較しないでください。空文字は「= “”」、数値の0は「= 0」と、確認条件も異なります。出力結果ではどちらも空欄に見える場合がありますが、そのまま同じ値だと判断せず、元の式や保存先のルールまで確認することが大切です。

Date()は毎回変わるため固定日付ではない
「出力日: Date()」は実行時点の今日の日付を返します。翌日にクエリを開けば、結果も翌日になります。2026年4月1日のようにいつ開いても同じ日付を出したいなら、DateSerialで指定してください。登録日の証跡として残す場合は、登録時にテーブルへ保存する設計が必要です。表示する日付と記録する日付を混同しないようにします。
クエリの固定値設定とデータ出力の見直しで迷ったときは
まずは記事の手順で対象と結果を確認しましょう。既存の処理との関係が分からない、変更の影響を判断できない場合は、現在のテーブル・クエリ構成と困っている点を整理して、Accessの教科書へご相談ください。
SQLで固定値を指定して出力する
SQLビューでは、SELECTの一覧へ定数とASによる別名を書きます。デザインビューの「会社コード: “001”」は、SQLでは「”001″ AS [会社コード]」に対応します。次のクエリは、商品情報に会社コード、国内区分、基準日を追加して表示する例です。元のT_商品を書き換えるSQLではありません。
SELECT [商品コード], [商品名], [単価],
“001” AS [会社コード],
“国内” AS [出力区分],
DateSerial(2026,4,1) AS [基準日]
FROM [T_商品];
| 商品コード | 商品名 | 会社コード | 出力区分 |
|---|---|---|---|
| A01 | 商品A | 001 | 国内 |
| B01 | 商品B | 001 | 国内 |
同じ式を使うクエリが増えると、会社コード変更時に修正漏れが起きやすくなります。固定値が少数で変わらない出力なら直接書いても分かりやすいですが、複数部署や会社を扱うなら設定テーブルで管理する方法も検討します。変更する人、変更時期、影響する出力を把握できる設計を選びましょう。
また、すべての行を「国内」にすることと、各レコードの地域を調べて国内・海外を分けることは別です。行ごとに値を変えたい場合は、条件式やマスターとの結合を使います。固定値を付ける前に抽出条件で対象を限定し、異なる区分の行が混ざっていないかを確かめてください。
更新クエリと追加クエリで値を保存する
テーブルへ値を残したい場合は、更新クエリか追加クエリを使います。更新は既存行の値を書き換える処理、追加は新しい行を登録する処理です。どちらもデータ変更を伴うので、コピーしたデータベースで対象を確かめ、バックアップを取得してから実行します。表示用のクエリを作ったつもりで更新を実行しないよう、名前も分けましょう。
既存行へ固定値を保存する更新クエリ
次は、T_商品の既存フィールド[区分]がNullの行にだけ「国内」を設定する例です。[区分]は短いテキスト型で、国内という値を保存できるものとします。最初に同じ条件の選択クエリで対象商品を表示し、件数と内容を確認します。Nullだから国内と判断してよいかという業務上の確認も必要です。
SELECT [商品コード], [商品名], [区分]
FROM [T_商品]
WHERE [区分] Is Null;
対象が正しいと確認できたら、更新クエリを別名で保存します。デザインビューではクエリの種類を[更新]にし、[区分]の[レコードの更新]へ”国内”、[抽出条件]へIs Nullを指定します。SQLでは次の形です。WHEREを削除すると全行が対象になるため、実行直前にも条件を確認してください。
UPDATE [T_商品]
SET [区分] = “国内”
WHERE [区分] Is Null;
空文字の行も対象にするなら、業務上の意味を確認したうえで条件を追加します。Nullと空文字は同じではないため、上のSQLでは空文字の行は対象外です。実行後は更新した商品コードを使って値を照合し、別の区分が上書きされていないか確認します。通常の編集操作と同じ感覚で、後から簡単に取り消せると考えないでください。
固定値を付けて別テーブルへ追加する
次は、既存の[T_商品出力]へ商品コード、商品名、会社コードを追加する例です。保存先に三つのフィールドが存在し、商品コードと会社コードは短いテキスト型で必要な桁数を保存できるものとします。INSERT INTOの列の並びと、SELECTで渡す値の並びを対応させてください。
INSERT INTO [T_商品出力]
([商品コード], [商品名], [会社コード])
SELECT [商品コード], [商品名], “001”
FROM [T_商品];
同じ追加クエリを二度実行すると、重複登録になるか、一意制約によるエラーになる可能性があります。実行済みの対象を除外する、出力単位を管理する、一意キーを設定するなど、再実行の扱いを決めます。保存先に必須項目がほかにもある場合は、その値や既定値も確認してください。試行錯誤で何度も実行する前に、件数を記録しておきます。

既定値の変更で過去データは埋まらない
今後の新規登録時に同じ値を出したいなら、テーブルやフォームの既定値が候補です。ただし、既定値を変更しても既存レコードがまとめて新しい値に書き換わるわけではありません。過去データの補完は更新クエリ、新規入力時の初期値は既定値、帳票だけの値は選択クエリと、目的に合わせて分けると保守しやすくなります。
CSV出力とエラーを確認する
固定値がAccess上で正しく見えても、CSVへ書き出した後や受取側で取り込んだ後に変わる場合があります。特に001などのコードは、ExcelでCSVを直接開くと数値として解釈されることがあります。Accessでの値、CSV内の文字、受取側が解釈した型の三段階を分けて確認しましょう。
CSVはExcelのようにセルの型を保持する形式ではありません。引用符付きで書かれていても、受取側が数値として処理することがあります。受取側のインポート設定で対象列を文字列として指定し、先頭0が残るか確かめます。CSV自体の確認にはテキストエディターも使い、開いたアプリの表示だけで原因を決めつけないようにします。

| 症状 | 主な確認箇所 | 対処 |
|---|---|---|
| パラメーター入力が出る | 文字列の引用符・項目名の誤記 | 半角引用符と正しい名前に直す |
| 001が1になる | 数値指定・保存先・受取側の型 | 識別コードを文字列で扱う |
| 日付が意図と違う | Date()・文字列日付・表示書式 | 固定日付か実行日かを区別 |
| 更新できない | データ型・入力規則・一意制約 | 保存先の制約と対象を確認 |
| 列が表示されない | 表示チェック・抽出0件 | 元データと表示設定を確認 |
| 再実行で件数が増える | 追加クエリの対象とキー | 二重登録を防ぐ条件を設計 |
公開・運用前には、固定値の意味、値の型、対象件数、保存の有無を確認します。CSV連携では列の順番、見出し名、文字コード、日付形式、空欄の表し方も受取側の仕様と合わせてください。出力を実際に一件取り込んで確認すると、Accessの画面だけでは分からない変換の問題を見つけやすくなります。

まとめ
クエリへ固定値を表示する基本形は「項目名: 値」です。文字列は引用符で囲み、数値・日付・Nullは目的に合わせて指定します。選択クエリの表示と、更新・追加クエリによる保存は別の操作です。先頭0のあるコードやCSV連携では受取側の型まで確認し、保存する場合は対象確認と実行後の照合を一組で行いましょう。
よくある質問
選択クエリで作った演算フィールドは、結果に値を表示するための列であり、元テーブルへ値を書き込む処理ではありません。CSVや帳票に同じ区分を付けるだけなら、そのままで目的を満たせます。既存レコードへ保存したい場合は更新クエリ、別テーブルへ新規登録する場合は追加クエリを使います。まず保存が本当に必要かを決め、必要な場合は保存先のフィールド型と対象条件を確認してください。表示できたことと保存できたことを分けて確認します。
引用符なしの001は数値の1として扱われるためです。会社コードなど先頭0に意味がある値なら、”001″のように半角の二重引用符で囲み、文字列として指定してください。ただし、その後に数値型のフィールドへ保存したり、Excelなどで数値として取り込んだりすると、再び1になることがあります。Accessの式だけでなく保存先・CSV・受取側を順に確認します。表示書式で0を補う方法と、文字列として桁を保持する方法も区別しましょう。
文字列を引用符で囲まずに書くと、Accessがフィールド名などとして解釈し、見つからない名前の入力を求めることがあります。「区分: “国内”」のように半角の引用符を使ってください。ただし、入力要求は実在フィールド名の誤記や、意図して設定したパラメーターでも発生します。画面に出た名前を確認して原因を分け、求められるまま値を入力して済ませないことが大切です。コピーした文章に全角の記号が混ざっていないかも点検します。
Date()をクエリで使う場合は実行時点の今日の日付なので、翌日に開けば結果も変わります。いつ実行しても同じ日付にしたいなら、DateSerial(2026,4,1)などで年月日を指定します。一方、登録した日の証跡を残したい場合は、登録時の日付をテーブルへ保存する設計が必要です。今日を表示する、特定の日を固定表示する、登録日を保存するという三つの目的を分けてください。見た目の日付書式を変えるだけでは保存の仕組みは変わりません。
業務上の意味と保存先の設定で決めます。Nullは値が存在しない状態、空文字は意図的に長さ0の文字列を指定した状態です。「未回答」と「回答したが記載なし」を分けたい場合などに違いが役立ちます。短いテキストのフィールドでは空文字列の許可や入力必須の設定も確認してください。抽出条件はNullならIs Null、空文字なら=””と異なります。どちらも空欄に見えるからと無条件に置き換えず、CSV受取側がどう扱うかも合わせます。
更新クエリで対象条件を指定すれば可能です。例えば区分がNullの行だけに”国内”を設定できます。ただし、未入力の行をすべて国内としてよいかは別途判断が必要です。最初に同じWHERE条件の選択クエリで商品コード・現在値・件数を確認し、バックアップ後に更新してください。WHEREがないと全行が対象になります。実行後は対象の値と件数を照合し、除外した行が変わっていないかも確認します。既定値の変更だけでは過去データは一括更新されません。
書き出し時に数値へ変わった場合と、CSVを開いた側が数値として解釈した場合があります。まずテキストエディターなどでCSV内に001が残っているか確認してください。残っていれば、受取側のインポート設定でその列を文字列に指定する方法を検討します。CSVはセルの型を保持しないため、引用符だけで必ず先頭0を守れるわけではありません。Accessの式、CSVの内容、取り込み後の値を順に比べ、変化した段階に合わせて対処しましょう。
関連記事
クエリの固定値設定とデータ出力の見直しで迷ったときは
まずは記事の手順で対象と結果を確認しましょう。既存の処理との関係が分からない、変更の影響を判断できない場合は、現在のテーブル・クエリ構成と困っている点を整理して、Accessの教科書へご相談ください。
参考情報
INSERT INTOステートメント
https://learn.microsoft.com/en-us/office/client-developer/access/desktop-database-reference/insert-into-statement-microsoft-access-sql
DateSerial関数
https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/dateserial-function