みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FM12の初心者です。
「名称」フィールドの登録内容をA,B,Cの3個のフィールドに分ける方法をご指導願います。
「名称」フィールドの登録例です 「1234_ABC改10」
_と改をキーにして分ければ良いと思うのですが。
1234はAフィールドに
ABCはBフィールドに
10はCフィールドに
数字や英語は全角や半角が混じっている可能性があります。
改と改以降はない場合もあります。
Let(
LST=Substitute(名称;["_";¶];["改";¶])
;
GetValue(LST;番号) // ← 番号はフィールドA~C順に1~3を指定。
)
Offline
Let( LST=Substitute(名称;["_";¶];["改";¶]) ; GetValue(LST;番号) // ← 番号はフィールドA~C順に1~3を指定。 )
Aフィールドの計算式に上記式を設定し、番号には「1」を入力しました。
ところが
式のGetValueが黒くなり「この計算式では一覧を使用できません」
とエラー表示がでます。
そんなはず無いですけど。Hiroさんの式をコピペしてみたら?
GetValue ( Substitute(名前;["_";¶];["改";¶]) ; 1 )でも同じですけど。
Offline
そんなはず無いですけど。Hiroさんの式をコピペしてみたら?
GetValue ( Substitute(名前;["_";¶];["改";¶]) ; 1 )でも同じですけど。
有難うございます。
コピー&ペーストするとできました。
ところが名称に登録しているレコードで後ろに「.tif」があるが見つかりました。
Cフィールドにはそれが不要なので「10」のみでよいのですが。
「名称」フィールドの登録例です 「1234_ABC改10.tif」
余計なのが拡張子だけで他に「.」が無いのなら「.」から後ろを
計算で全部削除するといいのでは。
Offline
余計なのが拡張子だけで他に「.」が無いのなら「.」から後ろを
計算で全部削除するといいのでは。
.pdfも見つかりました。
「.」から後ろを削除するのか良いと思われます。
申し訳ありませんが、
GetValue ( Substitute(名前;["_";¶];["改";¶]) ; 1 )
に対し、どの様に変更すれば宜しいのでしょうか。
「.」
これもSubstituteで「¶」にしてもいいですね。
いずれにしても、
_
改
.
が他に出てこないのが条件です。
Offline
チポさんので
Cフィールド=GetValue ( Substitute(名前;["_";¶];["改";¶];[".";¶]) ;3 )
Offline
チポさんので
Cフィールド=GetValue ( Substitute(名前;["_";¶];["改";¶];[".";¶]) ;3 )
有難うございます。
解決しました。
FM12 の初心者です。
テーブルが「食材マスター」と「製品マスター」の二つがあります。
二つは「食材コード」でリレーションしています。
「製品マスター」入力時に「食材コード」を入力すると材料名A~Hまでを「食材マスター」からルックアップします。
相談したいのは「食材マスター」に「食材コード」が無い場合は「製品マスター」には予め決めた材料名を入力する方法です。
下記例では、予め決めた材料名は タイ・スズキ・サンマ にしています。
宜しくお願いします。
「食材マスター」
食材コード 材料名A 材料名B 材料名C
111 にんじん かぼちゃ りんご
222 なす にんじん 肉
「製品マスター」
食材コード 材料名A 材料名B 材料名C
111 にんじん かぼちゃ りんご
333 タイ スズキ サンマ
444 タイ スズキ サンマ
222 なす にんじん 肉
555 タイ スズキ サンマ
すみません。
新規問い合わせ案件を間違って登録しました。
削除いただけると助かります。
チポさんので
Cフィールド=GetValue ( Substitute(名前;["_";¶];["改";¶];[".";¶]) ;3 )
改とそれ以降の数字が無いのが出てきました。
例えば
「1234_ABC.tif」
です。
この場合のCフィールドは「空白」です。
何度もすみません。
そのうちピリオドが複数のが出てきたりするのでは。
とりあえず先頭のピリオドまでを使うように変更
名前の代わりにGetValue(Substitute(名前;".";¶);1)を入れる。
> 「1234_ABC.tif」
> です。
> この場合のCフィールドは「空白」です
空白ではなく
tif
が入力されるはずですが。
何が入力されればいいのですか?
Offline
> 「1234_ABC.tif」
> です。
> この場合のCフィールドは「空白」です
空白ではなく
tif
が入力されるはずですが。何が入力されればいいのですか?
現状はtifが入り困っています。
改が無い場合は
Cフィールドには「空白」にしたいのです。
ああ、読み違えたか、
tifが入力されるが、空白にしたい。
ですよね。
ならば、
tatituteさんのがいいですね。
もっとイレギュラーが出てくるのか?
Offline
ああ、読み違えたか、
tifが入力されるが、空白にしたい。
ですよね。ならば、
tatituteさんのがいいですね。もっとイレギュラーが出てくるのか?
現状は数人で入力します。
イレギュラーはもう無いと思うのですが、ルール化が必要ですね。
この様な式になるのでしょうか。
Cフィールド=GetValue ( Substitute(GetValue(Substitute(名前;".";¶);1);["_";¶];["改";¶];[".";¶]) ;3 )
「名称」フィールド
「1234_ABC改10.tif」の場合は
Cフィールド「10」で
「1234_ABC.tif」の場合は
Cフィールド「空白」にしたいのですが。
それでいいけど、ピリオドは存在しなくなるので
;[".";¶]
が不要。
それでいいけど、ピリオドは存在しなくなるので
;[".";¶]
が不要。
「1234_ABC改10.tif」の場合は
Cフィールド「10」ではなく「空白」になってしまいます。
改がある場合は「10」が必要です。
書いてるとおりで10になりますよ。
計算式かデータを間違えてるのでは。
Offline
すみません。
私の勘違いでした。
評価用にフィールドの複製を沢山作成し、見間違いしました。
ところで「データベースの管理」の「タイプ」でテキスト又は計算のどちらを選択しても表示がでます。
どちらでも宜しいのでしょうか。
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 560.86 KiB (Peak: 581.4 KiB) ]