みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
ページ: 1
お世話になります。超初心者です。
タイトル 国 ジャンル 番号
100 23 a 100-23-a001
100 11 a 100-11-a001
201 54 b 201-54-b001
156 54 c 156-54-c001
100 23 a 100-23-a002
201 54 b 201-54-b002
というように3桁の枝番付きの番号をつけたいです。
タイトル、国、ジャンルはそれぞれテーブルを作成し、ルックアップでコードを抜き出した結果となっています。
SerialIncrementなどひととおり調べたのですが、うまくいかず、、
なお、この番号はレコード固有のものとしたいです。
(前のレコードが削除された場合、その番号は採用しない)
何度も何度も投稿された質問かと思うのですが、過去レスにあるサンプルデータがダウンロードできないなどと、なかなか答えに辿り着けないまま今に至っています。
どなたかご教示いただけませんでしょうか。。
何卒よろしくお願いいたします。
タイトル、国、ジャンルで自己リレーションして降順ソートした番号フィールドを参照して計算値自動入力すればいいのでは。
Let ( b = リレーション先テーブル::番号 ;
SerialIncrement ( Case ( b = "" ; タイトル & "-" & 国 & "-" & ジャンル & "000" ; b ) ; 1 )
)
入力が3フィールドそろうまで計算しないように細工しないとだめかな。既存値を置き換えるとか。
間違えて3フィールドのどれかを変更してしまった場合とかの対処が必要かな?
himadanee様、Shin様 ありがとうございます。
himadanee様のご助言により番号が作成できました。
また、Shin様のおっしゃるように重複しない連番の作成が難しいようであれば、レコード削除しないよう、人間の方で工夫したいと思います。(そもそも滅多にないことではあるので)
ただ、ご想像のとおり、
入力が3フィールドそろうまで計算しないように細工しないとだめかな。既存値を置き換えるとか。
間違えて3フィールドのどれかを変更してしまった場合とかの対処が必要かな?
「3フィールドのどれかを変更してしまった場合」に、枝番がどんどんカウントされていってしまいます。。
そもそも、既存のレコードに番号をつけていきたいのですが、フィールドが埋まっていない、または正しく選択されていないレコードがほぼ全てです。
なので、すべてのフィールドが確定してから番号を決定することは可能でしょうか。
ご教示いただけますと幸いです。。
宜しくお願いいたします。
Case ( Count ( タイトル ; 国 ; ジャンル ) = 3 ; 計算式 )
とすれば、3つとも入るまでは空のままになります。
himadanee様
ありがとうございます。早速導入いたしました。
Shin様
ありがとうございます。
3フィールドのいずれかが変更されれば、新しいレコードとして扱わないといけないのでは。(内容はレコードをコピーして移行)
その意味で、シリアル番号を管理する別テーブルがあると、比較的簡単に管理できますよ。これでしたら、管理テーブルとのリレーションキーを書き換えるだけでいいです。
お頼みしてばかりで申し訳ありません。具体的なやり方をお教えいただけませんでしょうか。。
色々と考えてはみたのですが結局混乱してしまいました。
オフライン
Shin様
ご親切にありがとうございます!!大変勉強になりました。
ちなみに、、修正時のダイアログにある各項目をドロップダウンにすることは可能でしょうか?
元々の入力も値一覧でドロップダウンで選択するようにしています。
Shin様
お礼が遅くなりまして申し訳ありません。
ご助言ありがとうございます。
カードがよさそうです。もう少し勉強してみます。
大変助かりました!
ページ: 1