アクセス365 VBA即時windows 番号の乗算に関する質問.
こんにちは、
数字を乗じるときにあなたの誰かがエラーを発生させましたか?またはそれは正常ですか?
追加、差し引き、分割が機能していますが乗算されていません.
即時のwindows で
1995年* 100* >>オーバーフローエラー
1995年* 10 >>エラー
100を超えるものはエラーをスローします. (実際には1995* 17* 17はエラーを投げます)
返信リスト(回答:6)
VBAはダム、とてもダムであり、それは仮定をします、この場合は間違っていることが間違っていて、それを誤って変更したコースを変更することができない!
VBAは、1995年の1つの要素を分析し、それが整数であると判断し、次に答えがこれに基づく整数になることを決定します. なぜ、私は決して理解したことがない! しかし、それは物事がある方法です. 整数は-32,768から32,767の範囲の値を保持するため(
)1995年* 100= 199500はその限界を超えているため、誤りを超えています. この修正は、あなたの要素が長く、10進数、...最後の結果を処理できるものが大きいと仮定することを強制することです.
最も簡単で迅速な回避策は、あなたがする必要があるときはいつでも、単純な数学でさえ、単に10進数を追加します. これにより、アクセスを要素に扱い、その結果、Double(-1.797 x 10308から1.797 x 10308、最大15の有効数字)としてもたらします. そのように基本的に、単にする:
?1995.0* 100
あなたはそのようなものをすることができます:
? CLNG(1995)* 100
? CCUR(1995)* 100
? CDBL(1995)* 100
...
あなたはアイデアを得ます.
応答4# ->にスキップ2 #AccessVええもうまくいきます.データ型の組み込み関数を宣言すると、kguyの提案が機能していますが制限があります.
素晴らしいフィードバックダニエル.情報をありがとうございました.
結果を保存しようとしている変数のように見えますが、計算結果が成り立つ数字を保持できません.
これが低い数の掛け合いの理由であるが、大きくはない.
私の仮定は、これが整数の代わりに長く変更された場合にのみ、32767と-32768の間だけを保持できる整数変数であるということです.これは問題を解決します.
こんにちは.今すぐコンピュータの前にはありませんが、あなたがこれを試してみるとどうなりますか?
1995年&* 100
それはうまくいきますか?
応答3# ->にスキップ1 #theDBguこんにちは.更新していただきありがとうございます.各データ型の範囲制限があります.どちらがあなたのニーズに最も適しているのかを知る必要があります.
このウェブサイトから次のものが取られました. https://support.microsoft.com/ja-jp/office/introduction-to-data-types-and-field-properties-30ad644f-946c-442e-8bd2-be067361987c#
byte-0から255の範囲の整数に使用されます.ストレージ要件は1バイトです.
整数--32,768から32,767の範囲の整数に使用します.ストレージ要件は2バイトです.
長整数--2,147,483,648から2,147,483,647の範囲の整数に使用します.ストレージ要件は4バイトです.
ヒント:intermentを使用すると、別のtableのAutoNumber主キーフィールドに関連する外部キーを作成すると、
SINGLE-3.4 x 1038から3.4 x 1038までの数値浮動小数点値と最大7桁の桁数に使用します.ストレージ要件は4バイトです.
DOUBLE2倍の浮動小数点値は、-1.797 x 10308から1.797 x 10308まで、最大15桁までの数値浮動小数点値を使用してください.ストレージ要件は8バイトです.
レプリケーションIDレプリケーションに必要なグローバルに一意の識別子を格納するために使用します.ストレージ要件は16バイトです.レプリケーションは.ACCDBファイル形式を使用してサポートされていません.
DECIMAL-9.999...X 1027から9.999...X 1027.ストレージ要件は12バイトです.