みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつも大変お世話になっております。
ファイルメーカー バージョン19 を使用しています。
イベント申込の取りまとめが以下のようなCSVであります。
参加者氏名・ふりがなは20名まであります。
【申込番号,代表者氏名,代表者ふりがな,郵便番号,住所,参加者1氏名,参加者1ふりがな,参加者2氏名,参加者2ふりがな,参加者3氏名,参加者3ふりがな...】
こちらを以下のように並べ替えたリストにしたいです。
ファイルメーカーで管理しますが、最終的にエクセルに書き出しします。
[申込番号][氏名][ふりがな]
A0001,代表者,ふりがな
A0001,参加者 1,ふりがな
A0001,参加者 2,ふりがな
A0001,参加者 3,ふりがな
そこで、申込ごとのレコードを作り、申込番号のリレーションで「参加者一覧テーブル」をポータルにて表示させようと考えました。
「参加者一覧テーブル」にレコードを作る際、
CSV→FM
A0001→申込番号
参加者1→氏名
参加者1ふりがな→ふりがな
と、CSVの列を1つずつ選んで20回インポートをすることになるため
これを1度で処理するなど良い方法はございますでしょうか。
どうぞよろしくお願い申し上げます。
レコード数を減らす方はインポート時の自動計算などでできる場合もありますが、
増やすのはスクリプトを作らないと無理では。
フィールド名が規則的なのでスクリプトは作りやすそうですが...
中間テーブルを作り、そこにCSV をそのままインポートします。そのテーブルに、2個の計算フィールド(繰り返し)
Let (
[
rpt = Get ( 計算式繰り返し位置番号 ) - 1 ;
fld = Case ( rpt ; "参加者" & rpt ; "代表者" ) & "氏名[1]"
] ;
GetField ( fld )
)
Let (
[
rpt = Get ( 計算式繰り返し位置番号 ) - 1 ;
fld = Case ( rpt ; "参加者" & rpt ; "代表者" ) & "ふりがな[1]"
] ;
GetField ( fld )
)
をそれぞれに設定しておきます。
それを別テーブルの、申込番号,氏名,ふりがな にインポートするといいです。繰り返しフィールドを別レコードに分解するオプションをつけておきます。
運用についてですが、エクセルに書き戻す必要はなぜですか。
上で作った中間テーブルが、イベント1件ごとのテーブルになり、そこからイベント番号でリレーションを張れば、参加者明細テーブルとなり、ポータルで一覧できるようになります。非常に柔軟な運用が可能になります。
再考されてはいかがでしょう。
Last edited by Shin (2023-12-05 14:36:27)
Offline
ご回答いただき、ありがとうございます。
繰り返しフィールドにして、分解するインポートでできました!
繰り返しフィールドの使い方、勉強になります。
最終的にエクセルに戻すのは、ファイルメーカーが使えるパソコンが限られているためです。
これ以上変更はないことを確認して書き出すなど、データの管理に気をつけようと思います。
こちらは解決とさせていただきます。
本当にありがとうございました!
Pages: 1
[ Generated in 0.007 seconds, 7 queries executed - Memory usage: 508.98 KiB (Peak: 515.73 KiB) ]