web-dev-qa-db-ja.com

"#タイプ!"レポート計算フィールドのエラー

Accessに、WidthHeightAreaの3つのフィールドがあるレポートがあります。
WidthHeightはレポートがバインドされているテーブルから取得されますが、Areaは計算する必要があります(高さ*幅)。 AreaControl Source= [Height] * [Width]に設定しましたが、フォームを開くと、フィールドに#Type!が表示され、通常は説明的なアクセスエラーの方法で表示されます。 #!は、正確にGoogleを使用できないようにします...しかし、私は逸脱します。 #Type!が何を意味するのかわかりませんが、Accessは教えてくれません。

理解できません。バインドされたテーブルでは、HeightWidthは整数であり、どちらも表示されているレコードに入力されます(したがって、NULLの問題ではありません)。 Control Sourceを何か本当に単純 -=[Height]のように変更すると、代わりに#Error!が吐き出されます(ここでも、便利なIntel、Accessに感謝します。 dあなたなしで失われます)。 = 1でさえ#Error!を吐き出します。

Accessが私のコントロールソースを嫌う理由はありますか?

5
Kai

名前が衝突している可能性があります。つまり、Accessはfieldsではなくreport objectWidthおよびHeightメンバーを取得しています。 WidthおよびHeight

新しいクエリを作成し、その中の問題のあるフィールドの名前を変更するだけです。したがって、クエリデザイナを使用している場合:

  • 主キーとその他の問題のないフィールドを追加してから、WidthValue: WidthおよびHeightValue: Height追加の列として;
  • 最後に、レポートのレコードソースをテーブルではなくクエリに直接設定し、それに応じて計算された制御式を更新します。
6
Chris Rolliston

これはかなり単純な計算です。クエリを作成せず、そのクエリで計算を行い、代わりにレポートをクエリにバインドする理由はありますか?これを理解しようとして自分を殺す意味はありません。

実際、私が考えているので、HeightとWidthはコントロールのプロパティであるため、おそらく予約語です。たぶんそれらをHHeightとWWidthか何かに変更しますか?

3
Johnny Bones

Microsoftは、HeightとWidthを予約語としてリストしていませんが、フォームとレポートのサイズを決定するときに使用されます。

0
topdesk

アクセスがレポートを作成すると、クエリのフィールド名を使用して、レポートに関連するコントロールの名前が作成されます。その後、クエリフィールド名を使用すると、実際には同じ名前のレポートコントロールを参照します。そのため、解決策として、レポートフィールド名の名前をクエリフィールドとは異なる名前に変更するか、クエリフィールド名[query]。[field]を完全修飾して、アクセスにクエリフィールド名を使用するように強制します。

0
user8690222