こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Access2002 勝手に追加されるレコード

初めて質問させていただきます。
当方の環境はOSはXPで、MSAccess2002にて

 ID:数値項目
 値:文字項目

というテーブルを作成し、データシートビューにて手入力でダミーデータを
入力している状況をイメージしてください。
 ID 値
 1 あ
 2 い
 3 う
と入力していき、、新規レコードに移る際、勝手にIDが4というデータが
入ってしまうようで、この機能をOFFにしたいというのが質問内容です。

 ID 値
 2 え
 4 お
と入力すると、次のIDは6としてくれるので、偶数などの規則性を判断する
非常にかしこい機能だとは思いますが、今の私には不要な機能です。
なおID項目はオートナンバー型などは使っておりません。


レコード版のオートコレクト機能もしくは勝手にオートナンバーとでも
いう機能でしょうか・・・
言葉足らずとは思いますが、状況をご理解いただけますでしょうか?

オプションのどのパラメータがその機能なのか見当がつかず教えて
いただきたいです。(私のヘルプ等の読み込みが浅いだけと
思ってはおります)

お手数をお掛けいたしますが、よろしくお願いいたします。

投稿日時 - 2013-04-11 21:18:22

QNo.8038700

困ってます

質問者が選んだベストアンサー

Access 2007 以降では無くなったオートフィル機能ですね。

オートフィルを切りたい
http://microsoft.public.jp.access.narkive.com/vv65JS6k

確認できる環境がないので
記憶に頼った回答になりますが。

フォームの場合は、テキストボックスの
「オートコレクト」プロパティを 「いいえ」 にすることで
機能を無効にできたような?

データシート形式のフォームでも可能だったかは記憶にありませんので
オートフォームで作成して確認してみてください。

テーブルの当該フィールドに既定値を設定することで、
機能を無効にできたはずですが
既定値を 「Null」 にしても 可能かどうかは不明です。
ご確認ください。

最悪、既定値を 「0」 にするとか。

自分はテーブルに直に入力することはありませんし
フォームでは「オートコレクト」 を すべて 「いいえ」 にしていますので
この余計な機能で困ったことはありません。

投稿日時 - 2013-04-16 08:06:37

お礼

m3_maki様

ご回答ありがとうございます、解決いたしました!


ご指摘いただいた対応方法について結果をご報告させていただきます。

1)フォーム化し、デザイン画面のテキストボックスの
  オートコレクトのプロパティをデフォルトの'はい'から
  'いいえ'に変更することで回避できました。

2)テーブルの既定値をNULLとした場合では回避できず。
  (テーブルデザイン画面の既定値の空白の意味と同意のようです)

3)規定値を具体的な値'0'等とすると(当然なのですが)設定どおりの
  値となります。

上記により、1)にてフォーム全体のプロパティの'既定のビュー'の
値を'データシート'とすることで、対応いたします。


ご回答いただいた内容がまさに求めていたものでした、本当に
助かりました。また過去ログでも同じことを考えていた方がいたと
いうことで若干安心しました。

Ver.2007以降はない仕様ということですか・・・なるほど。

OS(XP)含め、社内の環境を刷新するにはコストも掛かりなかなか
難しい面はありますが、現環境と上手に付き合っていくしかない
状況です。最新環境に追従できなくとも、この内容のように皆様の
知恵の集積による代替手段があるのは非常にありがたいです。



m3_maki様および最初にご回答いただきましたchayamati様に
感謝いたします、ありがとうございました。

投稿日時 - 2013-04-16 10:49:11

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

テーブルのデザインビューでIDのプロパティーをオートナンバー型から数値型、または文字列型に
変更すればあなたの注文通りですが、これが必要ないときはIDを削除してもよろしいですが
EXCELでおやりなさい、と言いたくなります。
----------------------------------------
IDというフィールドを定義した覚えはないでしょう
なのにIDという項目ある理由は
ACCESSの基本の姿は主キーを含めて項目を定義します。
主キーは重複なし、変更が出来ないという制約を付けてシステムを安定化しています。
このため主キーがないテーブルを定義するとオートナンバー型のIDという項目が
追加されます。

例えば売上げというテーブルを定義するとします。
こののテーブルの中には日付、金額、のほか、お客様情報、商品情報も
必要ですね。
このお客様テーブル、商品テーブルを別に作成し、それぞれの主キーに対応する
項目を売上テーブルに定義することにより、お客様情報、商品情報を取り込めるのです。
このような事が出来るのがACCESSです。
説明が不十分でお分かり頂けないと思いますが、このIDを今のままにしておいて下さい。

テーブルでもデータの入力、変更は出来ますが、IDは入力も変更もできませんね
フォームで登録画面を作成するときは、IDを省いてもテーブルに残っていれば
内部で自動採番され、支障はありません。




通常の姿として必要なため、システムが追加したからです。

投稿日時 - 2013-04-12 21:34:09

お礼

chayamati様
ご回答ありがとうございます。
ACCESSひいてはDB設計については仰るとおり、ご丁寧な説明を
いただき、内容も非常に分かりやすく、理解いたします。


ただし質問させていただいた内容については、当方の伝え方が悪く
別の方向のご回答をしていただいたようです。



質問させていただいた内容のカラム名'ID'は説明上の例であって
分かりにくかったかと反省しております。

もっとシンプルな例で再度状況を説明いたします。

・カラム数は1個のみのテーブルとする。
・カラム名は任意とする。
・属性は数値項目とする(オートナンバーでない)。
・KEYはつけません。

ご質問
 下例の挙動を止めたいため、どのパラメータを変更すれば
 よいか教えていただきたいです。


例1)1レコード目 1
   2レコード目 2
   データシートビューにてここまで手入力し、レコード確定するため
   ENTERもしくは下カーソルを押す。・・・すると

   3レコード目 3が推定されて機械的に入力されてしまう状況。


例2)1レコード目 2
   2レコード目 4
   データシートビューにてここまで手入力し、レコード確定するため
   ENTERもしくは下カーソルを押す。・・・すると

   3レコード目 6が推定されて機械的に入力されてしまう状況。

なおレコードを0→3→6(+3で推移させる)としても'9'という値は推定は
されません。

各レコード間の推移が+1や+2であると、次レコードの値を予測する挙動の
ようです。


もしかしたらACCESSの仕様でなく、IMEでの予測機能?的なものなのかも
知れません。お分かりいただけますでしょうか・・・

ダミーデータを手入力するのに、この予測機能は今の状況には不要です。


説明下手で申し訳ありませんが、よろしくお願いいたします。

投稿日時 - 2013-04-15 09:42:44

あなたにオススメの質問