みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
すみません。質問させてください。
Filemaker Pro Advanced使用
エクセルデータ「あ」xlsxをファイルメーカーのファイル「AAAA」fmp12に取り込もうとしています。
エクセルデータ「あ」には1行ごとに日付、内容などが書かれてあります。
エクセルデータ「あ」の各1行ごとにそれぞれ区分が違うデータがあり、
例えば、エクセルデータ1行めはファイルメーカーのファイル「AAAA」fmp12のテーブルAに、
エクセルデータ2行めはファイルメーカーのファイル「AAAA」fmp12のテーブルBに、
エクセルデータ3行めはファイルメーカーのファイル「AAAA」fmp12のテーブルCに、
ということをしたいのですが、
エクセルデータ「あ」のテーブルAに入れるデータ、テーブルBに入れるデータ、テーブルCに入れるデータにエクセルデータを
わけて入れると、
テーブルAにはテーブルBに入れるデータの空欄とテーブルCに入れるデータの空欄、
テーブルBにはテーブルAに入れるデータの空欄とテーブルCに入れるデータの空欄、
テーブルCにはテーブルAに入れるデータの空欄とテーブルBに入れるデータの空欄が生じ、
その空欄を削除すると、テーブルAの場合、テーブルB(テーブルC)のデータが削除ボタンを押した分だけ
消えるということが起こります。
基礎ができていない上でこのような質問をして申し訳ないです。アドバイスいただけないでしょうか。
どうぞよろしくお願いいたします。
Last edited by kirari (2019-07-30 12:07:02)
Offline
質問の際には FileMaker のバージョンまで書かれることをオススメします。
1度のインポートで1ファイルから1テーブルに対して行われます。
インポートによってレコードを追加する場合はヘッダに指定した以外のすべての行が取り込まれます。
※FileMaker Pro 18 Advanced からはヘッダ行を指定できますから、
特定の行以降のみ取り込むということはできますが......
大雑把に Excel の各行はレコード、各列はフィールドに該当します。
この前提から行けばテーブルをA,B,Cと分ける必要はないことが殆どです。
なぜ3つのテーブルに分けているのでしょう(各テーブルに何を格納しているのですか?)
もし1行毎に各列に格納されている情報が異なるとしたら Excel の使い方にも問題があるといっても過言ではありません。
他のスレッドで他の方からも言われていると思いますが先走らず基礎を学びましょう。
仕様を理解できていないのか方法が思いつかないのかの切り分けくらいは必要です。
3回に分けてインポートして不要な行を削除する
インポート用のテーブルを用意して各行をそれぞれのテーブルにインポートする
など、方法はいろいろとあります。
いずれも基礎が分かっていれば具体的な手順を1〜10まで聞く必要もない単純な手順です。
Last edited by Moz (2019-07-30 12:56:44)
Offline
具体的にどのような運用なのかに大きく関わるのですが、
長期間の運用を考えると、
エクセルのデータは、常に1テーブルへインポート。
各テーブルからは、その区分をキーとしたリレーションを貼り、そのデータを参照する、
という運用がいいのでは。
運用の技術の学習も重要ですが、データベースの理論的な後ろ付けも重要です。これが分かっていれば、今回の質問はなかったはずです。
Offline
その空欄を削除すると、テーブルAの場合、テーブルB(テーブルC)のデータが削除ボタンを押した分だけ
消えるということが起こります。
もう混沌としてきましたね。
空欄を削除とは?不要な(空)レコードを削除するって意味ですか?
テーブルAからレコード削除するとテーブルBのレコードが消える、ということならば
テーブルAとB/Cは何らかのリレーションでつながっていませんか?
(ABC3つのテーブルの上位に親テーブルがあって、その相互のリレーション定義で
関連レコードの削除がオンになっているのでは?と予想)
だとすればExcelの取り込み方がどうのこうのという話ではなく、データベースの
構造の問題。
Last edited by koeda (2019-07-30 16:09:57)
Offline
アドバイスありがとうございます。
1)Excelデータ 1行ごとに番号を付与させておく。A⇨1 B⇨2 C⇨3 D⇨1 E⇨1
2)ファイルメーカーは1テーブルにしておく
3)またファイルメーカーのヘッダー部にプルダウンを設けて、1、2、3が選択できるようにする。
4)プルダウンにはスクリプトで次のようにしました。
>>>>>
ウインドウの固定
IF[ ファイル名 : 選択内容のソート = “1”]
レイアウト切り替え[表示画面;アニメション:なし]
対象レコードの絞り込み[処理⇨レコードの検索 条件⇨タスク::レコード番号:[!==1]]
Else If[ ファイル名 : 選択内容のソート = “2”]
レイアウト切り替え[表示画面;アニメション:なし]
対象レコードの絞り込み[処理⇨レコードの検索 条件⇨タスク::レコード番号:[!==2]]
Else If[ ファイル名 : 選択内容のソート = “3”]
レイアウト切り替え[表示画面;アニメション:なし]
対象レコードの絞り込み[処理⇨レコードの検索 条件⇨タスク::レコード番号:[!==3]]
End If
レコード/検索条件/ページへ移動[最初の]
>>>>>>
※スクリプトトリガの設定は「OnObjectSave」とする。
5)フィールドの設定
選択内容のソートのフィールドを設けました。
以上のことを行い、画面上にそれぞれのデータを出すことはできました。ありがとうございます。
自分の今の状況は正直わかっていない状況で質問をお聞きしていることを申し訳ないです。
厳しいコメントもありがとうございます。引き続き質問させていただこうと思いますのでよろしくお願いいたします。
Offline
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 561.39 KiB (Peak: 581.31 KiB) ]