会計年度に基づいて自動的に進むレコード番号を作成したいのですが。 2016001、2016002など
次の式に基づいて、[Projects]テーブルに[FiscalYr]フィールド(計算データ型)が既にあります。
IIf(Month([EntryDate])>=10,Year([EntryDate])+1,Year([EntryDate])).
[EntryDate]フィールドはDate / Timeフィールドで、デフォルト値はDate()です。これは私が望むように働いています。
その[FiscalYr]番号を取得して、001から始まり3つ前のレコードに基づいて1ずつ増加する3桁の番号の前に付けることができます。新しい年度ごとに?私たちの会計年度は10月1日に始まり、9月30日に終わります。
テーブル[プロジェクト]とフォーム[プロジェクトフォーム]のどちらに情報が入力されていても番号を生成したいのですが。情報がフォームに入力された場合にのみ生成されるのではありません。私は、変更前マクロを使用するのが最善の方法であることを示唆するいくつかの投稿をオンラインで見ました。日付の問題が整理された(私は思う)。
既存の[FiscalYr]フィールドを操作するよりも簡単であれば、[EntryDate]からFiscal Yearを作成し、同時に数値を作成するマクロを使用しても問題ありません。私はただのAccessユーザーなので、ちょっとしたことを言っているのであれば申し訳ありません。危険であることを知っていると思います。
どうもありがとう、 アンドレア
更新2015/12/9:
私はマクロの考えをあきらめました。
Scottgemのブログのヒントを使う( https://scottgem.wordpress.com/2009/11/25/sequential-numbering/ )、連番のシステムを稼働させることはできましたが、新しい会計年度の初めに番号を1にリセットすることにはまだ苦労しています。私の会計年度の値をどのように生成しているのか、それともまったく別の問題なのかが問題ではないかどうかわかりません。
これが私が持っているものです:
テーブル名:プロジェクト
プロジェクト内で、私はこの問題に関連して以下の分野を持っています:
- ProjectNo:number - 長整数
- シーケンス:数値 - 長整数
- EntryFiscalYr:算出 - 長整数。式は次のようになります。
IIf(Month([EntryDate])>=10,Year([EntryDate])+1,Year([EntryDate]))
- EntryDate:日付/時刻。デフォルト値:Date()
フォーム名:プロジェクトフォーム
私のプロジェクトフォームには、以下のコントロールがあります。
- シーケンス:テキストボックス、コントロールソースはプロジェクトテーブルのシーケンスフィールド、非表示に設定
CreateProjNo:ボタン、クリックしたときのイベント:
Private Sub CreateProjNo_Click() Me.Sequence = Nz(DMax("[Sequence]", "Projects"), 0) + 1 DoCmd.RunCommand acCmdSaveRecord End Sub
ProjectNo:テキストボックス、データ管理元:
=[EntryFiscalYr] & Format([Sequence],"000")
2016001、2016002などのように表示されます。
Scottgemのブログで、EntryFiscalYrフィールドをDMaxステートメントに追加して、現在の会計年度でもシーケンス番号が増え続けるのか、新しい会計年度で最初からやり直すのかを確認するためにさまざまなコードの反復を試みましたが作業しています。
私が試してみました:
Me.Sequence = Nz(DMax(“[Sequence]”, ”Projects”,”[EntryFiscalYr]) = “ &(Me.[EntryFiscalYr])),0)+1
Me.Sequence = Nz(DMax(“[Sequence]”, ”Projects”, ” [EntryFiscalYr] = ‘“ & Me.[EntryFiscalYr] & “’”),0)+1
私も試してみました Me.[txtEntryFiscalYr]
の代わりに Me.[EntryFiscalYr]
。これらの試みのどれもうまくいきませんでした。
私は自分の問題が各レコードに対してEntryFiscalYrがどのように生成しているかによると思うが、これにどう対処するかは私には分からない。 EntryDateで生成された日付で試してみましたが、それは暦年で素晴らしい仕事をしていますが、会計年度に基づいてこれを取得し、新しい会計年度の初めに再設定することが重要です。
また、プロジェクトフォームで生成されたProjectNoがProjectsテーブルのProjectNoフィールドに更新されていません。ただし、これがポイントだと私は理解しています。これは正しいです?
これを会計年度に合わせて正しく機能させるための支援は大歓迎です。
ありがとうございます。