• 締切済み

アクセス

文献番号テーブルには、文献番号(主キー)、文献、著者名が並んでいます。 コメントテーブルには文献番号(数値型、空欄)、コメント、コメントID(主キー、オートナンバー)が並んでいます。 文献番号テーブルの文献番号キーを、コメントテーブルの文献番号(空欄)フィールドに落とし込む方法はないでしょうか?

みんなの回答

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.3

両テーブルを結合する条件は? コメントの中の文献名とか著者名で探すの? SQLを使えばあいまい条件での結合もできなくはありませんが 完全なものは出来ませんよ 最終的には人手によるチェックが必要でしょうね

tantankid
質問者

補足

色々ご回答ありがとうございました。解決しました。テーブルに受け入れ画面を取り、クエリの画面で追加クエリを作成、共通項目からリレーションを取れば、難なくできます。

  • auty
  • ベストアンサー率58% (284/486)
回答No.2

・ 結びつきは文献でしょうから、コメントテーブルに文献フィールドが残っている必要があるでしょう。その場合、 AccsessのSQLが副問い合わせ、別名が使えるなら UPDATE コメントテーブル as C SET 文献番号 = (select 文献番号 from 文献番号テーブル D where D.文献=C.文献 ); で良いと思います。 ・ Accsess2000でのSQLの実行方法ですが、  クエリボタンで、デザインビューでクエリを作成する・テーブル「コメントテーブル」を選びます。  ツールバー左端のSQLビューを選び、上記SQL文を入力し、ダブルクリックで実行します。 ・ 実行前には、必ずコピーを取っておいてください。

tantankid
質問者

お礼

ありがとうございます。早速やってみます。

  • auty
  • ベストアンサー率58% (284/486)
回答No.1

文献番号テーブルの文献番号(主キー) と コメントテーブルの文献番号(数値型、空欄) が同じ順番で、抜けているものがなければ、コピー&ペーストで貼り付けが出来ると思いますが。

tantankid
質問者

補足

すみません、説明が足りなくて、コメントテーブルの文献番号は、複数に渡っており、順番はバラバラです。一方で、文献テーブルの方は、グループ化してまとめ、文献1つにつき、番号は1つです。 大元の本体である文献、著者名、コメントが入ったテーブルを分解しようとしている過程なのです。当然この中には、同一の文献が多く存在しています。それを先述のグループ化でまとめ、オートナンバーをつけたものが、文献テーブルです。

関連するQ&A

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

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

  • Accessでのエラー

    Access修行中の身で、勉強をかねて書類BOXのデータベースを作成中です。 親テーブルのフィールド  ID(主キー、オートナンバー)、タイトル名、・・・・・、保存箱ID 子テーブルのフィールド  保存箱ID(主キー、オートナンバー)、保存箱名、・・・・ リレーション  親:保存箱ID-子:保存箱ID という構成です。 クエリで以下のような複合テーブルを作成し、 複合テーブルのフィールド  ID(主キー、オートナンバー)、タイトル名、・・・、保存箱名、・・・・ データを入力しようとすると、「レコードを追加できません。テーブルの結合キーがレコードセットにありません。」というエラーがでます。また、保存箱IDに入力のないレコードは、抽出されません。 どのようにしたいかというと、保存箱IDは入力しなくてもいいフィールド(関連させなくてもよいデータ)にしたく、複合テーブルで保存箱名を入れると、子テーブルに新たにレコードが追加されるようにしたいです。 できれば、SQLを使用せずに解決したいと甘えておりますが、無理でしょうか。

  • フォームから2つのテーブルにデータを書き込みたい

    Accessで T_aテーブルとT_bテーブルがありそれぞれのフィールドが以下のようになっているとします。 T_a:フィールド名 データ型    ID  オートナンバー型    商品番号 テキスト型 主キー T_b:フィールド名 データ型    ID  オートナンバー型 主キー    商品番号 テキスト型 このときフォームから入力したデータをそれぞれのテーブルの商品番号に追加したいのですがどのようにすればよいのでしょうか。  よろしくお願いいたします。

  • 主キーはオートナンバー型のIDを使った方が良いのか

    主キーはオートナンバー型のIDを使った方が良いのか、 独自の主キーを作った方がいいのか? 今は テーブル1 ------------------- IDフィールド(オートナンバー型) 主キー 1 2 3 ------------------- 伝票番号フィールド A001 A001 A002 ------------------- 部署フィールド 営業部 システム部 営業部 ------------------- 金額フィールド 100 200 300 ------------------- という状態ですが、 新たに主キーフィールドを作り 更新クエリで UPDATE テーブル1 SET テーブル1.主キー = [テーブル1]![伝票番号] & [テーブル1]![部署] & [テーブル1]![金額]; をして、主キーを独自に作った方がいいのか。 アクセスを作るにおいて、どちらの方が良いのでしょうか? テーブルのレコードは削除したりする事もあるので、オートナンバー型だと空きができてしまいます。 レコードに空きができないデータベースなら、オートナンバー型、 空きができるデータベースなら、独自に作った主キーにしたほうがいいのでしょうか?

  • Access2003オートナンバーを任意の値に

    Access2003で、オートナンバーでID番号の管理(主キー)をしています。 このID番号の他に、10桁の数値でプロジェクト管理したいと思っております。 オートナンバーを基に、別IDを作成する方法を教えてください。 なお、この10桁の数値は、先頭の4桁がプロジェクト番号として使用し、 後ろの6桁はオートナンバーのIDと同じ数値となります。 ======================================== (例)  [ID]     [ID2]   1    1001000001   2    1001000002   3    1001000003   〃       〃 ======================================== 下記のURLを参考にしてやってみたのですが、追加クエリを実行しても、 なぜか、オートナンバーフィールドへ追加することができませんでした。 ※追加クエリ実行エラーで、「型変換エラーのためnullに設定しました」となります。 http://www.accessclub.jp/samplefile/samplefile_145.htm お手数お掛けしますが、宜しくお願い致します。

  • Accessへのインポートについて

     Excelで作成したリストを、Accessのテーブルへ追加インポートした時、インポートはできるのですが、主キー(フィールド名はID、オートナンバーに設定)の数値がとんでしまって、大きな数値が入力されてしまいます。  ExcelのIDのセルには空白にしてあります。  そこで疑問なのは、うまくいく時といかない時があることです。  たとえば一つのリストをインポートしたら1~100までちゃんと連番で入るのに、次のリストをインポートしたら、100000~という風になります。  これは何が問題なのでしょうか。同じように設定・作業をしているのですが・・・。  よろしくお願いします。

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

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

  • ACCESSにて、EXCELみたいにVLOOKUP

    ACCESS2007にて、EXCELに近いイメージ操作でVLOOKUP関数機能を使うには、どのようにしたら宜しいでしょうか? ・フィールド構成(テーブル1,2共通) ID、会社名、電話番号、住所、業種 テーブル1の電話番号フィールドをキーにして、テーブル2に同一電話番号が有ったら、 テーブル1の業種データをテーブル2の空欄の業種フィールドに引用したい と言う様な機能リクエストです。 簡単に出来る方法有りますでしょうか?

  • Access2000でメインサブフォーム

    テーブル1 商品ID 数値型(主キー) 商品名 テキスト型 ------------------ テーブル2 売上ID  数値型(主キー) 商品ID  数値型 月日   日付型 売上個数 数値型 --------------------- 以上のようなテーブルがあり、テーブル1を「メイン」テーブル2を「サブ」のメインサブフォームを作成しました。 しかし、「サブ」のデータが多いため、さらに、サブフォームの日付フィールドを使い、抽出をしたいのですが、方法がわかりません。(例えば、9/1以上9/10以下のような抽出) いろいろやってみは見たのですが、思うようにできません。メインサブフォームでさらにサブフォームのデータを抽出するということは無理なのでしょうか?

  • Access VBAで自動連番を振るには

    【テーブル名】T_株券管理 【フォーム名】F_株主入力 【フィールド名】株主ID(テキスト型)(主キー) フォームに入力する際にオートナンバーを使用せずに、 レコードが切り替わると「株主ID」が「00001」「00002」「00003」・・・・というように1づつ発番されるようにしたく、AccessVBAの本を読んだり、ネットでDmax等調べているのですが、必要な情報が探せずに困っています。 本当はオートナンバーでIDを振っても良いのですが、レコードの削除等行った時に歯抜けになってしまうので、うる覚えで申し訳ないのですが・・・確か、フォームのテキストボックスのプロパティ、コードビルダでVBを「レコードが移動した際に」→「株主IDが0の場合に”00001”を、0でない場合には既存の数値に+1した数値をテーブルT_株券管理の”株主ID”に入力する。」といった感じの記述がしてあったと思います。VB初心者なので、説明が上手くできずにすみません。 このような記述方法はありますでしょうか?