新規レコードから抽出されない。アクセス2007で簡単な名簿を作成しています。

このQ&Aのポイント
  • アクセス2007で簡単な名簿を作成していますが、新規に入力したデータが抽出されない問題が発生しました。テーブルを確認したところ、データは正しく入力されています。
  • テーブルで「個人・職場」の列でフィルタをかけると、新規入力分が抽出されないことがわかりました。入力フォームや直接テーブルにデータを入力しても同様に問題が発生します。
  • 対策として、テーブルの内容をテキストでエクスポートし、新しいテーブルにデータを読み込むことで問題は解決しました。しかし、アクセスにデータをインポートする際にエクセルとテキストのデータには差異があるのか疑問です。同じような経験がある方のアドバイスを求めています。
回答を見る
  • ベストアンサー

新規レコードから抽出されない。

アクセス2007で簡単な名簿を作成しています。 テーブルは1個 レコードの内容は、名前、郵便番号、住所1、住所2,会社名、会社郵便番号、会社住所1,会社住所2,入力日、個人・職場 となっています。 フォーム 入力と閲覧を兼ねたフォームを1個作成しています。 クエリー 選択クエリーを2個作っています。 【選択クエリー個人】はレコード「個人」を抽出条件を「個人」としています。 【選択クエリー職場】はレコード「職場」を抽出条件を「職場」としています。 クエリーでは、登録が個人か職場を選択出来るようにしています。 テーブルには、手元にあったエクセルのデータ(xlsx)を読み込ませました。 この時点では、【選択クエリー個人】【選択クエリー職場】どちらのクエリーでも希望通りのデータが抽出出来ました。 実際の運用を初めフォームから入力を始めた所、新規に入力したデータが【選択クエリー個人】【選択クエリー職場】個々のクエリーで抽出されない事に気がつきました。 確認した事 テーブルを確認した所、データは全てテーブルに入力されている。 テーブルで「個人・職場」の列でフィルタを掛けると、新規入力分が抽出されない。 なぜ抽出されないかを知りたい。 入力フォームにて 「個人・職場」の部分はコンボボックスにしています。 テーブルにて 入力フォームを利用せず、テーブルに直接データを入力してもフィルタで抽出されません。 対策 テーブルの内容をいったん全てを「テキスト」でエクスポートしました。 エクスポートしたデータには、フォームから入力したデータも含まれています。 テーブルをコピーして、貼り付けの際「テーブルの構造みの」として新規テーブルを作成。 新規作成したテーブルにエクスポートした「テキスト」データを読み込み。 エクスポートしたテーブルは削除し新規作成したテーブルを同じ名称に変更した。 上記対策を行った後フォームから新規データ入力後、テーブルのフィルタで抽出されるようになり、クエリーで抽出されるようになりました。旧テーブルの時に入力したデータも抽出されます。 アクセスにデータをインポートする際にエクセルのデータとテキストでは違い有るのでしょうか。 上記の対策を行いましたが、この状態で運用して問題ないでしょうか。 同じような経験された方がおればアドバイス頂ければ嬉しく思います。

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

  • ベストアンサー
  • chayamati
  • ベストアンサー率41% (254/607)
回答No.2

アクセスにデータをインポートする際にエクセルのデータとテキストでは違い有るのでしょうか。 ------------------------------------------ 外部データリボンからインポートするときに列毎にデータ型の確認変更が出来ます ※エクセルでは空白のセルを含んだ演算は空白セルを0とみなして演算が成立しますが アクセスでは空白を含んでいると演算は成立しません。 これを回避するためテーブルデザインビューで規定値を0として回避します

その他の回答 (1)

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.1

フォームを開く前に確定しているデータものだけが対象です。 新規に入力したものも対象にするにはRequeryをかけます 入力フォームで入力した時点ではテーブルは未確定のようで 入力フォームを閉じると確定になるようです Me.Requery

関連するQ&A

  • Accessのサブフォームからフォームフィルタを使ってメインフォームも含めたレコードの抽出が出来ないのは何故でしょうか?

    フォームフィルタを利用してサブフォームに入力されている値でレコードの抽出を行いたいのですが、うまくできません。 メインフォームが持っているレコード全てを持ってきます。 メインフォームに含まれているデータが100件なら、それ全てを表示してしまうということです。 私が抽出したいレコードは2件だけです。 メインフォームからフォームフィルタを利用して抽出すると正しい結果が得られます。 これはどうしてでしょうか? サブフォームへの設定が何か足りないのでしょうか? 親・子のフォームのテーブルは同一のものです。 カテゴリーで親と子にフォームを分けました。 親にはクエリはなくて、リレーションシップしたテーブル数種から直接フォームにひっぱってあります。 子は一つのテーブルからクエリを作って、そのクエリからフォームに引っ張っています。 Access2003です。 どなたかご教示いただきますようお願いいたします。

  • ACCESS2000でクエリで抽出したレコードをフォームに表示するには

    A顧客テーブルで作成したフォームからコマンドボタン(電話番号検索)押下時に 電話番号入力画面が出て入力した電話番号とマッチした顧客レコードをフォームに 表示させたいのですが上手く出来ません。 現在進めている方法では何がダメなんでしょうか(以下は考え方) A顧客テーブルから作成したフォムに電話番号コマンドを作成してコマンドを 押すとクエリの実行をさせる。クエリはA顧客テーブルのフィールドを全て選択して抽出条件に[電話番号入力]としている。 (結果) ・フォームを開くと先に電話番号入力が出てくる、先にフォームが開かない。 ・電話番号検索コマンドボタンを押すと抽出条件に合ったレコードはデーターシートビューに表示される。 よろしくお願いします

  • 【Access2000】レコードの抽出方法

     Access2000を使用してデータベースを作成していますが、抽出条件でつまずいています。  具体的には、  【1】選択クエリーAを基に作成したフォームA(単票形式でレコードを1件ずつ表示)があります。  【2】フォームAの中に単票形式でレポートを出力するマクロボタンが有。  【3】現在はマクロボタンを押すとパラメータで「データNo.?」と入力してもらう形になってレコードを1件抽出する形になっています。    ※画面上に表示されている「データNo.」フィールドの数値を入力してもらう形です。  質問についてですが、今のところはパラメータを入力してもらいレコードを抽出→レポートを出力していますが、パラメータを使わず、現在、フォーム上に表示されているレコード(表示されている1件)を抽出する方法はないかと壁にぶち当たっています。  言い換えれば、レポートを出力する際の元になるクエリの抽出条件で「現在、表示されているレコード」をどのように記述すればいいか、もし御存知の方がいらっしゃいましたら御教示お願いいたします。

  • Access2003でコンボボックスからデータを抽出したい

    自己啓発でAccess2003を勉強しています。 Access2003でコンボボックスで名前を選択して、データ(住所)を抽出したものをリストボックスに表示させたいのですがどこがまちがっているかわかりません。こんなことで3週間ぐらい悩んでいます。 回答またはアドバイスをお願いします。 もしくはもっと簡単なやりかたがあればお願いします。 (1)「氏名」、「住所」のテーブルを作成。テーブル名は「01データ」 (2)「氏名」、「住所」のクエリを作成。クエリ名は「クエリ1」 (3)フォームでコンボボックスとリストを作成。フォーム名は「印刷」 ⇒コンボボックスの名前は「検索」。 ⇒値集合ソースはSELECT [01データ].ID, [01データ].氏名 FROM 01データ; これで「氏名」が選択できた。 (4)クエリの「氏名」抽出条件にLike [forms]![印刷]![検索] (5)検索するマクロを作成。マクロ名「M検索」 アクションは 全レコードの表示 フィルタの実行 ⇒Where条件は[Forms]![印刷]![検索]=[クエリ1]![氏名] (6)マクロ「M検索」をコンボボックスのプロパティ「イベント」タブから変更時に設定する。 (7)フォーム「印刷」を開き、コンボボックスで氏名を選択すると『クエリ1!氏名』と表示されてしまいます。 (8)フォーム「印刷」のリストボックスは全レコードが表示されている。

  • クエリーで全部のデータを抽出する方法

    アクセスのクエリーでデータを抽出する時、具体的にはフォームでデータを入力し抽出するのですが、たとえばフォームのテキストボックスに数字を入れないとそのクエリーのフィールドは抽出がかからないようにしたいのです。(抽出フィールドが1つなら数字をいれなければクエリーのデータすべてが表示される) ----------------------------------- フィールド   A      B     c テーブル   テーブル1 テーブル1 テーブル1 抽出条件    []    [] または    ---------------------------------- 上はクエリーのデザインですがクエリーをひらくと抽出条件をきいてきますがA列は何も入力しないでB列では1と入力するとBの列に1の入ってるレコードを表示させたいのです。(もし空欄が無理ならAの列の時何かある文字を入力すると全部表示になる、でもいいです。) まわりくどくなりましたが、アクセス超入門者です。よろしくおねがいします。

  • ACCESS2000でのレコード抽出

    OS:WindowsXP ACCESS2000 あるフィールドの値が最大となるようなレコードを選択クエリで 抽出しようとしているのですがうまくいきません。 テーブルのフィールドは4個あります。 テーブル [系列] [優先度] [データ1] [データ2] ここで各系列ごとに優先度が最大となるレコードのみを 抽出したいのです。 系列、データ1、データ2は重複がありえます。 優先度は系列を跨いだ重複はありますが、 同系列内での重複はありません。 レコードの例) 1:系列A 優先度1 データA データB 2:系列A 優先度2 データC データD 3:系列B 優先度1 データE データF 上記の例で言いますと、レコード2:とレコード3:のみを 抽出するクエリを作成したいのです。 集計クエリで優先度のフィールドを「最大」にしても、 3つのデータ全てが抽出されてしまいます。 どなたか解決策をご教示ください。

  • フォームのテキストボックスで抽出したい

    データベース一覧の抽出条件として、フォームのテキストボックスを使用することができるのでしょうか?もし、でしるのでしたら、抽出条件の入力方法を教えて下さい。具体的にいうと、「名前」「住所」「入社年月日」のフィールドを持つ「名簿」テーブルがあります。次に抽出クエリ「Q_抽出名簿」を作成し、入社年月日が未入力のもののみを抽出させました。この「抽出名簿」をベースにして、フォーム「F_抽出名簿」を作成しました。このフォームを開き、「入社年月日」テキストボックスに新しく日付が入力されたもののみクエリで抽出したいのです。わかりにくい箇所は補足説明しますので、是非、教えて下さい。

  • Access 抽出条件

    クエリの抽出条件で特定のレコードを抽出したいのですが 最新の三年分のレコードデータを抽出する場合どのような式にすればよいのでしょうか? テーブルには年月フォームがあり年月が入力されています。

  • クエリーの抽出について

    今回初めて質問させていただきます。 所持しているゲームソフトが増えてきたので、ACCESSで管理したいと思いました。 テーブル、追加クエリー等は作成したのですが、フォーム上でメーカー名と頭文字という二つのテキストボックスを作成し、クエリーにて FORM!検索フォーム!テキストボックスという感じで作成し、抽出をしようとしたところ、両方のテキストボックスに検索条件を入力しないと抽出されないことに気づきました。 これを、一つの検索条件を入力した時にも抽出できるようにできませんか?説明がわかりにくいかもしれませんが、よろしくお願いします。

  • アクセスのテキスト型フィールドの初期値

    アクセスのテーブルにテキスト型フィールド「●●日付」を作成しました。さらに、定型入力の方法として、日付(____/__/__)を指定しています。 このテーブルから、クエリでデータを取得する際、●●日付にデータを入力していないレコードのみを取得したいと思い、クエリの抽出条件として=""(ダブルクォーテーション)や=''(シングルクォーテーション)と記載したのですが、レコードが1件も抽出されません(もちろん●●日付にデータを入れていないレコードは複数あります)。一方で、<>""や<>''で、●●日付にデータが入力されているレコードを抽出しようとした場合は、●●日付にデータが入力されているレコードが抽出されます。 テキスト型フィールドにデータが入力されていないレコードを抽出するクエリはどのようにしたら作成できるのでしょうか?

専門家に質問してみよう