वीबीए में एक कॉन्स की गणना करते समय ओवरफ़्लो

यह घोषणा वीबीए में एक ओवरफ्लो का कारण बनती है:

Const OVERFLOWS As Long = 10 * 60 * 60

जबकि मूल्य को सीधे सेट करना ठीक है:

Const COMPILES_OK As Long = 36000

आप लंबे समय तक शाब्दिक पूर्णांक का इलाज करने के लिए वीबीए को कैसे राजी करते हैं?

धन्यवाद

0

3 उत्तर

Add the long suffix & to at least one number:

Const OVERFLOWS As Long = 10& * 60 * 60

ध्यान दें कि लंबा फ़ंक्शन को long में परिवर्तित करने के लिए CLNG फ़ंक्शन का उपयोग नहीं किया जाएगा, क्योंकि वीबीए किसी फ़ंक्शन के रिटर्न वैल्यू को स्थिर करने की अनुमति नहीं देता है।

0
जोड़ा
धन्यवाद। मुझे पहले कभी इसका इस्तेमाल नहीं करना पड़ा। आप रहते हैं और सीखते हैं ..
जोड़ा लेखक Jonathan Webb, स्रोत
हम्म, यह कुछ नया है जो मैंने सीखा है
जोड़ा लेखक Varun Mahajan, स्रोत
समस्या का कारण यह है कि एक्सेस में डिफ़ॉल्ट संख्या प्रकार पूर्णांक है। मेरा मानना ​​है कि टाइप घोषणा पत्रों का कम उपयोग किया जाता है, और क्लिंग इत्यादि, जैसा कि डीबीबी द्वारा सुझाया गया है, को प्राथमिकता दी जानी चाहिए।
जोड़ा लेखक Fionnuala, स्रोत

http://support.microsoft.com/kb/191713 is a nice summary of the type declaration characters available in VBA/VB4-6.

0
जोड़ा

For those who find the & symbol a bit esoteric, an alternative is to use the CLNG function which converts a number to long

Const OVERFLOWS As Long = CLNG(10) * 60 * 60

फिर आप एकल स्थिरता के लिए एक ही चीज़ कर सकते हैं

Const OVERFLOWS As Single = CSNG(10) * 60 * 60
0
जोड़ा