Accessに、Width
、Height
、Area
の3つのフィールドがあるレポートがあります。Width
とHeight
はレポートがバインドされているテーブルから取得されますが、Area
は計算する必要があります(高さ*幅)。 Area
のControl Source
を= [Height] * [Width]
に設定しましたが、フォームを開くと、フィールドに#Type!
が表示され、通常は説明的なアクセスエラーの方法で表示されます。 #
と!
は、正確にGoogleを使用できないようにします...しかし、私は逸脱します。 #Type!
が何を意味するのかわかりませんが、Accessは教えてくれません。
理解できません。バインドされたテーブルでは、Height
とWidth
は整数であり、どちらも表示されているレコードに入力されます(したがって、NULL
の問題ではありません)。 Control Source
を何か本当に単純 -=[Height]
のように変更すると、代わりに#Error!
が吐き出されます(ここでも、便利なIntel、Accessに感謝します。 dあなたなしで失われます)。 = 1
でさえ#Error!
を吐き出します。
Accessが私のコントロールソースを嫌う理由はありますか?
名前が衝突している可能性があります。つまり、Accessはfieldsではなくreport objectのWidth
およびHeight
メンバーを取得しています。 Width
およびHeight
。
新しいクエリを作成し、その中の問題のあるフィールドの名前を変更するだけです。したがって、クエリデザイナを使用している場合:
WidthValue: Width
およびHeightValue: Height
追加の列として;これはかなり単純な計算です。クエリを作成せず、そのクエリで計算を行い、代わりにレポートをクエリにバインドする理由はありますか?これを理解しようとして自分を殺す意味はありません。
実際、私が考えているので、HeightとWidthはコントロールのプロパティであるため、おそらく予約語です。たぶんそれらをHHeightとWWidthか何かに変更しますか?
Microsoftは、HeightとWidthを予約語としてリストしていませんが、フォームとレポートのサイズを決定するときに使用されます。
アクセスがレポートを作成すると、クエリのフィールド名を使用して、レポートに関連するコントロールの名前が作成されます。その後、クエリフィールド名を使用すると、実際には同じ名前のレポートコントロールを参照します。そのため、解決策として、レポートフィールド名の名前をクエリフィールドとは異なる名前に変更するか、クエリフィールド名[query]。[field]を完全修飾して、アクセスにクエリフィールド名を使用するように強制します。