दिलचस्प पोस्ट
बूलियन क्यों करता है। टॉस्ट्रिंग आउटपुट "ट्रू" और "सच" नहीं है जावा में फ्लोटिंग पॉइंट की तुलना करना और तुलना करना एसक्यूएल सर्वर 'सहेजे परिवर्तन की अनुमति नहीं है' त्रुटि ► ऐसे बदलावों को रोकें जो कि तालिका पुन: निर्माण की आवश्यकता होती है XMLHttpRequest फ़ाइल लोड नहीं कर सकता। क्रॉस मूल अनुरोध केवल HTTP के लिए समर्थित हैं आप एक एनएएम को धाराप्रवाह NHibernate के साथ एक इंट मान के रूप में कैसे मैप करते हैं? घातक त्रुटि: बुलियन पर सदस्य फ़ंक्शन bind_param () पर कॉल करें क्लास ऑब्जेक्ट के लिए कस्टम स्ट्रिंग का प्रतिनिधित्व कैसे करें? जावा क्लास के लिए उपयोग किए जाने वाले चर को किस प्रकार उपयोग किया जाता है? सीएसएस – माता पिता की ऊंचाई तक बच्चे डीआईवी ऊंचाई को फ्लोट करें एक सूची बॉक्स आइटम का बैकग्राउंड रंग (विन्यास) अभिविन्यास परिवर्तन कैसे पता लगा सकता है? प्रोटोटाइप का उपयोग करते हुए जावास्क्रिप्ट में किसी ऑब्जेक्ट की हर प्रॉपर्टी को बदलना? कोड में एक Silverlight DataTemplate बनाना सी # में, "यह" कीवर्ड आवश्यक है? बड़े स्विंग घटक छपाई

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

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

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

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

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

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

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

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

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

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

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

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

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