• 締切済み

Accessへのレコードのインポートについて

Access2002を勉強中の初心者です。 DoCmd.TransferSpredsheet acImportを使ってエクセルシートからAccessのテーブルにレコードを取り込むボタンを作りました。 このボタンを押したときに、重複するレコード(既にテーブルへ取り込み済みのレコード)は取り込まないようにしたいのですが、できますか? よろしくお願いします。

みんなの回答

回答No.1

あまりいいアドバイスではないかもしれませんが、お許しください。 レコードのキーがあるようでしたら、 その列のプロパティでインデックスを(重複なし)に してしまうのはどうでしょうか。 すでにテーブルに取り込み済みのレコードのキーと 同じキーのレコードを取り込もうとしても取り込めない(エラー)ようにはなります。

haasan99
質問者

お礼

アドバイスありがとうございます。 キー(フィールド)としては、日付、コード、数値なのですが、取り込みすべき別のレコードで重複するものもあるため、こちらの希望するイメージと違ってしまいます。 なかなか、他の方からご回答がないところをみると、そう簡単にできることではないみたいですね。(-_-;)

関連するQ&A

  • access vba インポートについて

    別のところで質問したのですが、回答が得られなかったので こちらで質問しまする。 昨日、accessをさわリはじめた、おっさん初心者です。 お願い:エクセルのデータをアクセスにインポートしたいです。      1つのエクセルファイルに複数(30枚)シートがあり、      それぞれのシート名で、アクセスのテーブルが複数作成できれば良いです。      アクセスのVBAにどんなコードを書けば良いのでしょうか。 1つのシートの取り込みは、 DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, ”インポート先テーブル名", "ファイル名", True, "シート名" & "!" (全くわかってませんが、)これでできましたが、この辺がおっさんの限界でした。 色々web見たのですが、難しい・・・とりあえず、やさしく教えてください。 (1)フィールド名ごとインポートする方法 (2)すでに存在するテーブルにデータを継ぎ足す方法 テーブル”A”には  日付     獲物    調理    感想   1月1日    きつね   なべ    にがい  1月2日    もぐら   からあげ  まずい 1月3日    ぱんだ   さしみ   あまい           ↑   ↑   ↑   ↑  ↑ シート ”A”から 1月4日    たぬき   なべ    ばかうま 1月5日    らっこ   ひもの    うまい を追加 この二つができるとうれしいです。 アクセスは2000です。 エクセルは2000です。 ウィンドウズはXPです。 エクセルは初級程度できます・・・。 基本を理解していなくてもわかる感じで助けてパソコン大先生!!

  • ACCESS2002、レコードのインポートができません!

    初心者です、よろしくお願いします。 ■ 仕様環境 WinXP Access2002 アクセス2002で顧客管理システムを作ってます。 アクセスAのテーブルにアクセスBのテーブルをインポートする時、 レコードだけインポートできないのでしょうか? どうしても違うテーブルが作られてしまいます。 例えば・・ アクセスAに「住所」という項目があり、そこには既にレコードが 何件か入っているのですが、そこにアクセスBの「住所」のレコードを追加したいのですが、 うまくいきません。そういう機能はついていないのでしょうか? また、アクセスBの情報をエクセルファイルに変えて「次のテーブルに保存する」で インポートしたのですが、最後の「完了」ボタンを押すと「エラーが発生し、 インポートできませんでした」という表示がでてインポートできません。 同じように電話番号や名前、メールアドレス等もアクセスAに追加したいのですが、 一つ解決しないと先に進まない気がするのでとりあえず住所だけにしぼってみました。 データを”追加”するような感じでしたいのです! 誰かお知恵を貸してください!

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

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

  • EXCELファイルからACCESSへインポート

    質問させていただきます。 ACCESSのフォームから、EXCELファイルを選択してEXCELの内容を、 テーブルにインポートさせたいのですが。以下の方法で行って いるのですが、テーブルに反映されません。 Private Sub cmd_Import_Click() Dim InitialFileName As String Dim varTitle As Variant Dim FileName As String InitialFileName = "hoge.xls" varTitle = "ファイルを開く" FileName = GETHOGEOPEN(varTitle, InitialFileName) DoCmd.SetWarnings False DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "T_HOGE", FileName, True DoCmd.SetWarnings True MsgBox "完了しました" End Sub ACCESS → ACCESS2003 SP3 EXCEL →EXCEL2003 SP3 よく見ると、すでにEXCELのバージョン指定が違う(汗) これが原因かも・・・・(汗) わかる方がいらっしゃったら教えてください。

  • Access から Excelのシートをインポート時エラー

    Access の既存のテーブルにExcelのスプレッドシートからデータをインポートするため次のコマンドを実行すると、 F1フィールドがない旨のエラーメッセージが表示されます。 DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "アクセスのテーブル名", "インポート元のエクセルファイル名.xls", False ここで、F1フィールドとは何でしょうか。 Excelのシートの1行目にAccessのテーブルの項目名と同名の項目名を挿入しておけば、上のコマンドの最後の引数をTrueにすればインポートは成功します。項目名のないスプレッドシートはインポートできないのでしょうか。 ご存知の方、教えてください。

  • AccessからVBAでExcellシートのインポート

    すみません。教えてください。 AccessVBAでエクセルのシートをインポートしたいのです。 いつも同じ行数ではありませんのでrange指定を埋め込むわけに行きません。 DoCmd.TransferSpreadsheet acImport, , "給与データ報告書", "c:\test\test.xls", True, "a1:p6000" でインポートできるのですが DoCmd.TransferSpreadsheet acImport, , "給与データ報告書", "c:\test\test.xls", True, "" range指定をしないとエラーになります。(出来ると書いてあるが) sheet1、ワークシート名とかの指定が出来ればと思い、いろいろ試してみたのですが出来ません。 宜しくお願いいたします。

  • アクセス:エクセルからのインポート方法について

    エクセルからアクセス(アクセス初心者です。よろしくお願いします。) ・エクセルの行コピー(数字の上で)コピーしてアクセスのテーブルのレコードへ貼付するがエラーが出てうまくいかない。(作業担当者が通常のインポートもできないほどのスキルでこの方法なら可能という事情があります) ・エクセルのデータベースシートを通常のインポートでアクセスのテーブルにとりこみ、今度は逆にエクセルにエクスポートしたものを、また上記のように行コピー&アクセスのレコードへ貼付すると簡単にできる。 このことをどのようなしくみの違いがあると理解したらよろしいのでしょうか?今後の作業や簡易システム構築の為の参考に教えてください。

  • エクセルからアクセスにインポートする際のエラーについて

    こんにちは。 エクセルで作成された従業員台帳を、アクセスにインポートしたいのですが、エラーが出て困っています。 インポートの為のフォームを作り、参照ボタンでそのエクセルファイルを選択してフルパスを取得し(こちらの動作はOKです)、実行ボタンでそのファイルをインポートする、という方法をとろうと思います。 transferspreadsheet で、エクセルのファイル(.xls)は問題なくいくのですが、csv形式のファイルを指定して同じようにインポートすると、 実行時エラー 3274 外部テーブルのフォーマットが正しくありません。 となってしまいます。 書いているコードは、 DoCmd.TransferSpreadsheet acImport, 8, "従業員台帳(アクセス側でのテーブルの名前)", "上記画面で取得したフルパス", True(一番上の項目をフィールド名として使用します), "" です。.xlsでも.csvの形式でもインポートできるようにしたいのです。 環境は、winXPpro、Access2000、Excel2000 です。 よろしくお願いします。

  • Access2003 インポートについて質問がございます。

    Access2003 インポートについて質問がございます。  すでに完成しているテーブルがあり、  そこに毎月のExcelデータを都度テーブルに蓄積していきたいのですが、  Accessを開かずしてテーブルにインポートすることは可能でしょうか。  すでにテーブルのフィールド順に、レコード単位でExcelに並べられている条件です。   (Excelの行コピー⇒ Accessテーブルの最終行に貼付でインポートできる状態) 初心者なもので大変恐縮ですが、ご教示をお願いいたします。  

  • Accessでレコードの複製

    Accessで、ボタンをクリックすると 表示させているレコードをコピーして複製したいです。 以下のようにコードを書いてみたのですが、 「コマンドまたはアクション”追加貼り付け”は無効です」 となってしまいます。 DoCmd.RunCommand acCmdSelectRecord 'レコードの選択 DoCmd.RunCommand acCmdCopy 'コピー DoCmd.RunCommand acCmdRecordsGoToNew '新規レコードへ DoCmd.RunCommand acCmdSelectRecord DoCmd.RunCommand acCmdPasteAppend '追加貼り付けを実行 ちなみに DoCmd.RunCommand acCmdPasteAppend を DoCmd.RunCommand acCmdPaste に修正しても 「コマンドまたはアクション”貼り付け”は無効です」 となって、エラーになってしまいます。 そこで、以下のようにコードを省略して DoCmd.RunCommand acCmdSelectRecord 'レコードの選択 DoCmd.RunCommand acCmdCopy 'コピー DoCmd.RunCommand acCmdRecordsGoToNew '新規レコードへ DoCmd.RunCommand acCmdSelectRecord ここで、手動で、ctrl+Vをすると、レコードのコピーができます。 コードの書き方が間違っているのでしょうか? ご教授よろしくお願いいたします!

専門家に質問してみよう