मुझे डीआईजीएम के आईआईएफ कथन और डेविड के फोर/नेक्स्ट लूप का उपयोग पसंद आया, इसलिए मैं उन्हें एक साथ जोड़ रहा हूं।
क्योंकि एक्सेस में वीबीए में सख्त प्रकार की जांच नहीं है, इसलिए मैं सभी संख्याओं, पूर्णांक और दशमलव को संरक्षित करने के लिए विविधता का उपयोग कर रहा हूं, और वापसी मूल्य को दोबारा टाइप कर सकता हूं।
मेरे पैरामीटर सत्यापन को पकड़ने के लिए हंसअप के लिए कुडोस :)
टिप्पणियां कोड को और अधिक मित्रवत बनाने के लिए जोड़ा गया।
Option Compare Database
Option Base 0
Option Explicit
Function f_var_Min(ParamArray NumericItems()) As Variant
If UBound(NumericItems) = -1 Then Exit Function ' No parameters
Dim vVal As Variant, vNumeric As Variant
vVal = NumericItems(0)
For Each vNumeric In NumericItems
vVal = IIf(vNumeric < vVal, vNumeric, vVal) ' Keep smaller of 2 values
Next
f_var_Min = vVal ' Return final value
End Function
Function f_var_Max(ParamArray NumericItems()) As Variant
If UBound(NumericItems) = -1 Then Exit Function ' No parameters
Dim vVal As Variant, vNumeric As Variant
vVal = NumericItems(0)
For Each vNumeric In NumericItems
vVal = IIf(vNumeric < vVal, vVal, vNumeric) ' Keep larger of 2 values
Next
f_var_Max = vVal ' Return final value
End Function
2 कार्यों के बीच एकमात्र अंतर आईआईएफ कथन में vVal और vNumeric का क्रम है।
प्रत्येक खंड के लिए लूपिंग और सरणी सीमाओं को जांचने के लिए आंतरिक वीबीए तर्क का उपयोग करता है, जबकि "बेस 0" सरणी सूचकांक 0
प्रश्न के एक साल बाद नीचे वोटों की तुलना में यह अधिक उपयोगी है। :) – DGM
मुझे आश्चर्य है कि यह जल्द ही उत्तर नहीं मिला, यह देखते हुए कि समस्या कितनी छोटी है।शायद ऐसा इसलिए है क्योंकि सवाल टकराव था (यानी, बुडमाउथिंग एक्सेस) ताकि लोगों को जो जवाब पता था, वे भी किसी ऐसे व्यक्ति की मदद करने के लिए परेशान हो गए थे, जो उसके कंधे पर चिप का कुछ लगता है। –
आप समझते हैं कि क्यों एक डेटाबेस विकास उपकरण में ऐसा कोई फ़ंक्शन नहीं बनाया गया है, है ना? इस तरह के एक समारोह से डेटाबेस से संबंधित बहुत अधिक चूक हैं। –