ACCESS テーブルに行を挿入する方法
ACCESSのテーブルはExcelと同じように、表形式になっています。
レコードと呼ばれる行にデータを入力していくのですが、すでに入力したデータの途中に行を追加したい場合はどうすればよいでしょうか。
この記事では、ACCESSでテーブルに行を挿入する方法をご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSの基本的な使い方をご紹介していきます。
目次
ACCESSでテーブルへの行の挿入はできない
いきなりですが、ACCESSではテーブルへの任意の行のレコード挿入はできません。
例えば以下のようなテーブルがあった際に、商品ID:4と商品ID:5の間に新しい商品を追加しようと思ってもできないのです。
必ず一番下に新規レコードとして追加されることになります。
これはそもそもExcelとACCESSではソフトウェアとのしての設計思想が異なるためです。
ACCESSのテーブルはExcelの表のようにそのまま利用するのではなく、あくまでデータを貯めておくための箱です。
ユーザーが使いやすく並べ替えたり操作をするのはクエリやフォームという別機能で実現するのです。
そのため、テーブルのレコードの順番を変える、ということに意味がないのです。
同じように、テーブルには主キーを設定します。
上記の例に挙げたテーブルの主キーは商品IDです。
この主キーが思ったような順番になっていないと気になる、という方がいますが、これも気にする必要はありません。
テーブルの主キーはあくまでテーブル内でそのレコードを一意に指定するためだけのもので、極論すると他のレコードと同一の値でなければ何でも良いです。
各レコードに意味のある番号、例えば商品コードのようなものを付与したい場合は、主キーとは別のフィールドで設定しましょう。
テーブルの値を任意の順番で並べ替える方法
では、ACCESSのレコードを任意の順番で並べ替えたいときにはどうすればよいでしょうか。
これには、テーブルに並び順フィールドを数値型で作成し、その値で順番を制御する方法が最も簡単です。
先ほどの例で、ID:4とID:5の間に入れたい新規レコードをテーブルに追加してみましょう。
ID:7で登録できました。
しかし、この場所ではなく4と5の間に入れたいですよね。
そこでクエリを作成します。
クエリデザインから新規クエリを作成しましょう。
上段のフィールドリストに先ほどのテーブルである「test_商品」を配置し、全フィールドを下段のデザイングリッドに配置します。
ここで並び順フィールドの並べ替え行で「昇順」を設定します。
こうすると並び順フィールドの値が小さいレコードから順番に並べることができます。
では、データシートビューで結果を見てみましょう。
思った通りの場所にレコードを入れることができました。
今回は並び順20と25の間に入れるために、新規レコードの並び順を23と設定してあります。
あとはこのクエリをそのまま利用したり、このクエリを元に一覧表フォームを作成すれば意図した順番でレコードを表示することが可能です。
このように、ACCESSのテーブルには行の挿入ができませんが、クエリを使って任意の場所にレコードを入れることは可能です。
並び順フィールドのコツ
上記で説明した並び順による並べ替えは、そもそもテーブルに並び順フィールドがあってこそ機能します。
ここで、テーブルの並び順フィールド利用のコツをお伝えしましょう。
並べ替えが発生する可能性があるテーブルには最初から並び順フィールドを作成しておく
ACCESSは運用後にテーブルの設定を変更するのは結構大変です。
そのため、並べ替えが発生する可能性があるテーブルには、最初から並び順フィールドを設けておく方が無難でしょう。
上記のように、数値型のフィールドを作っておきましょう。
並び順の値は間隔をあけておく
並び順の値が連続していると、その間にレコードを移動させたい場合に、後ろになるレコードの並び順の数値を全て変更しないといけなくなってしまいます。
そのため、並び順の値はあらかじめ間隔をあけておき、間に数値が余地を残しておきましょう。
上記のように5の倍数などで設定しておくと、後で間に数値を入れる時にも困らないです。
以上、ACCESSでテーブルに行を挿入する方法をご紹介しました。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。
最後までお読みいただき、ありがとうございました。