• 締切済み

エクセルでアクセスデータの差分のみを読み込むには?

エクセルでアクセスのデータを自動で読み込むようにしているのですが、 都合上、データ内容に変更があった場合、アクセスではなくエクセル上で修正しています。 ただ、そうした場合、エクセルデータ修正後にアクセスデータを読んだ場合、当然ながらエクセル上で修正した部分まで書き換えられてしまいます。 これを防ぐため、エクセルとアクセスデータを参照し、エクセルより新しいレコード(判別はレコードごとのオートナンバーID)のみ読み込む、というようなことはできませんでしょうか。 どうかよろしくおねがいします。

みんなの回答

  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.2

アクセスは使ったことがないので何ですが。。 現在エクセルに取込んであるデータの「最終ID」は分かっていいるわけですから、 次回アクセスからデータを取込むときは、その「最終ID」より大きいIDのレコードのみを エクセルに取込んであるデータの最終行の次の行から、取込めばいいのではありませんか?  

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

普通は無理 Excelでの変更をAccess側へ反映させたのちにExcelファイルへ書き出して修正しましょう マクロを使用することで可能だろうと思いますが、マクロを作成するよりも 上記の方法を取った方が確実に早いですよ。しかも間違いが無いです Excelで変更した箇所が変更中にAccess側で更新されているような事態であれば 上記の方法を含め質問にある方法は賢明ではありません Excelで編集すること自体を放棄してください その方法ではデータの画一性を保つことができません おかしくなってしまったデータを修正する手間を考えたら、 Access上でデータを修正できるように工夫することを強くお奨めします

shigaieto
質問者

補足

親身なアドバイス、ありがとうございます。 ただ、エクセル上での修正が必要なのは、行やセルに色を付けたりするためで、運用上は、 ■既存レコードの修正はエクセル上でのみ ■アクセスは新規登録のみで、過去入力分は触らない というルールを決めることにより、画一性を持たせられればと思うところです。 どうぞ宜しくお願いします。

関連するQ&A

  • Access2003 データ型 オートナンバーについて エクセルからテ

    Access2003 データ型 オートナンバーについて エクセルからテーブルをインポートする方法 主キーである、IDと名をつけたフィールドのデータ型は"オートナンバー"でレコード新規入力際、自動で番号がふられていくようにしています。 このテーブルにエクセルのレコードをインポートして追加したいのですが、インポートできません。 ※オートナンバーフィールドが原因と思われます。 どうすれば、エクセルからこのテーブルにレコードをインポートし、追加されたレコードにオートナンバーで番号を割り振る事が出来ますででしょうか? 最も、シンプルな方法をお教え願います。

  • アクセスのデータ型について

    アクセスのデータ型でオートナンバー型について教えてください。 通常、1 2 3 4・・・・・と自動的になりますが、これを001 002 003 004 ・・・・とゼロを入れて(数個)オートナンバー型にすることができますか。教えてください。

  • ACCESSでフォームを使って、テーブルを参照、データ入力、データ更新をしたいのです

    フォームを使って、テーブルを参照、データ入力、データ更新をしたいのです。 売上テーブル  ID   商品コード  日付    金額   1    G1     20080101  532153  2    G1     20080101  564281  3    G1     20080301  538123  4    J4     20080301  124531  5    J4     20080302  125483 ID:オートナンバー 商品コード:数値型 日付:数値型 金額:数値型 これを使い、 フォームではまず レコードナンバーを入力画面        ↓ レコード番号を入れると、そのレコードのデーターが画面に表示され、 その画面で修正可能        ↓  保存 ボタンで保存 という流れです。 レコードナンバーはIDを使おうと思っています。 データの量が莫大な為、コンポボックスなどは使えません。 できるだけ、VBAなどは使わずに作りたいです。 よろしくお願い致します。

  • アクセスで、通し番号を付けるには。

    アクセスで、データを蓄積する度にレコード毎に通し番号付けれればと思っています。 商品テーブル 商品id:オートナンバー型 商品:テキスト型 数量:数値型 検査No.:数値型 検査No.のフィールドに通し番号を使えればと思っています。 10個のレコードがあれば、最初が1で最後が10と言う風に通し番号が自動で付けばと思います。 宜しくお願いします。

  • ExcelからAccessへのコピーする場合

    Access97とExcel2000を利用しています。  例えばaccessで、   テーブルAには  ID と 製品名 のフィールドを設けます。   テーブルBには  ID と 販売個数 というフィールドを設けます。      ここでテーブルA,BのIDは同じものでオートナンバーです。   また、Excelで、  セルA1,A2,A3にはそれぞれ製品名として   チョコレート、キャンディー、ビスケットが入力されています。  まず、ExcelのA1のチョコレートからA3のビスケットを範囲指定しコピーしました。  これをAccessのテーブルAに貼り付けしたいと考えています。 質問は、 Accessに貼り付ける場合、何処にカーソルを運んで貼り付ければ良いのでしょうか。 また、テーブルAにExcelのデータを貼り付けた場合、増えたレコードはテーブルBに反映されるのでしょうか。 初心者です。教えて下さい。  

  • accessで同じレコードが出来る

    access2007です。2010でも同じ現象が起きています。 idをオートナンバーで振っているのですが、連続した2つの番号で同じ内容のレコードが出来ることがあります。 片方のレコードの内容を変更するともう片方の内容も自動的に変化します。 片方のレコードを削除すると両方削除されてしまいます。 現在レコード数は50000件です。 何か対処方法は無いでしょうか。 宜しくお願いします。

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

    エクセルで作成したデータをアクセスに取り込む際、エクセルではレコード数が540なのに、アクセスでは557となってしまいました。 原因は、エクセル上で空白のデータも、インポートされてしまっているようです。エクセル上で空白の部分は、データがないものとしてインポートさせないようにするにはどうすればよいでしょうか。

  • エクセルとアクセスのデータ比較(VB6.0)

    エクセルとアクセスのデータ比較ツール(VB6.0) 質問者:SSCSC アクセスからエクセルにコピペされたレコードがあるとします。 そのエクセルのレコードのあるフィールド値を変更します。(このとき、アクセスもエクセルと同様に変更します。) 上記は手作業でします。 そこで、そのエクセルのレコードがアクセスに存在するかどうかをプログラムで作成したいと思っております。 要するにエクセルとアクセスのデータ比較をして、一致していないレコードがエクセルに存在した場合は、ログを出力したいと思っています。 アクセスのデータが比較基準になります。 何か簡単にできる方法はないでしょうか。 今思いついている方法は、 エクセルの1行目はコピペ時にアクセスのフィールド名がコピーされているので、 エクセル、アクセス両方のフィールド値を全て比較対象にしてSQL文で存在するかどうかを確認する方法です。 ご回答よろしくお願い致します。

  • Access リレーションシップ データ型について

    リレーションシップとクエリ内部結合の違いについて リレーションシップとクエリ内部結合(リレーションシップ)の違いは参照結合性や連鎖更新、連鎖消去設定の差だけでしょうか? データ型のオートナンバーは一度使用した番号はレコードデータを消去しても、二度と使えないのでしょうか? 任意の番号に指定しようすると、オートナンバー型のIDフィールドに連結されているため編集できません となります。

  • ExcelデータをACCESSへエキスポート

    ExcelデータをADOを使いACCESSへエキスポートしたいのですが、 データ型がちがうというエラーが出てエクスポートできません。 対処法を教えてください。 Excelシートの次のようなデータをAccessへエクスポートしようと しています。 A B C D E F G(列) 1 ID  番号 地域  客先  売上金額 種類 数量 2    K01 東京    a社  100,000    イ  4 3    K02 神奈川  b社  50,000 Excelシートの1行にフィールド名があり、レコードがA2:G3入って いるとします。Accessの売上テーブルにExcelのフィールドと同じ 順番のフィールド名があった時、Excel VBAにてADOを使いAccess にデータを貼り付けようとすると、データ型がちがうとエラー表示 が出てしまいます。A2:A3はAccessの自動発番機能を使うのでいつも 空です。又F3:G3はデータがこの例のように空の場合もあります。 Excel側もAccess側もフィールドのデータ型は同じにしたつもりです が、レコードが空があることがエラーの原因でしょうか。もしそうなら どう対処すればよいのでしょうか。

専門家に質問してみよう