2011-01-13 7 views
0

私は、リストされたプロジェクトに関連付けられた金額がない場合、フィールドの1つが$ 0の数値を返すアクセス2007レポートを持っています。そうでない場合は、 $ 0。2007テキスト文字列を返すelse文にアクセス

私がしたいのは、フィールド値= $ 0の場合、 "TBD"(引用符なし)を読んで、ドル金額を返すようにレポートを作成することです。

2つの部分からなる質問 - まず、どのようなサブクラスでコードを書くのですか?

そして、if else文を書くにはどうすればいいですか?

ここまでは何もせず、何もしません(エラーはありません。ドルの金額がない場合は$ 0が表示されたレポートが返されます)。

Private Sub Cost_AfterUpdate() 
If ([YearofExpenditureCost] >= 0) Then 
Me.Cost = "TBD" 
Else: Me.Cost = [YearofExpenditureCost] 
End If 

[Cost]は、[YearofExpenditureCost]のControlSource値を含むテキストボックスの名前です。

ご提供いただけるアドバイスをいただき、ありがとうございます。

答えて

1

レポート上のテキストボックスのコントロールソースとして即時Ifを使用できます。

=IIF(YearofExpenditureCost=0, "TBD",YearofExpenditureCost) 
+0

これを試して、#Nameを返しますか?レポートのすべてのフィールドに適用されます。レコードソース内の他のフィールドは、同じ名前ではありません。 – myClone

+0

スペースやスペルミスなどの可能性があります。ここでは、エラーを追跡するためのいくつかの提案です:http://office.microsoft.com/en-us/access-help/i-see-name-displayed-in-a-control-HA001181447.aspx – Fionnuala

+0

いいえ、私は4倍構文エラーをチェックし、それでも私には同じことが与えられます。 =([YearofExpenditureCost] = 0、 "TBD"、[YearofExpenditureCost]) – myClone

1

形式のフォーマットプロパティが(アクセスのヘルプから)4つの部分があります:あなたの場合、このように

First The format for positive numbers. 
    Second The format for negative numbers. 
    Third The format for zero values. 
    Fourth The format for Null values. 

をtestboxは、レコード内のフィールドのいずれか以外の名前があることを確認してくださいformatプロパティを;;"TBD";に設定すると、値が表示されるはずです。ゼロの場合は「TDB」 - レポートにコントロールのプロパティを設定するだけで、コードは必要ありません。

+0

これは、コントロールソースプロパティまたは別の場所に書き込まれますか?また、= iif()ステートメントは関係ありませんか?私はちょうどコントロールソースを= ;; "TBD"に設定しています。 「TBD」;それは動作しませんでした。 – myClone

+0

これは、コントロールの.Formatプロパティで、これは最初の文で述べたものです。 –

関連する問題