दिलचस्प पोस्ट
आप PHP स्क्रिप्ट कैसे डिबग करते हैं? "आर" सामग्रियों की खोज कैसे करें? ऐप स्टोर पर ऐप के साथ कैसे जुड़ें सी ++ क्यूटी – कैसे बनाने के लिए "-स्टडी = सी ++ 11" मेकफाइल को जो कि क्यूमेक द्वारा उत्पन्न होता है? एसएमटीपी सर्वर को एक सुरक्षित कनेक्शन की आवश्यकता होती है या ग्राहक को प्रमाणित नहीं किया गया था। सर्वर प्रतिक्रिया थी: 5.5.1 प्रमाणीकरण आवश्यक है? पंक्ति में JTable डुप्लिकेट मान Numpy.dtype में गलत आकार है, पुनः कंपाइलिंग का प्रयास करें CakePHP में base_url React.js – घटक विधियों तक पहुंच समय को संकलित करने में अंत्यता का निर्धारण करना आईफ़ोन: उपयोग करने के लिए कैसे करें चयनकर्ता: onThread: withObject: waitUntilDone: विधि? Django के साथ एक एचटीटीपीआरपीएसप को कैसे प्रसारित करें एक कनेक्शन सफलतापूर्वक सर्वर के साथ स्थापित किया गया था, लेकिन फिर पूर्व-लॉगिन हैंडशेक के दौरान एक त्रुटि हुई जावास्क्रिप्ट के साथ एक ऑरेंज से ऑब्जेक्ट कैसे निकालूँ? JQuery में एक पृष्ठ से एक पृष्ठ से दूसरे मूल्य कैसे पास करें

अनुसूचित कार्य के रूप में माइक्रोसॉफ्ट एक्सेस चलाना

मैं एक डेटाबेस (.accdb) के स्वत: अपडेट शेड्यूल करने के बारे में टिप्पणियों की तलाश कर रहा हूं क्योंकि मैं अपने द्वारा स्थापित की गई प्रक्रिया के साथ बहुत सहज नहीं हूं।

वर्तमान में, यह निम्नलिखित के रूप में काम करता है:

  1. कार्य शेड्यूलर एक .bat कहता है
  2. .bat एक .vbs कॉल करता है
  3. .vbs डेटाबेस को खोलता है और मैक्रो को कॉल करता है
  4. मेक्रो एक फ़ंक्शन कॉल करता है (VBA स्तर)
  5. फ़ंक्शन कॉलम अपडेट सबरॉउटिन को कहता है

मैं समझता हूं कि बहुत सारे कदम हैं और तथ्य यह है कि इसे डेटाबेस से संबंधित 2 बाहरी फाइलों (.बैट और। Vbs) की आवश्यकता होती है और सिस्टम पर संग्रहीत इस जोखिम को बढ़ाता है कि प्रक्रिया टूट जाएगी

जाहिरा तौर पर (लेकिन कृपया मुझे बताएं कि मैं गलत हूं और मैं इसे कैसे बदल सकता हूँ)। Vbs एक सबराउटिन को कॉल नहीं कर सकता लेकिन केवल एक मैक्रो। समान रूप से, एक एक्सेस मैक्रो कोई उपनेमका नहीं बुला सकता है, लेकिन केवल एक फ़ंक्शन अगर उपयोगकर्ता को डेटाबेस के वीबी पर्यावरण में प्रवेश करने की उम्मीद है। यही कारण है कि मैंने फ़ंक्शन (VBA स्तर) को बुलाया है, जिसके बाद उपस्ट्रैटेन को बुलाया जाता है।

आशा है कि आप में से कुछ जानते हैं कि कैसे चरणों को छोटा करें और अंततः .bat और .vbs की सवारी करें

Solutions Collecting From Web of "अनुसूचित कार्य के रूप में माइक्रोसॉफ्ट एक्सेस चलाना"

अपने ज्ञान का सबसे अच्छा करने के लिए "शॉर्टकट एक्सेस वीबीए में कुछ उपयोगी काम" करने के लिए विंडोज शेड्यूल्ड टास्क के लिए सबसे छोटा पथ है:

डेटाबेस में एक सार्वजनिक फ़ंक्शन (नहीं उप) बनाएँ उदाहरण के लिए:

 Option Compare Database Option Explicit Public Function WriteToTable1() Dim cdb As DAO.Database Set cdb = CurrentDb cdb.Execute "INSERT INTO Table1 (textCol) VALUES ('sched test')", dbFailOnError Set cdb = Nothing Application.Quit End Function 

फ़ंक्शन को आमंत्रित करने के लिए डेटाबेस में एक मैक्रो बनाएं:

Macro.png

उचित मानदंडों के साथ MSACCESS.EXE को खोलने के लिए एक विंडोज अनुसूचित कार्य बनाएँ

SchedTask.png

उपरोक्त संवाद बॉक्स में मान हैं:

कार्यक्रम / स्क्रिप्ट:

 "C:\Program Files\Microsoft Office\Office14\MSACCESS.EXE" 

तर्क जोड़ें (वैकल्पिक) :

 C:\Users\Public\schedTest.accdb /x DoSomething 

एक छोटी सी ज्ञात चाल है जो जल्द से जल्द आने वाले वर्षों तक की गई एक ऐसी चाल है जो इसे एक ऐसी प्रक्रिया के रूप में चलाने की अनुमति देती है जो अभी भी काम करता है। एक्सेस हमेशा "ऑटोएक्सएक" नामक एक मैक्रो के लिए स्टार्टअप लुक पर दिखाई देगा यदि यह पाता है तो यह इस मैक्रो को तुरंत निष्पादित करने के लिए शुरू कर देगा। मुझे लगता है कि यह अत्यंत उपयोगी है यदि मुझे कार्यक्रम खोलने से पहले कार्यक्रम शुरू करने की आवश्यकता है या, जैसा कि मूल प्रश्नकर्ता के मामले में, कोई उपयोगकर्ता I / O के साथ अनुसूचित प्रक्रिया के रूप में पहुंच को चलाने की ज़रूरत नहीं है I

एक वीबीएस स्क्रिप्ट निम्न के साथ किसी भी मानक vba SUBROUTINE को कॉल कर सकता है:

 dim accessApp set accessApp = createObject("Access.Application") accessApp.OpenCurrentDataBase("C:\MyApp\MultiSelect.mdb") accessApp.Run "TimeUpDate" accessApp.Quit set accessApp = nothing 

ध्यान दें कि उप टाइमअपडेट एक मानक VBA सब-रूटिन है। इसका अर्थ है कोई ऑटोएक्सएक मार्कोर्स और कोई मैक्रोज़ नहीं – केवल शुद्ध VBA उप कॉल + यह वीबीएस स्क्रिप्ट

लगभग चार घंटे तक दीवार के सामने मेरे सिर को मारने के बाद, आखिरकार मुझे यह काम करने के लिए मिला:

1) एक पंक्ति के साथ एक डॉस बैच फ़ाइल बनाएँ रेखा तीन भागों से बना है I) माइक्रोसॉफ्ट एक्सेस (एमएसएसीसीई.एक्सई) के लिए पूर्ण पथ, बी) माइक्रोसॉफ्ट एक्सेस डाटाबेस का पूरा पथ इसमें कोड के साथ, और सी) एक्सेस कमांड लाइन तर्क "/ एक्स मैक्रोनाम" । पहले दो आइटम उद्धरण चिह्नों से घिरे हुए होने चाहिए। मेरा ऐसा दिखता है:

 "C:\Program Files (x86)\Microsoft Office\Office14\MSACCESS.EXE" "C:\MyPrograms\ProdDB Reports\ProdDB Reports.accdb" /X DailyTestReportsRun 

2) आपके बैच फ़ाइल में उपयोग किए गए नाम के साथ पहुंच के अंदर मैक्रो बनाएं। इसके पास एक कमांड, RunCode , जिसमें RunCode फ़ंक्शन के नाम की बहस है जिसे आप कॉल करना चाहते हैं। यह खुले / बंद कोष्ठक "()" के बाद किया जाना चाहिए मैंने फ़ंक्शन पर कोई पैरामीटर पारित करने की कोशिश नहीं की; मुझे लगता है कि यह समस्याग्रस्त होगा

4) सुनिश्चित करें कि आपके पास Docmd.Quit फ़ंक्शन को अंत में एक Docmd.Quit कमांड है, या आप इसे अपने मैक्रो के लिए एक दूसरी पंक्ति के रूप में जोड़ते हैं। ये सुनिश्चित कर लेंगे कि आपकी प्रक्रिया चलने के बाद एक्सेस खुली नहीं रहती है।

5) विंडोज टास्क समयबद्धक में, "एक बुनियादी कार्य बनाएं" चुनें (जो एक विज़ार्ड को आमंत्रित करता है)। अपने डॉस बैच फ़ाइल के नाम पर प्रोग्राम का नाम सेट करें। ऐसा कुछ उपयोगी लेबल है जो "जब समाप्त हो जाता है तो गुण विंडो को खोलें।" यह जांचें कि आप गुण विंडो पर जाते हैं।

6) उपयोगकर्ता को लॉग ऑन किया गया है या नहीं, इसके बावजूद चलाने के लिए कार्य सेट करें साथ ही "सर्वोच्च विशेषाधिकारों के साथ भागो" बॉक्स की जांच करें, जिस पर एक मित्र ने सुझाव दिया है।

अब आप शेड्यूल्ड कार्य को राइट-क्लिक करके और रन कमांड का चयन करके सब कुछ जांच सकते हैं।

मुझे अल्बर्ट कल्लाल की स्क्रिप्ट पसंद आई और मैंने कोशिश की। जब तक मैं इसे शेड्यूल करने की कोशिश नहीं करता हूँ तब तक सब कुछ महान काम करता था। फिर, कुछ रहस्यमय कारणों से शेड्यूलर इसे किक नहीं करेगा।