2017-01-26 20 views
0

私はMS Accessを初めて使用しています。私はデータをExcelから取り出し、MS Accessのフォーム出力に表示するレポートを作成しました。私は彼が開こうとしたときにユーザーがダイアログボックスに値を入力する MS Access 2016レポートの入力ボックス

enter image description here

1.私は図のように「PO番号」を追加プロパティ - >コントロールソース内のテキストボックスを追加しました下の図2のようにレポートします。ダイアログボックスのデフォルト値を "LDXXXX"という形式で追加する必要があります。ここでXXXXは会計年度です。私は以下のように会計年度を生成するロジックを持っています:

If month <= 8 then 
    Current year 
else 
    current year + 1 

私はどこでそれを実装するのか分かりません。ダイアログボックスは、ユーザーがフォームを開こうとすると、既定値として上記の形式を持つ必要があり、図1のテキストボックスに入力する必要があります。テキストをクリックして移動するとアクセスできるイベントは3つあります「イベントを構築する」 - マクロ、コード、または式ビルダーですが、これをダイアログボックスに実装する方法は?

enter image description here

答えて

1

PO#はソースデータに存在しない場合、それはおそらくコントロールソースとして参照することはできません。ユーザーがLDXXXXのデフォルトを変更する必要があるか、または値を入力するためにこれを実装しましたか?後者の場合、あなたはおそらくちょうどtexboxの制御源として、このようなものを使用することができます

="LD" & IIf(Month(Date())<8,Year(Date()),Year(Date())+1) 

、ユーザーがそれを変更する必要がある場合、「PO番号」と呼ばtxtboxを維持し、負荷にコードを追加

レポートのイベント。

Private Sub Report_Load() 
Me.[PO#] = InputBox("Fiscal Year:", "Fiscal year", "LD" & IIf(Month(Date) < 8, Year(Date), Year(Date) + 1)) 
End Sub 
+0

あなたが提供したことは、ユーザーに入力を許可するオプションがないように自動化することです。これは正しいですが、100%ではありません。 "LD2017"(現在の会計年度を考慮)はデフォルトで存在するはずですが、ユーザーは "CP2017"または "TC2017"に変更する可能性がありますので、図2ではデフォルトで "LD2017"が入力ボックスに表示されます。ユーザーは変更してもしなくてもかまいませんので、変更しない場合は「LD2017」に設定されます。あるいはその逆も同様です。実装する方法はありますか?ダイアログボックスは重要です。 – shubhraj

+1

レポートのロードイベントで入力ボックスを使用できます。 Private Sub Report_Load() Me.PO_ = InputBox( "会計年度:"、 "会計年度"、 "LD"&IIf(月(日))は、テキストボックスに「PO# <8、年(日付)、年(日付)+1)) エンドサブ – RyanL

+0

はい、うまくいきました。これでユーザーはそれを使用できます。 – shubhraj

関連する問題