• ベストアンサー

ACCESS 97のことでお聞きしたいことが。

実は知人のACCESSのデータベースで相談されております。いままでフォームを使って入力していたものが更新できないと言うことでした。エラーメッセージの内容は「レコードを追加できません。テーブル”○○”の結合キーがレコードセットにありません」とでます。で、いろいろ調べてるうちに「○○」というテーブルそのものが消えてることに気がつきました。本人に問い合わせてみたところ、消した覚えはないそうです。で、じつはこのデータベースの過去の状態の物があったので見比べてみるとやっぱりあるはずのテーブル○○がないので更新できないと言うところまで行き着いたわけですが、過去の完全な状態の物があるなら過去のやつと今のやつをどうにかすれば簡単なんではと思ったわけですが、過去のDBに現在の差分を足すって出来ますでしょうか?それとも何かいい方法があれば教えていただきたいのですがよろしくお願いします。ちなみに現在のDBで、修復をかけてみましたが、復活なりませんでした。

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

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

>データベースの過去の状態の物があった そのmdbから消してしまったテーブルをインポートしたあと整合性を取る為に差分のレコードを入力して追加すれば大丈夫です。

souryu
質問者

補足

アドバイスありがとうございます >そのmdbから消してしまったテーブルをインポートしたあと え~と、過去の物から現在の物へってことですか?それとも逆ですか?う~んと、過去の状態の物に現在の残っているテーブルをインポートして、そこから差分をコピペしたらいいってことでいいんでしょうか?

その他の回答 (2)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

>過去の物から現在の物へってことですか?それとも逆ですか? 通常は最新のmdbへ不足しているテーブルをバックアップからインポートするのが普通です。 そしてインポートしたテーブルに最新のレコードを追加するのが行程手順も少なくすむと思いますが。 逆では古いmdbに最新のものを全て移さないとダメですから手順が増えるのではないでしょうか。

souryu
質問者

お礼

最終結果としましては現在の中身を過去の物にインポートし、差分を継ぎ足した後見比べて問題のあるクエリーについて過去の物のクエリーを残し、ほかを現在の物と入れ替えた結果、無事に元に戻りました。消えてた○○テーブルは見えなくなっていただけでした。どうもありがとうございました。

  • gatyan
  • ベストアンサー率41% (160/385)
回答No.1

消えた○○テーブルを現在のDB(MDBファイル)に移せれば何とかなるのなら、現在のDBに過去のDBからそのテーブルだけインポートすればいいのでは?

souryu
質問者

お礼

最終結果としましては現在の中身を過去の物にインポートし、差分を継ぎ足した後見比べて問題のあるクエリーについて過去の物のクエリーを残し、ほかを現在の物と入れ替えた結果、無事に元に戻りました。消えてた○○テーブルは見えなくなっていただけでした。どうもありがとうございました。

souryu
質問者

補足

早速のアドバイスありがとうございます。やってみました。すると、インポートされたのが「○○1」とでます。で、それを「○○」に変えようとすると前のリレーションは切れますがいいですか?と聞いてきます。これって「○○」が何らかの形で生きてるってことですか?

関連するQ&A

  • HerokuのDBへのinsert方法

    アプリケーションからではなく、ローカルからherokuのDBへのレコードの挿入方法を教えてください。 現在、Ruby on Rails4でherokuへのデプロイが完了した地点まで来ました。 db:migrateでデータベースの構築までできたのですが、レコードの追加方法がわかりません。 マスタテーブルは以降更新する必要が無いのでseedで設定してやれば良いのはわかるのですが、不定期的にレコードを追加したいテーブルでは、どのようにしてレコードを追加/更新すれば良いでしょうか。 よろしくお願い致します。

    • ベストアンサー
    • Ruby
  • mdbの破損「データベース形式・・・・を認識できません」

    フォームのみのDBとテーブルのみのDBがあります。 突然フォームのみのDBがタイトルのメッセージが表示されて、開けなくなりました。 なんとか、フォームの情報とVBAコードを吸い上げたいのですが 行き詰まっています。 JetCOMP.exeを使ってみたりもしたのですが、うまく行きませんでした。 レコードのmdbの方には一切問題はありません。 バックアップはこまめに取っていたつもりですが、 ちょうど重要な更新をした後に上記の状態になってしまい できればVBAの差分だけでも拾いたいと思っています。 どなたか助けて下さい。よろしくお願い申し上げます。

  • Access で更新クエリー

    教えてください。アクセス2000 Win2Kです。 あるDBから1つのレコードだけ抽出し(オートナンバーをキーにしてテーブル作成クエリでローカルテーブルを作成します。)その後、そのレコードを加工して元のDBにもどしたいのですが、1レコード上にフィールドが60近くあるので一括で更新したいのです。「T_ローカル.*」みたいな感じで・・・。なにか良い方法はありませんか?一旦、DBから削除して加工したレコードを追加する方法も考えたのですが、DBのオートナンバーが変わってしまうのでやめました。 なにか良い方法をご存じの方、是非ご教授ください。 よろしくお願いします。

  • Accessの更新クエリについて質問です。

    よろしくお願いします。 集計したクエリを元に更新クエリを実行すると、更新できません。 やりたい作業としては、売上データテーブルのレコード数を得意先ごとにカウントして、得意先マスタテーブルのレコード件数フィールドを更新する作業です。 追加クエリで一度テーブルに追加してから、テーブル同士で更新も考えたんですが、レコード数が多いためにDBのサイズが爆発的に増えて廃案になりました。 何か良い方法があれば教えてください。

  • accessのリンクテーブル

    AというDBのAAテーブルをBというDBのBBテーブルとしてリンクしています。 B側では単にリストで見る程度でレコードを更新、追加、削除はしません。 クエリで絞り込んで集計程度はします。 このような使い方において、B側のDBを開いたままで A側で更新や追加等を行うと排他制御とかでひっかかったりしますか? よろしくお願いします。

  • データベースのレコードをaccessで修正出来ません

    なっちゃんです。 久しぶりのご質問です。よろしくお願いします。 早速ですが環境です  ・ OS Windows2000  ・ サーバー SqlServer2000  ・ アクセス access2003 ご質問です  上記の環境に SqlServer2000 をセットアップ  して access2003 を使いDBを登録したのですが  レコードの内容を更新(登録、削除、変更)する  ことが出来ません。    手順は SqlServer の EnterpriseManager を  使い空のDBを作成して それを access の  プロジェクトで開き、クライアントにあるmdb ファイルを別の access で開いてテーブルを  ドラッグ&ドロップで追加しました。  その登録されたテーブルの内容を変更することが  出来ません。 検証したこと  サンプルの NorthWind のレコードは access で  更新できます。  新規に作成したDBの内容は EnterpriseManager  を使うと変更できます。  サンプルの NorthWind のDBに上記の方法で  テーブルを追加しても、そのテーブルのレコードは  変更できませんでした。 以上のような状態で、たぶんどこかの設定(権限?) を変更する必要があると思うのですが、それが分からずに困っています。 どなたかお分かりの方がおられましたら 是非ご教授いただければと思います。 よろしくお願いいたします。  

  • Access サブフォームの背景色

    開発環境はAccess 97です。 テーブルAとテーブルBを結合した選択クエリABを レコードソースとするフォームを作りたいと思います。 サブフォームを使用し、レコードの内容はデータシート 形式で表示したいのですが、ソースがテーブルAの項目 に対する更新は制限したいため、編集ロックプロパティを [はい]に設定しました。 編集ロックがかかっている項目は視覚的にそうと わかるよう、背景色を変えたいのですが可能でしょうか? 過去ログを調べたら「可能」「不可能」両方の回答が ありました。

  • AccessとSqlServerのテーブルリンク

    Access2007とSqlServer2008を使用しています。 Accessで作成したテーブルを「データベースツール」-「データの移動」でSqlServerに移行してリンクする際、 (1)SqlServerに新規にデータベースを作成すると、リンクテーブルマネージャから見てもリンク先DBが正しく表示されますが、 (2)その後、その既存DBに同じAccess内の別のテーブルを、「データベースツール」-「データの移動」してリンクしたものは、リンクテーブルマネージャから見てもリンク先DBが ()となっており表示されていません。 ツールとしてSqlServer Management Studioを使っていますが、そこからでも(1)のテーブルは表示されていますが、(2)のテーブルは表示されません。 でもリンクはできているようなのです。 また、SqlServer Management Studioを使って、SqlServer内に新規テーブルを作成し、 それをAccessからリンクしようとしても、テーブルリンク一覧内に表示されない状態です。 (「外部データ」-「ODBCデータベース」…)にて SqlServerのファイルデータソースを表示しています) (2)のテーブルはSqlServer Management Studioから見ることができないため、更新・削除もできず困っています。 DB、テーブル、リンク方法等、何か問題があるのでしょうか? よろしくお願いします。

  • Access テーブルの変更点を一覧に表示したい。

    お世話になります。 AとBと全く同じ構造のテーブルがあります。 Bにデータを流し入れ、Aとの差分を取得し、アプリケーションの一覧にデータの変更があった箇所を分かるように表示させたいです。AとBとの差分のレコードはAとBを結合したSQLを元に取得できるのですが、レコードのどのフィールドに変更があったのかまでは分かりません。 この場合、対象レコードのフィールド分、ループ処理を行い、データを比較していくしかないのでしょうか?フィールド数が多いため、1レコード、1フィールドづつ比較するのは処理に時間が掛かりそうです・・・。 こういった場合、どうすれば良いのか迷っております。 何卒、アドバイスを宜しくお願いします。

  • Access のクエリの一時保存

    Access でテーブルから様々な処理をしてクエリを作成しているのですけれども、 クエリが終了するまで時間がかかってしまいます。 普段、そのクエリに対して、データの取得等をすることが多いので、 毎回、クエリが実行されるのは非効率です。 もともとテーブル自体、それほど更新するわけではないので、 クエリを行った結果をどこかに保存しておいて、テーブルが変更されたときのみ、 クエリが実行されるというようなことは、Access ではできないのでしょうか? また、ほかの DB では、そのような機能があるものなのでしょうか? あまりデータベースに対して詳しくないので、教えていただければと存じます。

専門家に質問してみよう