みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
waderさん
非保存でした。
「計算結果を保存せず必要時に計算する」チェックを外したところ、データベース更新が終わらなくなってしまいました(汗)
Shinさん
インポートは頻繁に行うつもりでおりました。
まさかこんなに時間がかかるとは。
仰る通り少し時間をかけて運用の考え直しが必要そうです。
いろいろとアドバイスありがとうございました。
計算式の繰り返しフィールドを作り、それらのフィールドのデータを格納。
テーブルBでそのレコードをインポートし、繰り返しはレコードへ分解すると良いでしょう。計算フィールドは、
Extend ( GetField ( "フィールド" & ( Get ( 計算式繰り返し位置番号 ) + 5 ) )
でいいでしょう。データに改行が含まれ無いのでしたら、
GetValue ( List ( フィールド6[1] ; フィールド7[1] ; フィールド8[1] ; フィールド9[1] ; フィールド10[1] ) ; Get ( 計算式繰り返し位置番号 ) )
の方が一般性があっていいでしょう。
繰り返しフィールドの計算は、後者を使っていましたが、前者へ変えたところ少しは速度がアップしました。
フィールド6~10も計算フィールドなことが重くなる原因でしょうか。
取り込む側 とは、テーブルBの方でしょうか?
テーブルBのフィールドはすべてテキストで設定しています。
新たなファイルを作ってインポートしてみましたが変わりませんでした。
テーブルA側の方に原因がありますよね・・・。わからなくて困りました。。
Shinさん
繰り返しフィールドを作って、インポートしてみました。
やりたいことはできました!
しかし時間がかかってしまいます。
1000レコード分の繰り返しフィールドのインポートで10分程度。
こんなものでしょうか?
Shinさん
より詳しい説明ありがとうございます!
場合によってのいろいろな方法やメリットを教えていただいてとても勉強になります。
自分なりに最初にやってみた方法は、リレーションでレコードを作る方法で、
フィールド5個で1,000フィールド程度ならあまり気にならないスピードでしたが、
12個のフィールドを5,000レコードで実行したところ1時間以上かかりました。。。
スクリプトにも問題はあったと思うのですが(汗)
教えていただいたことで改善していけそうです。
ありがとうございます。
いろいろなアドバイスありがとうございます。
Travellerさん
テーブルAのフィールド数は5個で質問しましたが、実際はもっと増えます。(現状でも12個)
さらにテーブルAのレコード数は何千とあるので、インポートを繰り返すとかなり時間がかかりそうです。
Shinさん
繰り返しフィールドですね!
なんとなく繰り返しフィールドを使ってできるのではないかと思っていましたが、
どう使えばいいのかよくわかりませんでした・・・。試してみます。
通りすがりさん
最初の質問で教えていただいたList関数を使うということですね?
>取り出した値を引数にしたら
のところをもう少し詳しく教えていただきたいです。
Travellerさん
ありがとうございます。
説明が下手で申し訳ないのですが、
別テーブル(テーブルBとします)へのインポートは下記のようにしたいのです。
テーブルA → テーブルB
1レコード目 フィールド6 1レコード目 フィールド1
1レコード目 フィールド7 2レコード目 フィールド1
1レコード目 フィールド8 3レコード目 フィールド1
1レコード目 フィールド9(空欄)
1レコード目 フィールド10(空欄)
2レコード目 フィールド6 4レコード目 フィールド1
2レコード目 フィールド7 5レコード目 フィールド1
2レコード目 フィールド8 6レコード目 フィールド1
2レコード目 フィールド9 7レコード目 フィールド1
2レコード目 フィールド10(空欄)
いつもお世話になっております。
先日下記トピックで質問いたしました。
https://fm-aid.com/bbs2/viewtopic.php?id=830
今回、フィールド6~10の空欄ではないフィールドを、
別のテーブルへそれぞれ1レコードとして取込みするにはどうしたらよいでしょうか。
環境はFMpro12 win7です。
Hiroさん
わかりました。ありがとうございます!
ゆいさん
他のテーブルのフィールドは計算ではありません。
今までエクセルで管理していたのをインポートしたデータです。
車の重複は無いとも限りませんが、重複することはごく稀なのであまり気にしなくてもよいレベルです。
Hiroさん
ありがとうございます!
複雑でまだ理解できていませんが、じっくり試したいと思います。
ちなみに・・・
フィールドA は計算フィールドで、テキスト内容は他のテーブルの複数フィールドのテキストを結合しています。
その各フィールド内で [車メーカー名] は重複しません。
最初の例でいうと、下記のようになります。
ほかのテーブルのフィールドB の内容
[トヨタ]アクア/プリウス[ニッサン]ノート/キューブ/シルビア[ホンダ]フィット/ステップワゴン
ほかのテーブルのフィールドC の内容
[トヨタ]アルファード/エスティマ[ホンダ]CR-V
この状態から計算するほうが簡単に済んだりするのでしょうか。
FM pro12、win7 です。
フィールドAに次のようなテキストが入っています。
[トヨタ]アクア/プリウス[ニッサン]ノート/キューブ/シルビア[ホンダ]フィット/ステップワゴン[トヨタ]アルファード/エスティマ[ホンダ]CR-V
これを、同じ車メーカー毎にまとめて下記のようにしたいです。
[トヨタ]アクア/プリウス/アルファード/エスティマ[ニッサン]ノート/キューブ/シルビア[ホンダ]フィット/ステップワゴン/CR-V
フィールドAには同じ車メーカーが3個や4個ある場合もあります。
車種名はフィールドA内で重複することはありません。
よい方法が思い浮かびません。
ご教示お願いいたします。
Hiroさん
ありがとうございます。
できました!
教えていただいた内容にある関数の知識を深めて、今後に活かそうと思います。
どうもありがとうございました。
はじめまして。
FMpro12を使っています。
フィールド1
フィールド2
フィールド3
フィールド4
フィールド5
があり、レコードによって下記のような状態になります。
例1. 全フィールドにデータが入っている
例2. フィールド1、3だけ入っている
例3. フィールド2、3、5だけ入っている
これらのレコードを、別のフィールド6~10に内容をコピーしたいのですが、
空欄のフィールドを除いてフィールド6から順番にデータを入れたいです。
例2の場合、
フィールド6 ←フィールド1の内容が入る
フィールド7 ←フィールド3の内容が入る
フィールド8 空欄
フィールド9 空欄
フィールド10 空欄
どうか力を貸してください。よろしくお願いします。
Pages: 1
[ Generated in 0.009 seconds, 7 queries executed - Memory usage: 628.94 KiB (Peak: 650.34 KiB) ]