• ベストアンサー

こういうことは可能ですか?(FileMaker4.0)

MacOSX / FileMaker4.0 あるデータベースがあります。 111 matsuda 222 tanaka 333 yamamoto ~ 1000件程度 別のデータベースにも 111 matsuda 122 hidaka 222 tanaka 233 yoshinaga 333 yamamoto ~ 1000件程度 というデータがあります。 これを、 122 hidaka 233 yoshinaga だけ表示させたいというとき、どうすればよろしいでしょうか?

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

  • ベストアンサー
  • zenjee
  • ベストアンサー率47% (50/106)
回答No.2

No1でお尋ねしましたが、今回の補足でIDと名前は別のフィールドというように受け取れますので、それを前提にしてお答えします。 まず、ファイル→リレーションの定義をクリックします。 ファイル「テーブル2」のリレーション定義のダイアログボックスが現れます。 新規を選択します。 「テーブル2」の関連に設定したいファイルを指定してください。 の画面が現れます。 「テーブル1」のファイルを選択します。 すると、「リレーション編集」のダイアログボックスが現れます。 リレーション名を例えば「抽出」などと付けます。 左側のテーブル2の「ID」と右側のテーブル2の「ID」をそれぞれ選択します。 OKをクリックします。 ファイル「テーブル2」のリレーション定義 のダイアログボックスが現れます。 リレーション名「抽出」、リレーション「ID=::ID」、関連ファイル「テーブル1」 となっていることを確かめ、終了をクリックします。 次にテーブル2ファイルを選択し、ファイル→フィールドの定義をクリックし、新たなテキストフィールド、例えば「名前1」を作成し、ダブルクリックします。 フィールド「名前1」の入力オプション のダイアログボックスが現れます。 「入力値の自動化」を選択し、ルックアップ値にチェックを入れ、右側の「指定」をクリックします。フィールド「名前1」のルックアップのダイアログボックスが現れます。 右上の入力欄の右の▼をクリックし、「抽出」を選択します。 左の大きな空欄に ::ID ::名前 というのが現れますので、「名前」を選択し、OKをクリックします。 フィールド「名前1」の入力オプションのダイアログボックスもOKをクリックします。 ファイル「テーブル2」のフィールド定義の画面も「終了」をクリックします。 ファイル「テーブル2」に戻りますので、レコード1のIDフィールド(111)をダブルクリックします。反転表示になったところで、レコード→フィールド内容の再ルックアップを選択します。 「ブラウズしている○○(レコード数)のレコードにフィールド「ID」基づいて 新しいルックアップ値をコピーしますか」と聞いてきますので、OKします。 するとテーブル1と重複する分の名前がフィールド「名前1」に入ります。 次に表示→検索モードにします。 「名前1」のフィールドに空フィールドの検索条件「=」を入力してEnterキーを押します。 するとテーブル1と重複してないレコードだけが残ります。 これで完了ですが、その分だけのファイルを新たに作りたいときは前の回答で説明したように、レコード→対象/対象外を入れ替え→レコード→対象レコードを削除で完了です。 以上はFM6での操作方法ですから、FM4では若干字句や表現が違うかも知れません。しかしこのリレーション定義やルックアップの方法は以前のFM3の頃から殆ど変わっていませんので基本的な考え方を理解して頂ければ作業可能かと思います。 現在手元にFM4がなく、またMacも使ってないので検証は出来ませんのでご了解ください。

taktak888jp
質問者

お礼

ご丁寧な回答、ありがとうございます。 早速やってみます!

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • aqula
  • ベストアンサー率60% (70/115)
回答No.4

「 別のデータベース」から「 あるデータベース」にリレーションし、 IDで照合します。リレーション名を仮に「ID照合」とします。 「 別のデータベース」に計算フィールドを作成 Count(ID照合::ID) … フィールドタイプ:数字 検索モードでこのフィールドに 「=」(半角イコール)で 検索すればできます

すると、全ての回答が全文表示されます。
  • zenjee
  • ベストアンサー率47% (50/106)
回答No.3

NO2.の回答文に1行抜けていました。 冒頭から3行目 「まず、ファイル→リレーションの定義をクリックします」の前に 「最初にテーブル2を選択します」 を書き加えます。

すると、全ての回答が全文表示されます。
  • zenjee
  • ベストアンサー率47% (50/106)
回答No.1

ご質問の内容がハッキリしませんが…… >「122 hidaka」「233 yoshinaga」だけ表示させたい というのは 別のデータベースの 111 matsuda 122 hidaka 222 tanaka 233 yoshinaga 333 yamamoto ~1,000件程度のレコード中から 「122 hidaka」と「233 yoshinaga」レコードだけを検索したいという意味ですか? であるとすれば 、 あるデータベース 111 matsuda 222 tanaka 333 yamamoto~1,000件程度、というのは本題に何か関係があるのでしょうか。 また、「111 matsuda」というのは1個のフィールドですか。それとも「111」と「matsuda」の2個のフィールドですか。 この辺が分からないと答えようがありませんが、とりあえずご質問の趣旨は、「111 matsuda」は1個のフィールドであって、別のデータベース(ファイル)の中から「122 hidaka」と「233 yoshinaga」のレコードだけを検索(又は抽出して別ファイルに)したいという意味だと仮定してお答えします。 その方法は、表示→検索モードにして、 まず、当該フィールドに「122 hidaka」 を入力、次にその状態のまま検索条件→新規検索条件をクリック、当該フィールドに 「233 yoshinaga」を入力し、 Enterキーを押せば「122 hidaka」と「233 yoshinaga」レコードだけが表示されます。 もしこの分だけのデータベースファイルを作りたい場合は、最初「別のデータベース」ファイルをコピーし、そのコピーファイルで 上記の検索を行い、レコード→対象/対象外を入れ替える→対象レコードを削除 の順にクリックすれば「122 hidaka」と「233 yoshinaga」レコードだけのデータファイルが残りますね。 私が現在使っているのはWinXP→FM6又はFM7ですが、以前Mac→FM3を使っていた頃からこの操作は特に変わっていないので、FM4でも出来るはずです。

taktak888jp
質問者

お礼

すみません、説明がかなり不足していました。 まず、2つのデータベースがあります。 table1という名前にしましょう。 ID 名前 111 matsuda 222 tanaka 333 yamamoto table2 ID 名前 111 matsuda 122 hidaka 222 tanaka 233 yoshinaga 333 yamamoto table2から、table1のIDを読み出して、重複していないIDのレコードだけを抽出したい、ということなんです。 ということは、 122 hidaka 233 yoshinaga のみが重複していないレコードということで抽出したいのです。 例は件数が少ないので、手でやったほうがよいのですが、両方共に1000件ほどあるので、プログラム?でやってしまいたいのです。

すると、全ての回答が全文表示されます。

関連するQ&A