Wie man VBA Sicherheitswarnung los wird

7

Ich habe eine Access-Anwendung mit VBA entwickelt. Jedes Mal, wenn ich Access öffne, bekomme ich Folgendes:

Ich muss auf Optionen klicken - & gt; Inhalt aktivieren , um meine Makros auszuführen. Diese Anwendung wird unter ein paar Leuten bei der Arbeit geteilt, die nicht so technisch versiert sind. Also nach Anforderungen muss ich es entfernen. Ich habe versucht, die Datenbank zu signieren / packen, aber es wird die Warnung immer noch nicht los.

    
masfenix 07.07.2010, 14:13
quelle

5 Antworten

11

Dazu müssen Sie den Speicherort hinzufügen, an dem Excel in den "vertrauenswürdigen Speicherorten" gestartet wird.

Um dies zu tun, tun Sie Folgendes:

  • Wechseln Sie in den Excel-Optionen zu Trust Center und dann zu vertrauenswürdigen Speicherorten
  • Fügen Sie den Standort hinzu.

Dies müsste auf einer PC-Basis erfolgen.

Darüber hinaus gibt es keine Möglichkeit, dies aus Sicht der Excel-Datei zu tun, da dies die Sicherheitsfunktion, den Benutzer zur Ausführung von VBA-Code zuzulassen, vollständig aufhebt.

Auch ein kleiner Hinweis, wenn Sie Ihre Excel-Datei unterschreiben, brauchen Sie immer noch den Empfänger, der Ihnen als Herausgeber vertraut. Aus diesem Grund hat Ihre Lösung wahrscheinlich nicht funktioniert.

Bearbeiten:

In Kommentaren scheint es einen Weg zu geben, dies programmatisch zu tun. Wie von XpertsExchange übernommen,

Warum nicht einfach den Registrierungseintrag aus dem Code setzen, ohne Shell aufzurufen? Verwenden Sie die hier gefundene cRegistry-Klasse:

Ссылка

VBA-Code:

%Vor%

Der einzige Nachteil ist, dass YourTrustedLocationname eindeutig sein muss ...

Sie müssten versuchen, ob es .ValueType = REG_DWORD oder REG_SZ sein sollte. Da bin ich mir nicht sicher.

    
Trefex 07.07.2010, 14:15
quelle
5

Obwohl diese Frage Jahre alt ist, nur für den Fall, dass es helfen könnte, hier ist was ich getan habe. Es ist eine andere Herangehensweise als die bereits vorgeschlagenen, und es kann jemand anderem dienen. In meinem Fall wurde MsAccess nicht direkt vom Benutzer geöffnet. Stattdessen wurde MsAccess mithilfe von Automatisierung aus einer anderen benutzerdefinierten Anwendung gestartet. Anstatt also den Benutzer auf "Inhalt aktivieren" zu setzen, haben wir diese benutzerdefinierte Anwendung angewiesen, MsAccess mitzuteilen, dass die Makros aktiviert werden sollen. Etwas Ähnliches:

%Vor%

(Entschuldigung wegen des obigen Codes, es ist nicht von einer 'Standard' oder 'populären' Programmiersprache, aber es sollte nicht schwierig sein, sich an Visual Basic oder irgendetwas anderes anzupassen)

    
Juan Manuel Perez 13.04.2016 14:31
quelle
3

Es ist eine benutzerspezifische Option. Jeder müsste Ihrem Arbeitsbuch "vertrauen".

Klicken Sie in Excel auf die Menüschaltfläche, und wählen Sie Excel-Optionen. Wählen Sie in diesem Fenster Vertrauensstellungscenter und dann Vertrauensstellungseinstellungen aus. Wählen Sie in diesem Fenster Vertrauenswürdige Speicherorte.

Auf diesem Bildschirm sollten Sie wahrscheinlich die Option "Vertrauenswürdige Standorte in meinem Netzwerk zulassen" aktivieren und dann auf Standort hinzufügen klicken und den Netzwerkspeicherort Ihrer Arbeitsmappe hinzufügen.

    
Fosco 07.07.2010 14:19
quelle
2

Lassen Sie Ihr Makro von einer vertrauenswürdigen Stelle signieren.

    
mcandre 07.07.2010 14:18
quelle
0

Was ich gemacht habe, war ein Setup-Projekt mit Visual Studio 2010 zu erstellen (unter Setup & Amp; Deployment-Projekte). In diesem Projekt konfigurieren Sie, die MS Access-Anwendung zu "C: \ Ntapps \ MsOffice \ Office12 \ ACCWIZ \" zu installieren / zu kopieren. Dies ist ein Ordner für vertrauenswürdige Datenbanken. Erstellen Sie dann eine Verknüpfung zu der MS Access-Anwendung und installieren Sie diese an der gewünschten Position.

Wenn alles in Ordnung ist und die Installation abgeschlossen ist, vertraut MS Access (bei Standardkonfiguration) jetzt der Datenbank.

Viel Glück;)

Grtz, Tom

    
Tom 30.08.2011 12:12
quelle

Tags und Links