• 締切済み

access2000でレコードが消去できない

access2000で作成したものですが、どこでどう間違えたのか1つのレコードが不具合になりました。(知識がないので説明ができませんが、すいません)で、この1つのレコードを消去するために、データベースを開いて、クリックして消去しようとしたのですが、「対象コードがみつかりません」などと出て消去できなくなってしまいました。「対象コードがみつかりません」とはどういった状況なのでしょうか?またこの不要なレコードを消去するためにはどうしたらよいのでしょうか?お願いします。

みんなの回答

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.2

>どこでどう間違えたのか1つのレコードが Accessは、間違えてなくても、正しい操作しかしてなくても、何度もレコードの更新を続けていると、データベースが「修復が必要な状態」になる事があります。 修復が必要な状態になるのは「毎日使っていて、数ヶ月に1回くらい」で、定期的に月イチくらいでデータベースの最適化を行うと回避出来ます。 これが起きると、質問者さんのような状況になりますが、その状態のまま使い続けるのは好ましくありません。 たいてい、データベースの修復を行えば、問題は解決します。 はっきり言って「Accessのレコード更新時のバグ」なんですが、初代AccessからあるバグでAccess2000でも直ってないので、マイクロソフトは直す気は無いようで「定期的に最適化してれば出ないし、出ても修復で直るから、問題ないよね」と言う事らしいです。 てゆ~か「修復」の機能があるって事は、頻繁に壊れる(修復が必要な状態に陥る)のが前提になってるって事で…。 以下蛇足。 このバグ、中核のJet database engineの開発者がもう居なくて、直したくても直せないとかの噂(確証なし) MSはJetを捨てて、セキュリティを強化した、別のデータベースエンジンのMSDEも作ってるけど、こっちはメモリを食うし遅いしで、余り使われてないみたい。

matukiti92
質問者

補足

ありがとうございいました。 あと、わすれてましたが、マイネットワークにのせて、2台のPCで使用しているんですが、PC1がaccess2000でPC2がaccess2003 なのです。その辺も関係してきますか?実は「閉じるときに毎回最適化」をしているんです。毎回ではなく、つきに1度くらいの方がいいのでしょうか? あと、もう1つですが、結局テーブルを1つそっくり消去し組みなおし、バグは直ったんですが、気づいたことがあります。バグがあるときは、accessがをおいているフォルダにdb1 db2 db3とどんどんたまってました。普通はdb1と出ても、すぐきえますよね。現在はなおりましたが、関係あるのでしょうか? 重ね重ねすいません。

noname#140971
noname#140971
回答No.1

1、当該ディスクを[マイコンピュータ]-[プロパティ]-[エラーチェック]。 2、再起動後に、[データベースメニュー]-[ツール]-[データベースセキュリティ]-[最適化/修復] 3、回復しなきゃ問題のレコード以外をコピー。 いずれにしろ、この手順を一度。

matukiti92
質問者

お礼

助かりました。ありがとうございます。

関連するQ&A

  • Accessでレコードの保存をせずにフォームを閉じたい

    Accessでデータベースのレコード追加を行うフォームを作成しています。 コマンドボタン(1)をクリック→新しいレコードの追加 コマンドボタン(2)をクリック→フォームを閉じる としています。(ウィザードを使用して、埋め込みマクロ?を設定しています。) コマンドボタン(1)でレコードが追加されるのは問題ないのですが、 コマンドボタン(2)をクリックした場合も、レコードが追加されていることに気がつきました。 一般的に入力する人は、 データを追加しようと思って入力していたけれど、 途中でやめてフォームを閉じることってありますよね? そういう場合にレコードが追加されてしまったら問題だと思ったのです。 ですが、どうしたらレコードの追加をせずにフォームを閉じられるかがわかりません。 それって可能でしょうか? Access初心者です。難しいVBAとかはまだよくわかりません。 何か方法、アドバイス等ありましたら よろしくお願いします。

  • Access97で新しいレコードが入力できない

    ちょっと困り果てました。 今まで何も問題なくテーブルの追加が行えていた アクセス97のデータベースなんですが、 おとといから突然新しいレコードを追加できなくなって しまったのです。 もちろん、データベースにはセキュリティーを いっさい掛けていません。 現象の詳細を簡単にまとめると・・・ 問題のデータベースは・・・ ・開くことができる ・テーブルとフォームの参照ができる。 ・ファイルサイズは700kB程度なので、容量の限界が  原因ではない。 ・アクセス97の不具合ではない  (友達のパソコンで開いても同じ症状がでるので) ・見かけ上で新規レコードの追加ができる。 ・レコードの追加をした後、上書き保存のボタンを  押してもエラーメッセージはでてこない。  ただし、ディスクアクセスのランプはついていないので  どうやら保存されていないようだ。 ・レコードの追加をした後ファイルを閉じることも、  アクセスを終了することもできるが、上書き保存の  確認メッセージがでてこない。 以上です。 おそらく私が気づかないうちに、どこかの 設定をいじってしまったものと考えていますが、 どうやって直せばよいのかわかりません。 お手数おかけしますが、よいアドバイスがありましたら 教えてください。 [ End of Message ]

  • アクセスでレコードの内容が変更されたかどうかを調べるには

    Win2000、Access2000を使用しています。 以下の作業をするためのVBを作成しているのですが、レコードの内容が変更されたかどうかを調べるためのコードとその他のコードとの組み立てがわからず困っています。 部分的にでもかまいませんので、おわかりになる方がいましたら教えてください。 1.フォーム上に作成した「戻るボタン」をクリックした時のイベントで、レコードの内容が変更されていたらメッセージボックスを表示する。 2.メッセージボックスの「はい」をクリックしたら、保存してフォームを閉じる。 3.メッセージボックスの「いいえ」をクリックしたら、変更されたフィールドの値を変更前の状態に戻してフォームを閉じる。 以上、よろしくお願いします。

  • access 2003 レコードのプリントについて

     access 2003 でデータベースを作成中です レコードを プリントしたいのですが たとえば3つのデータレコードがあり 1~3のレコードは、共通のデータがあるとき並び替えをしておき、プリントしたい。  所在地  酒の名前(1つ目)    酒の名前(2つ目のレコード) 東京    多摩          福生  新潟    越しの金杯  例ですがのこのように6レコード共通レコードがあれば右側に 表示したいのですが、どなたかお教えください。

  • レコードセットからレコードセットって作れますか?

    WindowsXP,VB6,SP5,で開発しています。 タイトルそのままなのですが、 ある事情で、まずはデータベース(Access)からレコードセットを作成しています。 そのレコードセットをもとに色々と抽出したいんです。 もし、データベースからSQL文で抽出するときみたいに、そのレコードセットを、 SUM(~とかGROUP化したりとかできればいいなあと思っているのですが、 その方法がわからず、2,3回遠回りしてレコードセットを作成してます。 レコードセットからレコードセットを作成することってできないのでしょうか? わかりにくくてすみませんが、どうぞよろしくお願いしますm(_ _)m

  • access2007 レコードの集計がしたい

    アクセス2007で出席簿を作成しています。 先頭のレコードに1日~31日があり、最後に合計欄。(対象の1カ月分の出席日数) フィールドには氏名を記載し、最後に合計欄。(その日の合計出席人数) これをチェックボックス形式にし、マウスのクリックで記入できるようにしています。 今までエクセルで行っていましたが、アクセスを導入したのをきっかけに作成に挑戦しています。 エクセルではsum関数で簡単に出来たのですが、アクセスではそうもいかないようで四苦八苦しています。 フィールドの集計は出来たのですが、レコードの集計はどの様にしたらできますか? 氏名 1日 2日 … 31日 計 Aさん □  □    □  25←この部分の合計 Bくん □  □    □  10← 同上 … 計  31 20   28  ←このレコードの集計は出来た。 イメージ的にこのような感じです。 また、将来的にこの合計の部分を別のテーブルに関連付けて行きたいと思っています。 まずは集計の所での方法を教えて下さい。

  • アクセス2003 ファイルの最適化/修復

    アクセス初心者です。 先任者から引き継いだファイルを使用しています。 ファイルの最適化/修復については先任者から、するように指示は受けていなかったのですが、 テーブルのデータを消去したりなどを頻繁に行ったので、『データベースの最適化/修復』を 勝手に行いました。(先任者に引継ぎされていなかったのに、してしまったことを今更ながらとても後悔しています。 もしやデータが壊れてしまったのではないかととても不安に感じています。 先任者が作成しているファイルはとても複雑で。。マクロもとても複雑に見えます。 VBAなどについては私の知識が全くないので分かりません。 いろいろな方のサイトを見て、自分にあてはまることはないかと探してます。 下記について。。。全く知りませんでした。コードのことも知りませんでした。 (1)コードを閉じてから最適化する。    ===コードの閉じ方===    モジュールをデザインで開き、右上内側の閉じるボタンをクリックしてコードを閉じる。灰色の背景が見えるまで全て閉じる。(※1)    コンパイルする。(コンパイルが通ったら)上書き保存する。AccessDBを閉じる。    最適化する。  Access2000になってからコードが開いた状態で最適化やフォームの削除、モジュールの削除をするとDBが壊れるということを経験しました。 (2)AccessDBは閉じてから最適化する。  Accessウインドウの中にAccessDBが開いている状態で最適化するとちゃんと最適化できないようです。  Accessウインドウだけが開いた状態から最適化します。 (1)(2)を読んでとても怖くなりました。 コードを閉じてから、最適化していませんし、その上、ウィンドウのみが開いた状態ではなく オブジェクトリストが見える状態で最適化/修復をしてしまいました。 後、オートナンバーも消える可能性もあると書かれていました。 最適化/修復の後も仕事はしており、一見Bデータ上で変わったところは見られないように 思えたのですが、一つずつデータを見て確認した方がいいのでしょうか。 いくつかのオブジェクトに不具合が出てしまってる可能性もあるのでしょうか。 あるいは心配しなくても大丈夫なのでしょうか。 的確に説明できない中での質問ですが、どうぞ宜しくお願い致します。

  • Accessフォームの新規レコードについて

    いつもお世話になっています。 Access2000でフォーム作成をしているときにちょっと詰まってしまいました。 クエリからフォームの作成を行うと、フォームの新規レコードの追加ができないんです! テーブルからフォームを作成する場合は新規レコードの追加は可能でした。 クエリがあるとどうしても新規レコードの追加ができなくなってしまいます。 クエリからフォームを作成して、新規レコードの追加を行えるようにすればどうしたらいいんでしょうか? よろしくお願いします。

  • ACCESS2000であるレコードまで進んだら別フォームに

    ACCESS2000を使って簡単占いソフトを作りました。 あるテーブル(質問集)から単票フォームを作成しました。次のレコード(質問)へはマクロボタンを割付し進むようになっています。 この場合最終レコード(最後の質問)でそのマクロボタンを押すと、別のフォーム(別の質問集)に切り替えるにはどう記述したらよいでしょうか? レコードの数は変わることはありません。 ACCESSは初歩的なことはわかり自分で作成もしますが、モジュールは全くわかりません。基本的なSQLの知識はありますが実践したことはありません。 わかりづらい点があれば、補足質問をお願いします。 宜しくお願いします。

  • (VBA)エクセルからアクセスのレコード削除が遅い?

    エクセルで作成した契約管理アプリで、ACCESSのデータベース にアクセスし、契約内容を管理する仕様のものがあります。 (複数拠点で仕様する為、エクセルだけだと一つのものでの 管理が困難なのでこのようにしています。ACCESSは共有フォルダに おいています。) それで、管理する工程の中で、一度データベースのレコード すべてをオール削除したい場合があります。 「今月契約」というテーブルを、月が変わったので、レコード が0の状態から再度、管理を始める場合等・・・。 「今月分セットアップ」というボタンで、先月分のデータを特定 の場所に保存したり、新たに契約管理を始める為に、テーブルの データを削除したりと一連の作業を自動で行うような仕様で 作成をしました。 その中で、レコードのオール削除の部分が異常なほどに時間が かかるのです。たぶんコードがおかしいんでしょうけど…。 コードの一部を示しておきます。 fileName = P:\契約管理DB.mdb Set dbobj = OpenDatabase(fileName) Set dbRecord = dbobj.OpenRecordset("今月契約", dbOpenDynaset) dbRecord.MoveFirst Do Until dbRecord.EOF dbRecord.Delete dbRecord.MoveNext Loop レコード数が1000近くあったりするんで、これをループで削除 の作業をしようとしているので、時間がかかるのではとも思う のですが、何かもっと格段に早い方法はないのでしょうか? どなたかご教授お願いいたします。