こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

accessで年度の表示をさせたい

いつもお世話になります。過去ログ参照し、いろいろやってみましたが、どうしても解決できないのでよろしくお願いします。
商品の売上の管理をするDBをつくろうとしています。
テーブルに会社マスタとして、会社名と会社IDが、商品マスタには商品名と商品IDが、伝票には伝票番号、会社番号、商品番号、日付、年度のフィールドが作ってあります。
伝票を入力するためのフォームとクエリも作成しています。
伝票を入力するフォームに年度というテキストボックスを作成し、コントロールソースに=IIf(Month([txt])<4,Format(DateAdd("yyyy",-1,[日付のテキストボックス名]),"gggee" & "年度"),Format([日付のテキストボックス名],"gggee" & "年度"))
を入力し、日付が決定されると年度を表示されるようにしたかったわけです。
本来、日付のフィールドはデータ型に、「日付/時刻型」を選んでおり、日付カレンダーの表示により、目的の日にちを選択することでyyyy/mm/ddの表示をさせているものです。定型入力の欄は空白になっています。
ところが、フォームをデザインビューで開くと年度の欄に「#Name?」
の表示が出てしまいます。基本的なことなのでしょうが、わかりやすく説明していただけないでしょうか?
あと、~月度のような考え方はどのようにしたらよいでしょう?

投稿日時 - 2009-10-20 14:36:57

QNo.5382148

すぐに回答ほしいです

質問者が選んだベストアンサー

年度が連結フィールドであれば、コントロールソース名はフォームの
クエリ上のフィールドでなければなりません。指定したような名前の
フィールドが無いためエラーになります。
よって、単に「年度」としなければなりません。
「日付のテキストボックス」の更新後処理において、入力値から
「年度」のValueを更新する処理を記述すべきです。
【一例】
Private Sub 日付のテキストボックス_AfterUpdate()
  Dim 日付
  日付 = Me.日付のテキストボックス.Value
  If IsNull(日付)Then
    Me.年度.Value = Null
  Else
    Me.年度.Value = Year(DateAdd("m", -4, 日付))
  End If
End Sub

>~月度のような考え方はどのようにしたらよいでしょう
意味が良く分かりません。単に日付の月の部分でしょうか?

投稿日時 - 2009-10-20 15:56:07

お礼

自分で理解するのに時間がかかりましたが、ご親切にありがとうございました。

投稿日時 - 2009-10-28 12:44:18

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問