AccessへのExcelデータインポートでの上書きエラーについて

このQ&Aのポイント
  • Accessのテーブルデータの更新をExcelからのインポートで行いたいが、「上書きできません」とエラーが表示される。
  • データ型などの設定変更を回避するため、一旦元データをEXCELにダウンロードし、見出しのみを残しデータを削除、2行目以降に最新データを値貼り付けで保存している。
  • Accessのインポート作業において、データ型や主キーの設定を確認しているが、同様のエラーが3つのファイル全てで発生している。
回答を見る
  • ベストアンサー

AccessへのExcelデータインポート

お世話になります。 Accessのテーブルデータの更新をExcelからのインポートで行いたいと試していますが「上書きできません」とエラーが表示されます。 データ型などの設定変更を回避するため、一旦元データをEXCELにダウンロードし、見出しのみを残しデータを削除、2行目以降に最新データを値貼り付けで保存しています。Accessのインポート作業に於いて、一応データ型や主キーの設定確認していますが、同様のファイル3つとも同じ現象です。 なお、3つのファイルはリレーションを張り、クエリを作成しています。リレーションを外さないと更新が出来ないのであれば、複数のリレーションが絡んでおり、とても外すのは危険とも思っています。 どうぞ宜しくお願い致します、

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1597/2433)
回答No.2

更新が一部だけでしたら、一時テーブルにインポートして更新クエリで更新してみてはいかがでしょう。

IloveF1
質問者

お礼

皆様、週末にも関わらずいろいろとアドバイスを頂きまして有難うございました。 今朝、一時テーブルをインポートし更新クエリで更新をし、希望通り更新が出来ました。大変有難うございます<(_ _)>

その他の回答 (3)

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

令和元年の夏(冷夏)というのに暑いですね インポートで弾かれるのは ・完全整合性のリレーションで結ばれたテーブル間に  主テーブル(リレーションの1側)がない子テーブル(リレーションの∞側・新規のテーブルとインポートしたいテーブルのデータ型の異なるフィールドがある その為主テーブルヤシ子テーブルの順にインポートする 一度インポートされた子テーブルは何度でもインポート出来るので バカよけの為重複無の列名とフィールド(インデックスプロパティーを重複なし)をそれぞれに追加する

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

お早うございます。 リレーションフィールドのデータ型はどの様なものですか ・オートナンバー型なら致命的です ・リレーションフィールドの値がExcelの列にあるなら  新規のテーブルにインポート  新規のテーブルからインポートしたいテーブルにインサート   インサート出来ないレコードは警告メッセージが出ます   頻繁に出るようでしたらインサートの前に    DoCmd.SetWarnings False    インサート出来ない情報のテーブルが作成されます   

  • kkkkkm
  • ベストアンサー率65% (1597/2433)
回答No.1

インポートの更新ではなくて、それぞれのテーブルから古いデータをクエリで削除して、インポートで追加をしてみてはいかがでしょう。

関連するQ&A

  • accessにexcelデータをインポート

    accessで困っているので、質問です。 excelのSheet1のデータを、自動的にaccessに取り込みたいと思ってます。 マクロでは、その様なコマンドが見つからなかったので、テーブルのリンクで自動的に更新するように設定しています。 しかし、テーブルのリンクだと以下のような症状が出て困っています。 ・文字と数字のデータが混在していると、データがNUM#というエラーになってしまう時がある。 ・フィールドのプロパティがその時の読み込んだデータによって、勝手に変わってしまう。 以上の点についてなにか良い対策はありますでしょうか?当方の環境は、windows2000と、access2000です。 あと、ワタシは探しきれなかったのですが、マクロなどでexcelからaccessにデータをインポートする方法はあるのでしょうか?良かったら、こちらのほうも教えてください。

  • アクセス インポートファイルの再インポートを防ぐ

    アクセス2003を使用しています。 アクセスにて、エクセルファイルをインポートしています。 既にインポートしたエクセルファイルを再度インポートしないように、再取込みを行おうとした場合、 「既に取り込んでいるファイルです」とエラーメッセージを表示させて、取込み防止を行おうとしています。 クエリの重複チェックを設定していたのですが、行き詰ってしまいました。 アクセスのテーブル先頭フィールドの日付データ(yyyy/mm/dd)でチェックしたいと思っています。 教えてください。よろしくおねがいいたします。

  • accessへのexcelデータのインポート

    友人からもらったaccess(2000)の管理表にEXCEL2003で作ったデータをインポートしたいのですが、類似質問も調べてみたのですがわからないので、教えてください。 管理表にはすでに、テーブル、クエリ、フォームが作られています。 テーブルの既存データをすべて削除して、新しいexcelデータをインポートしたいのです。 1.既存のテーブAを開き外部データの取り込みからexcelデータをウィザードに従って進めていくと、テーブルAはすでに開いていますとなり、インポートできません。 2.次に開かない状態で同様に進めて、インポート先のテーブルAを指定して完了をクリックするとインポートするときにエラーが発生し、インポートできませんとメッセージが出ます。 3.excelのシート名での新規データインポートは出来るのですが、既存のテーブルAに新しいデータのみインポートするにはどのようにすればいいのか?教えてください。 4.既存の管理表にはテーブルが20、クエリが50、レポートが13で構成されていて、その中の2つのテーブルに新規データ(約2000件)をインポートしたいのです。 まったくの素人に毛が生えた程度で思い違いもあるかと思いますが、データのみ変更してソフト自体はそのまま使用したいので、よろしくお願いいたします。 質問の内容に不足がありましたら補足しますのでよろしくお願いいたします。

  • access インポート時、既にあるデータは上書き

    accessで、データをインポートする時に、すでにあるデータは、上書きしたいです。 (既にあるIDの場合上書き、ないIDの場合追加されるようにする。) そこで、検索すると、「更新クエリと追加クエリ」で出来ることがわかりました。 参考にしたページのアドレス http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1224631687 ここからが質問なのですが、 さらに、上書きするデータ(すでにあるデータ)は、バックアップとして別テーブルを作って そこに更新前のデータをためていきたいのですが、どうすればいいでしょうか? よろしくお願いします。

  • アクセス エクセルのデータインポート

    アクセス超初心者です。現在2003を使用してエクセルからデータをインポートしようとしていますが、エラー回避のため、エクセルのフィールド名とアクセスのフィールド名は同じにするとテキストにありますした。アクセスのフィールドに主キーを設定するためNOフィールドがあります。コレはエクセルにはないフィールドなのですが、データインポート時にエラーになりませんでした。初心者なのでどうして??という疑問がわきます。どうしてなのでしょうか?主キー設定のフィールドは無視されるのですか?よろしくお願いします。

  • Accessのインポートについて(上書きと追加)

    Access2000を使用しています。 インポートについて教えて下さい。 あるテーブルにExcelデータをインポートしています。 「あるテーブル」の設定としましては主キーを設定して いて重複なしにしています。 実現したいこととしましては、Excelデータ上にAccessデータ(すでにあるデータ(主キー))があれば上書き保存して、なければ追加したいのです。 Access側        | Excel側 主キー フィールド1  |  列1  列2    A     ○      |   B   ○ B     ×      |   D   × C     ○      |   E   ×   つまり上記の表でAccess側Bデータのフィールド1の「×」 をExcelデータをインポートすることにより「○」に 変更(上書き保存)したいのです。 そして、Excel側D・EデータはAccessに新規レコードと して追加したいのです。 よい方法はないでしょうか? なお、私の知っている知識としましては、 インポートするとデータは上書き保存されずに 追加されてしまうということは知っているのですが。 以上、よろしくお願い致します。

  • 【Excel2000】Access2000からのデータインポートについて

    Access2000のデータをExcel2000にインポートしたいのですが、 条件を付けてインポートする方法についてお教えください。 (Access2000のクエリデータ) 依頼No(順不同):内容 3:aaaaa 5:bbbbb 1:ccccc (Excel2000のデータ) 依頼No:内容(空白) 1: 2: 3: 4:  5: ※スペースが使用できませんので区切りは:とさせて頂いております。 ExcelデータとAccessデータをマッチングさせ Excelデータの依頼Noに対応するAccessデータの内容を Accessデータから取ってくるというようなイメージです。 外部データの取り込み-新しいデータベースクエリから行おうとしましたが どのように条件を指定して良いのかわかりません。 VBAでないとできないのでしょうか。 お分かりになられる方、ぜひお教えくださいませ。 よろしくお願い致します。

  • Access(アクセス)でのインポートについて

    テーブルのインポートでエクセルファイルをインポートしたいのですが「ワークシートインポートウィザード」の画面でテーブルを指定して保存すると 「Microsoft Access」の画面で「すべてのデータをテーブルに追加できませんでした。 キー違反のため、0件のレコードのデータが失われ、0件のレコードが削除されました。」と出てきて、保存できません。 もとのテーブルのデータ型を使ってインポートするにはどうしたらいいのでしょうか。よろしくお願いします。 インポートする元のデータ(エクセル)とインポート先(アクセス)の関係は次の通りです。 エクセルファイル    アクセスのテーブル (セルの書式設定)   データ型、フィールドサイズ --------------------------------------------- 数値          数値型、長整数型 文字列         テキスト型、16 インポートする前に元のエクセルデータをアクセスのデータ型に合わせただけではダメなのでしょうか

  • AccessでExcelデータをインポート

    お世話になります。  Access2003/2010  Excel2003/2010 10年程前より、Access2003で作成したツール(Excel2003形式のファイルを インポート)を利用しております。 Excelファイルは毎日追加/更新しているのですが、先日、とうとうExcel2003 の行の上限である65,536行を超えてしまいました。 今後はExcel2010形式のファイル(行の上限は1,048,546行)とし、かつ、 2010形式のファイルをインポートできるようツールの修正をしなければならなく なりました。 ツールの修正というよりは、今までAccess2003上で使用していたので、そのまま Access2010上で使用したいだけなので、修正が必要がどうかも分からない 状況です。 そこで2点質問ですが、  1.現状インポートする際は、   DoCmd.TransferSpreadsheet acImport, 8, "temp", strFile, True   としておりますが、「8」の箇所は2010形式のExcelをインポートする場合   どのように修正すればよいでしょうか。   ヘルプを見ても8(Excel2000形式)までの記載しかありません。   とりあえず8のままExce2010形式で、かつ2003の行の上限を超えている   ファイルを(66000行)インポートしてみましたが、行は削れることなく   インポートできました。  2.インポート時の文字数制限について   インポートするExcelファイルの「備考」フィールドは文字数が多いのですが、   Access2003上で使用すると全ての文字列(750文字程度)をインポート   できておりました。   しかしAccess2010上で使用すると、文字列が途中で切れる(255文字)   不具合が発生しました   インポートする際は、あらかじめテーブルを作成しておき、そこに対して   Excelのデータをインポートしております。なお、「備考」のデータ型は   メモ型です。   (255文字で切れることから)恐らくAccessがインポートする時点で「備考は   テキスト型」と判断しているから255で切れてしまうのではないか、で、切れた   文字列をメモ型に入れてるだけのように見受けられるのですが。。   2003から仕様が変わってしまったのでしょうか。   上記のことから、インポートするExcelの先頭行の「備考」に、適当な文字列   (750文字)を入力し、それをインポートすると途切れることなくインポート   できました。   ※Accessがメモ型と認識したから? ※いずれもツールをAccess2010上で使用した状況です。 ご教示の程、宜しくお願い致します。

  • Accessのテーブルへのデータインポートについて

    Accessのテーブルへのデータインポートについて Access2002で、A.mdbのTESTテーブルからB.mdbのTESTテーブル(構造は同じ)へテーブルデータをインポートしたいのです。 TESTテーブルの主キーはSEQ(オートナンバー)しかありません。 そのときに、コピー元とコピー先の主キーに重複があった場合、オートナンバーなので自動で再付番しデータが追加して欲しかったのですが、 Accessの機能のエクスポート、インポートでは、コピー先に主キーに重複があったデータは上書きされてしまいます。 テーブルを開き、データをコピー&ペーストしますと、ペーストしたときにオートナンバーで自動で再付番されます。 この方法でもいいのですが、データが数百万件あるので、現実的ではありません。 Accessのインポート・エクスポートで、オートナンバーで主キーを再付番してから、B.mdbのTESTテーブルにデータ追加する方法はないでしょうか? よろしくお願いいたします。

専門家に質問してみよう