2010-07-07 19 views
7

मैंने वीबीए का उपयोग कर एक एक्सेस एप्लिकेशन विकसित किया। हर मैं पहुँच को खोलने, मैं निम्नलिखित मिल:वीबीए सुरक्षा चेतावनी से छुटकारा पाने के लिए कैसे करें

https://lh5.googleusercontent.com/wgn5B5PllVXGuG6W4_xiFa1rouSpDSn27MC0nzPkgJ5CPN8BKpAn-gDFsVS4GZtepY-c4jtbEupKeV227ogICQlzcg=s512

मैं क्लिक करने के लिए विकल्प है ->मेरी मैक्रो को चलाने के लिए सामग्री सक्षम करें। इस एप्लिकेशन को काम पर दो लोगों के बीच साझा किया जाएगा जो इतनी तकनीकी समझदार नहीं हैं। तो आवश्यकताओं के अनुसार, मुझे इसे हटाना होगा। मैंने डेटाबेस पर हस्ताक्षर/पैकेजिंग करने का प्रयास किया है, लेकिन यह अभी भी चेतावनी से छुटकारा नहीं पाता है।

+0

अपने स्क्रीनशॉट के दिखने से यह 2007 तक पहुंच गया है, 2003 या 2010 नहीं। – jdw

उत्तर

11

तुम कहाँ एक्सेल "विश्वसनीय स्थान" में शुरू की है से स्थान जोड़ने के लिए ऐसा करने के लिए।

  • एक्सेल विकल्प में, ट्रस्ट केंद्र पर जाएं और उसके बाद विश्वसनीय स्थान
  • स्थान जोड़ें:

    ऐसा करने के लिए इस प्रकार है।

यह प्रति-पीसी आधार पर किया जाना होगा।

इसके अलावा, इस के रूप में देखने का एक Excel फ़ाइल बिंदु से यह करने के लिए पूरी तरह से दे उपयोगकर्ता VBA कोड या नहीं चलाने के लिए चुना है की सुरक्षा सुविधा anihiliate हैं कोई रास्ता नहीं है।

इसके अलावा एक छोटे से sidenote, यदि आप अपने Excel फ़ाइल पर हस्ताक्षर, तब भी आप प्राप्तकर्ता की जरूरत है एक प्रकाशक के रूप में आप पर भरोसा करना चाहती है, इसलिए यही कारण है कि अपने समाधान शायद काम नहीं किया है।

संपादित करें: टिप्पणी में

ले रहा है, वहाँ यह प्रोग्राम के रूप में करने के लिए एक तरह से लग रहे है। के रूप में XpertsExchange से लिया,

क्यों न सिर्फ कोड से रजिस्ट्री प्रविष्टि सेट, शैल लागू बिना? cRegistry वर्ग यहां पाया प्रयोग करें:

http://www.vbaccelerator.com/home/VB/Code/Libraries/Registry_and_Ini_Files/Complete_Registry_Control/article.asp

VBA कोड:

Dim c As New cRegistry 
    With c 
     .ClassKey = HKEY_CURRENT_USER 
     .SectionKey = "Software\Microsoft\Office\12.0\Access\Security\Trusted Locations\YourTrustedLocationName" 
     .ValueKey = "Path" 
     .ValueType = REG_DWORD 
     .Value = "Full path to Trusted Folder" 
    End With 

केवल चेतावनी है कि YourTrustedLocationname अद्वितीय होना चाहिए है ...

आप अगर यह कोशिश करना होगा होना चाहिए। ValueType = REG_DWORD या REG_SZ। मुझे उस पर यकीन नहीं है।

+0

धन्यवाद। क्या इसमें "एम्बेड" करने का कोई तरीका है। मेरे पास एक विश्वसनीय स्थान जोड़ने के लिए शानदार नहीं है। – masfenix

+1

हां दोस्त। अन्यथा आप पूरी तरह से सुरक्षा सुविधा के उद्देश्य को हरा देंगे। मुझे ऐसा करने की कल्पना करो, एक वीबीए वायरस पैक करना और आपको फाइल भेजना। अगर फ़ाइल मुझे पहले पूछे बिना मैक्रोज़ को स्वत: निष्पादित करेगी, तो इस अतिरिक्त सुरक्षा सुविधा के बारे में कोई जानकारी नहीं होगी। – Trefex

+0

मैं तुम्हारा बिंदु देखता हूं, बहुत बहुत धन्यवाद। – masfenix

2

क्या आपके मैक्रो को एक विश्वसनीय प्राधिकारी द्वारा हस्ताक्षरित किया गया है।

+0

एक्सेस 2007 डेटाबेस की फ़ाइलों में कोड-हस्ताक्षर की अनुमति नहीं देता है .accdb, .accdr और .accde। एमएस ने फीचर को दूर ले लिया (और इसे संस्करण 2010 में वापस लाया)। संस्करण 2007 .mdb प्रकार डेटाबेस में कोड पर हस्ताक्षर करने की अनुमति देगा, अन्यथा यह केवल एक इंस्टॉल पैकेज पर हस्ताक्षर करने की अनुमति देगा (यदि अंतिम उपयोगकर्ता एक्सेस रनटाइम का उपयोग कर रहा है और विश्वसनीय स्थान जोड़ने के लिए कोई आसान पहुंच नहीं है तो कोई अच्छा नहीं है)। – jdw

3

यह प्रति उपयोगकर्ता विकल्प है। हर किसी को आपकी कार्यपुस्तिका पर भरोसा करना होगा।

एक्सेल में, मेनू बटन दबाएं और एक्सेल विकल्प चुनें। उस विंडो में, ट्रस्ट सेंटर चुनें, और फिर ट्रस्ट सेंटर सेटिंग्स चुनें। उस विंडो में, विश्वसनीय स्थान चुनें।

कि स्क्रीन पर एक बार, तो आप शायद जाँच "मेरे नेटवर्क पर विश्वसनीय स्थानों की अनुमति दें" और उसके बाद स्थान जोड़ें और अपनी कार्यपुस्तिका का नेटवर्क स्थान जोड़ना चाहते हैं जाएगा।

0

मैं दृश्य स्टूडियो 2010 (सेटअप & तैनाती परियोजनाओं के तहत) के साथ एक सेटअप परियोजना क्या निर्माण कर रहा था।इस प्रोजेक्ट के भीतर आप एमएस एक्सेस एप्लिकेशन को "सी: \ Ntapps \ MsOffice \ Office12 \ ACCWIZ \" पर स्थापित/कॉपी करने के लिए कॉन्फ़िगर करते हैं। यह विश्वसनीय डेटाबेस के लिए एक फ़ोल्डर है। फिर एमएस एक्सेस एप्लिकेशन के लिए एक शॉर्टकट बनाएं और वांछित स्थान पर उसे इंस्टॉल करें।

जब सबकुछ ठीक है और इंस्टॉल पूर्ण हो गया है, तो एमएस एक्सेस (डिफ़ॉल्ट कॉन्फ़िगरेशन पर) अब डेटाबेस पर भरोसा करता है।

गुड लक;)

Grtz, टॉम

+0

आपके द्वारा उल्लिखित फ़ोल्डर (एक्सेस 2007 के लिए) के लिए सामान्य स्थापना डिफ़ॉल्ट स्थान "% प्रोग्रामफाइल (x86)% \ Microsoft Office \ Office12 \ ACCWIZ है"। आपका पथ मानक डिफ़ॉल्ट पथ नहीं है और संभवतः आपके इंस्टॉलेशन के लिए अद्वितीय है। ध्यान दें कि इस फ़ोल्डर में उपयोगकर्ता के लिए व्यवस्थापकीय अधिकारों के बिना लेखन पहुंच नहीं है, अगर कोई सोच रहा है कि यह सुरक्षा छेद का प्रतिनिधित्व करता है या नहीं। – jdw

5

हालांकि इस सवाल का वर्ष है, बस के मामले में यह है, यहाँ मदद मिल सकती है मैं क्या किया है। यह पहले से प्रस्तावित लोगों के लिए एक अलग दृष्टिकोण है, और यह किसी और की सेवा कर सकता है। मेरे मामले में, उपयोगकर्ता द्वारा सीधे एमएसएप खोला नहीं गया था। इसके बजाए, किसी अन्य कस्टम एप्लिकेशन के भीतर से ऑटोमेशन का उपयोग करके एमएसएसेफ़ शुरू किया गया था। इसलिए, उपयोगकर्ता को 'सामग्री सक्षम करें' पर क्लिक करने के बजाय, हमारे पास यह कस्टम एप्लिकेशन मैक्रोज़ को सक्षम करने के लिए MsAccess को बताता था। कुछ इस के समान:

cli = create_object("Access.Application") 
cli.AutomationSecurity = 1    # 1 = msoAutomationSecurityLow 
cli.visible = true 
cli.opencurrentdatabase("c:/Users/jmperez/AppData/Local/Temp/DB_TMP.mdb") 

(उपरोक्त कोड के बारे में खेद है, यह एक 'मानक' या 'लोकप्रिय' प्रोग्रामिंग भाषा से नहीं है, लेकिन यह दृश्य मूल या कुछ और के लिए अनुकूल करने के लिए मुश्किल नहीं होना चाहिए)

+0

यह कोड वही है जो मैं चाहता था। मैं लंबे समय तक एप्लिकेशन ऑब्जेक्ट का उपयोग करके छिपी हुई एक्सेस डेटाबेस फ़ाइल खोलने का एक तरीका खोज रहा हूं। 'AutomationSecurity' प्रॉपर्टी को 1 पर सेट करना विश्वसनीय स्थान चेतावनी संवाद बॉक्स को दबाने की कुंजी थी। –

संबंधित मुद्दे

 संबंधित मुद्दे