• 締切済み

access2000でつまづいてます

エクセルからインポートしたテーブルのレコードで、読み込んだときにエラーがあったと思われるものが見つかりました。 ひとつだけだったので、新しいレコードで入力しなおし、エラーのレコードを削除しようとしたところ、 レコードに検索キーが見つかりませんでした という警告が出て ヘルプを開くと (Error 3709) このエラーは、ISAM SEEK の実行時にインデックスに一致する値がない場合に発生します。 との説明がありましたがどうしたらいいのか分かりません。 当方アクセスはド素人なので基礎的なことを質問しているんだと思うんですが 対処方法を教えてください。

みんなの回答

回答No.1

まずはデータベースの修復と最適化をしてみてください。 [ツール]-[データベース ユーティリティ]-[最適化/修復] それでも直らなければ・・・ 新しいテーブルを作成し、正常なデータだけを新しいテーブルにコピーします。 コピーがきちんと行われたことを確認したら古いテーブルをテーブルごと削除してください。

参考URL:
http://www.google.co.jp/search?hl=ja&q=access+Error+3709+ISAM+SEEK&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=

関連するQ&A

  • ACCESSで複数主キーにおけるseek検索

    ACCESSで複数主キーにおけるseek検索 ACCESS2000で複数の主キーを持つテーブルからseekで一致検索を行いたいが、 ADOを利用した場合のコードの書き方がわかりません。 テーブルは以下の3つのフィールドから構成されます。 フィールド1:フィールド2:フィールド3 年月日:担当職員:応対結果 ここで主キーは「年月日」と「担当職員」の2つで、「年月日」と「担当職員」が 一致するレコードをseekによって検索したいのです。 インデックスを表示させると「年月日」と「担当職員」が表示されます。 「年月日」の欄にのみ、インデックス名の欄にPrimaryKeyと書かれています。 DAOを用いて検索部分をVBAで書いたら動きました。 以下に検索部分だけ書きます。 (1) ds.Index = "PrimaryKey" (2) ds.Seek "=", 年月日, 担当職員 (3) If ds.NoMatch Then (4) MsgBox"そんなデータないですよ" (5) Else (6) MsgBox"一致するのがありました" しかしながら、ADOを用いた記述方法がわかりません。 上の(1)行は ds.Index = "PrimaryKey" でよいと思うのですが、(2)行以下がどう書いて良いかわかりません。 何卒宜しくお願いします。

  • エクセルのデータをアクセスのテーブルにインポート

    エクセルのデータをアクセスのテーブルにインポートしたくて、 アクセスから外部データのインポートでエクセルを指定してるのですが ************************************************************************ ワークシート インポートウィザード インデックス、主キー、またはリレーションシップで重複する値が生成されてるため、 テーブルを変更できませんでした。 重複する値のあるフィールドの値を変更するか、インデックスを削除してください。または重複する値を使用できるように再定義してください。 ************************************************************************ になってしまいます。 エクセルの列名を見ても重複していないし(COUNTIF関数で確認しました) アクセス側のウィザードでインデックスはどこのフィールドにもつけてないし、 「主キーを設定しない」もしくは「主キーを自動的に設定する」にしているのに、何をやっても上記のエラーがでます。 ググっても同じようなエラー内容が見つからないのですが、どうしたらいいでしょう? ヴァージョンはエクセルは2007、アクセスは2010です。バージョンの相違が原因でしょうか?

  • ACCESSにインデックス(主キー)のあるテーブルを作りたい

    元データがEXCELでそのデータを利用し、 ACCESS内にマスター用(品目マスタ)のテーブルを作り、 1番目の部品コードというフィールドを インデックス/主キー(重複しない)にして 2番目、3番目の項目の値をえられるように しようとしていますが、EXCELからの元データを インポートしようとしても部品コードフィールドが インデックス/主キーに設定できません。 EXCEL内で部品コードが重複しないように削った つもりです。 部品コードが重複していなくても、いけない文字列 があってインデックス/主キーにできないのでしょうか? ※詳細 以下のようなテーブルをつくり、 284-A80と入力したら製品部品名称の「基板」と いう値や製品分類の「LED」という値を得ようと している。 部品コード    製品部品名称   製品分類 284-A80      基板        LED 7841P20      ヨーク       ブザー CL-270-CD     LED         LED HSDL-3201#001   センサー     センサー ……約17000レコードぐらい ただし、部品コードの値がもっとごちゃごちゃして いて、「*」、「スペース」「#」「_」「/」などや カタカナ文字のものも含まれていたりします。 なぜ、上記の部品コードをインデックス/主キーとして 設定をおこなったテーブルとしてインポート できないのですか?

  • アクセスでのキー違反とは??

    コマンドボタンをクリックすることで、クエリから登録、修正、削除ができるフォームを作成しました。ただ、処理はできるのですが、型変換エラーのため、0個のフィールドをNull値に設定しました。また2件のレコードでキー違反、0件のレコードで・・・とエラー表示がでます。原因は何なのでしょうか?無視すれば処理ができます・・。 コード→数値型、値要求(いいえ)インデックス(はい(重複なし)) 名称→テキスト型、値要求(いいえ)インデックス(いいえ) 更新日→日付/時刻型、値要求(いいえ)インデックス(いいえ)となっています。コードを主キーにしているので、インデックスの変更ができません。

  • accessでのエラー

    Access2000で作られたものなのですが(知人の会社ですでに辞めた人が作ったもの) ハードを2年位前にXPに入れ替えたためAccess2003で使っていました。 受注Noを主キーにして受注管理票と工程管理票を作っているのですが、昨日まで順調に入力できていたのですが今日になって入力完了し登録しようとすると 「インデックス、主キー、またはリレーションシップで値が重複しているので、テーブルを変更できませんでした。重複する値のあるフィールドの値を変更するか、インデックスを削除してください。または重複する値を使用できるように再定義してください。」 とエラー表示され先に進みません。 インデックスや主キー等はいじっていません。 試しに新しくデータを作成し全てインポートしてみたのですが同じ結果でした。 ちなみにデータはコンバートせずに使っていましたが、コンバートしてみても同じでした。 Access2000のCDはどこにあるかわかりませんが2000にしたら治るものなのでしょうか。 仕事に使われているため非常に困っております。 何卒宜しくご教授お願いいたします。

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

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

  • Access 「主キーにはnull値を~」のエラー

    こんにちは。閲覧ありがとうございます。 私はAccess初心者です。 勉強と実用をかねて個人用の「家計簿」をWindows7のAccess2010で作成しております。フォームを使用し、費目を記録して、ゆくゆくは集計なども行いたいと考えています。 いくつかの失敗に当たりながらどうにか形はできたのですが 『インデックスまたは主キーには、null値を使用できません。』 というエラーが出てきてしまい、これがどうしても解決できないでいます。 初心者があやふやな言葉を並べるより、現物を見ていただいた方が早いと思うので、以下に私が作成中の「家計簿rev2.accdb」をアップロードしておきました。 http://www1.axfc.net/uploader/so/2884464.zip (稚拙で見難いことこの上ないかもしれませんが、初心者ゆえご容赦ください・・・) 仕様としましては、フォームの「Fmain家計簿DB」に、「レシートNo、購入日、種類ID、費目、値段、個数、店舗ID、その他」と入力して、最後に次のレコードに移れば、レコードが一つ記録されるといった具合(のはず)です。 各テーブルの主キー以外には「空文字列の許可を"はい"」「値要求を"いいえ"」「インデックスを"いいえ"」に設定してあります。 オートナンバー型を使用しているのはテーブルの「Tmain家計簿DB」の主キーのみです。 また、「フィールドとキーが一致しているレコードをテーブルで探すことができません」というエラーが出るのを回避するため、こちらの質問を参考にさせてもらい外部結合の設定をしてあります。 (http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1368686318) そして、フォームに想定通りのデータを入力すると『インデックスまたは主キーには~』のエラーが出てしまいます。 せめてどこにnull値が入っててエラーが出てるのかを表示してくれたらいいのですが・・・ 以上になります。長文お読みいただきありがとうございました。 こんな簡単なdbの作成でお手上げ状態になるとは情けない限りです・・・ どなたか、『インデックスまたは主キーには、null値を使用できません。』の解決策をご教示いただけるとありがたいです。 よろしくお願いいたします。

  • ACCESSの初歩的な質問です。

    基本的な質問で申し訳ありません。 テーブルAとテーブルB両者のデータベースからIDをキーにして一致しない情報を抽出したいと考えているのですが。 テーブルAを基準にして一致しないレコードAは抽出条件から取り出せるのですが、同じクエリを使用してテーブルBの情報レコードBを取り出せないでしょうか? 簡単に言えばIDをキーにして変更前と変更後の情報を抽出したいのですが。

  • Access 分割したテーブルを一対一で結合。新規レコードが作れなくなりました

    過去に同様の質問が無かったようなので質問します。 Access2002です。 これまで顧客名簿を一つのテーブルで管理していたのですが、フィールド数が増えてきたので、 テーブルを5分割しました。 主テーブルに対し副テーブル4つを、主テーブルのID(主キー、オートナンバー型)と副テーブルそれぞれのID(数値型)で一対一結合しています。 下記のようなイメージです。 テーブルA-テーブルB テーブルA-テーブルC テーブルA-テーブルD テーブルA-テーブルE すると、 新規レコードの登録が出来なくなってしまいました。 全部のテーブルを結合させたクエリを作って、そのクエリを基にフォームを作ったり、 主テーブルのフォームに副テーブルのサブフォームを4つ設置したり、 幾つか方法を試みたのですが、どれも同じエラーメッセージが出ます。 ↓ 「インデックス、主キー、またはリレーションシップで値が重複しているので、テーブルを変更できませんでした。重複する値のあるフィールドの値を変更するか、インデックスを削除してください。または重複する値を使用できるように再定義してください。」 非常に基本的な質問なのかも知れませんが、お手上げです。 どなたかご教授くだされば幸いです・・・。

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

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

専門家に質問してみよう