क्या आप कभी स्वचालित शेड्यूल पर कुछ एक्सेस कोड चलाना चाहते हैं?
मैं आपको दिखाऊंगा कि एक मौजूदा एक्सेस एप्लिकेशन का उपयोग कैसे करें और कार्य शेड्यूलर के माध्यम से लॉन्च होने पर शानदार तरीके से बाहर निकलें, जबकि एक अंतिम उपयोगकर्ता द्वारा लॉन्च किए जाने पर एक अनुकूल यूजर इंटरफेस पेश करते हुए।
इसे काम करने की कुंजी है /cmd
झंडा।
पहुंच के लिए कमांड-लाइन आर्ग्स पास करना
एक्सेस करने के लिए कमांड-लाइन तर्क पारित करने के लिए, आप /cmd
. का उपयोग करते हैं अपना एप्लिकेशन लॉन्च करते समय कमांड लाइन तर्क:
निर्दिष्ट करता है कि कमांड लाइन पर जो होता है वह वह मान है जो कमांड द्वारा लौटाया जाएगा समारोह। यह विकल्प कमांड लाइन पर अंतिम स्विच होना चाहिए। आप /cmd . के विकल्प के रूप में अर्धविराम (;) का उपयोग कर सकते हैं .में किया जा सकता है
एक कमांड-लाइन तर्क निर्दिष्ट करने के लिए इस स्विच का उपयोग करें जिसका उपयोग Visual Basic for Applications (VBA) कोड
/cmd
. के बाद कमांड लाइन पर आपके द्वारा पास किए गए टेक्स्ट को पुनः प्राप्त करने के लिए तर्क, आप VBA.Command
. का उपयोग करते हैं समारोह।
आप इस फ़ंक्शन का उपयोग स्टार्टअप पर अपने कोड को पुनर्निर्देशित करने के लिए कर सकते हैं जो कि आवर्ती कार्य है।
व्यावहारिक उदाहरण
- नया डेटाबेस बनाएं
- निम्न कोड को नए मानक मॉड्यूल में जोड़ें:
Public Function Startup()
If Trim(VBA.Command) = "Nightly" Then
Shell "winver", vbNormalFocus
Application.Quit
End If
MsgBox "Start up"
End Function
- नया मैक्रो बनाएं
- चुनें "रनकोड ""नई क्रिया जोड़ें" ड्रॉपडाउन से
- "फ़ंक्शन नाम" को
Startup()
. पर सेट करें - मैक्रो को "AutoExec . के रूप में बंद करें और सहेजें "
सामान्य उपयोगकर्ता के रूप में चलाएं
एक सामान्य उपयोगकर्ता के रूप में एप्लिकेशन का परीक्षण करने के लिए, बस डेटाबेस को कॉम्पैक्ट और सुधारें।
आपको एक संदेश बॉक्स दिखाई देगा जो कहता है, "स्टार्ट अप।"
एक शेड्यूल किए गए कार्य के रूप में चलाएं
एक निर्धारित कार्य के रूप में चलने की नकल करने के लिए, अपना डेटाबेस बंद करें और इसे निम्न आदेश के साथ लॉन्च करें:
"C:\Path\To\msaccess.exe" "C:\Path\To\MyDb.accdb" /cmd Nightly
एक्सेस स्क्रीन पर संक्षिप्त रूप से फ्लैश होगा, फिर आपको "विंडोज के बारे में" डायलॉग बॉक्स दिखाई देगा, और एक्सेस अपने आप बंद हो जाएगा।
कुछ नोट्स
AutoExec
एक विशेष मैक्रो है जो स्टार्टअप पर स्वचालित रूप से चलता है- भले ही
Startup()
रूटीन कोई मूल्य नहीं लौटाता है, हम इसेFunction
. के रूप में घोषित करते हैं क्योंकि हम सीधेSub
. को कॉल नहीं कर सकते एक्सेस में मैक्रो से - सामान्य उपयोग के तहत, cmd विंडो कोड छोड़ दिया जाता है
- मैं स्पष्ट रूप से
Application.Quit
पर कॉल करता हूं मेरे "नाइटली" ब्लॉक के अंदर उस कोड पर एक्सेस लटकने से बचने के लिए जिसके लिए उपयोगकर्ता इंटरैक्शन की आवश्यकता होती है (जैसे मेरे उदाहरण में MsgBox कोड) - मैं हमेशा
Trim()
को कॉल करता हूंVBA.Command
. के आसपास कमांड लाइन पर आगे या पीछे व्हाइटस्पेस द्वारा शुरू की गई बग से बचने के लिए कार्य करता है /cmd
के विकल्प के रूप में , आप/x
. का भी उपयोग कर सकते हैं स्विच करें और इसे एक कस्टम मैक्रो का नाम दें (मैं ऐसा नहीं करता क्योंकि मैं एक हजार सफेद गर्म सूरज के जुनून के साथ मैक्रोज़ से नफरत करता हूं; मेरे द्वारा उपयोग किए जाने वाले केवल दो मैक्रोज़ हैंAutoexec
औरAutokeys
क्योंकि वे विशेष कार्यक्षमता प्रदान करते हैं )
कार्य शेड्यूलर और अन्य कार्यालय अनुप्रयोगों को स्वचालित करने के बारे में एक अंतिम नोट
यदि आपका कार्य रात भर चलने के लिए सेट करते समय काम नहीं कर रहा है, तो निर्धारित कार्य विकल्प को "केवल उपयोगकर्ता के लॉग ऑन होने पर ही चलाएं" पर स्विच करने का प्रयास करें।
Office अनुप्रयोगों का उद्देश्य विंडोज़ को "गैर-संवादात्मक" मोड में चलाने के लिए नहीं है। यदि आप एक निर्धारित कार्य को "चलाने के लिए उपयोगकर्ता लॉग ऑन है या नहीं" पर सेट करते हैं, तो वह कार्य गैर-संवादात्मक मोड में चलेगा। यह कई तरह की समस्याएं पैदा कर सकता है, खासकर यदि आप आवर्ती प्रक्रिया के हिस्से के रूप में एक्सेल को स्वचालित कर रहे हैं।
सबसे आसान उपाय यह है कि लॉग ऑफ करने के बजाय वर्कस्टेशन को लॉक कर दिया जाए और विकल्प को "केवल उपयोगकर्ता के लॉग ऑन होने पर ही चलाएं" पर सेट किया जाए।
यह आपकी स्थिति में व्यावहारिक नहीं हो सकता है, लेकिन इसके बारे में जागरूक होना एक महत्वपूर्ण विचार है। अपने आप को चेतावनी दें:
Microsoft वर्तमान में अनुशंसा नहीं करता है, और समर्थन नहीं करता है, Microsoft Office अनुप्रयोगों के किसी भी अप्राप्य, गैर-संवादात्मक क्लाइंट एप्लिकेशन या घटक से स्वचालन