みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FM初心者です。
Windows10 FM8.5proです。
日付フィールドが有り、その月単位で通し番号
振るにはどの様にひたらいいかご教授お願いし
ます。
1件目のレコードが、平成30年8月13日というフィールドけざあり
通し番号フィールドに8-1とされ、
次の平成30年8月13日が8-2とされる
様なフィールドを作成したいです。
出来れば詳しくお願い致します。
レコードの削除がなく、レコードの作成順で通し番号が打たれればいいのでしたら、
全体にシリアル番号を与えておきます。自動入力を設定したフィールドでいいです。
日付から、年月のフィールドを作ります。例えば、Year ( 日付 ) * 12 + Month ( 日付 )
年月のフィールドで自己リレーションをします。さらに、シリアル番号で自分以下、というリレーションの条件を加えます。
自己リレーション先のレコード数を、Count() を使って求めます。これば、年月ごとの通し番号になります。
これを加工して、月-通し番号 にすればいいでしょう。
Offline
Shin様有難うございます。
私のレベルが低すぎ、以下の操作方法がわかりません。(すいません)
[日付から、年月のフィールドを作ります。例えば、Year ( 日付 ) * 12 + Month ( 日付 )
年月のフィールドで自己リレーションをします。さらに、シリアル番号で自分以下、というリレーションの条件を加えます。
自己リレーション先のレコード数を、Count() を使って求めます。これば、年月ごとの通し番号になります。
これを加工して、月-通し番号 にすればいいでしょう。]
ほかの似たような質問も見たのですが、わからなく。
大変あつかましいのですが、もーっと細かく工程ご教授お願いします。
お恥ずかしいお願いですが、よろしくお願いします。
SQL計算式だけで自動取得する、非常に簡潔な提案です。
「レコードID」計算フィールドだけ追加する。
式: Get(レコード ID)、タイプ:数字、索引:保存
目的の「月次通し番号」計算フィールドを設定する。
式: ※下式、タイプ:テキスト、索引:自動
以上で設定完了、
新規レコードで日付にデータ入力して、動作確認する。
ーーーーーーーーーーーーーーーー
※ 計算式
ーーーーーーーーーーーーーーーー
Month(日付)
&
"-"
&
ExecuteSQL(
"
SELECT COUNT(""レコードID"")
FROM ""テーブル""
WHERE ""日付"">=? AND ""日付""<? AND ""レコードID""<=?
"
; ""
; ""
; Date(Month(日付);1;Year(日付))
; Date(Month(日付)+1;1;Year(日付))
; レコードID
)
ココで、
・日付 → 日付フィールド(索引:保存 設定のこと)
・""テーブル""→ ""自分のテーブル名""と入れ替えること。
・その他の ""レコードID""、""日付""、など ”” 囲み文字列はそのままで良い。
Last edited by Hiro (2018-08-15 01:07:20)
Offline
Hiro様 ありがとうございます。
早速試しているのですが、
『レコードID』のフィールドを作り、Get(レコードID)にすると、「この引数はGer関数が無効な引数です」と表示されます。
入りで躓いてしまい、本当低レベルで申し訳ありません。。
再度ご教授お願いします。
横から失礼。
Get ( レコード ID ) ですね。
分かりづらいのですが「レコード」と「ID」の間に半角スペースが入ります。
Offline
FM8.5
だからExecuteSQLは使えませんよ。
また、
取得関数を手打ち入力するのは間違いの元ですよ。
関数の一覧から選択しましょう。
Shinさんの方法の何がわかりません?
Offline
サンプルを見て学習してください。
https://www.dropbox.com/s/l12nz0up98yij … 7.zip?dl=0
Offline
Moz様
ポチ様
ありがとうございます。
Shin様 ありがとうございます。
サンプル添付頂き感謝いたします。
早速試します。
また結果ご報告します。
Shin様
サンプル通りで完成することが出来ました。
大変ありがとうございました。
Pages: 1
[ Generated in 0.004 seconds, 8 queries executed - Memory usage: 522.06 KiB (Peak: 526.97 KiB) ]