Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

beim Aufruf aus einer zip-Datei: Die Datenbank ist schreibgeschützt

Begonnen von bahasu, August 17, 2012, 14:16:18

⏪ vorheriges - nächstes ⏩

bahasu

Hallo,
mein Ziel ist, aus dem Outlook-Kalender heraus einen bestimmten Datensatz in einer a2007-Datenbank (a2007) anzuzeigen.

Als Zwischenschritt habe ich dafür eine kleine mdb-Datei (Name z.B. ,,53.mdb") vorgesehen. Wenn ich diese direkt im Explorer anklicke, erhalte ich den gewünschten Datensatz in der a2007-Datenbank, egal in welchem Zustand diese war: konnte z.B. geschlossen gewesen sein oder war bereits in einer beliebigen Menüebene geöffnet.
Wenn ich die 53.mdb im von access generierten Outlook-Kalender-Eintrag anklicken will, ist das leider nicht möglich,  da die Sicherheitseinstellungen in Outlook das Anhängen einer mdb untersagen. Die im Internet aufgeführten Varianten, die registry und/oder outlook anzupassen, kann ich nicht machen, da die IT das nicht zulässt.
Als Lösung habe ich  gefunden, die mdb als zip in Outlook zu bringen. Beim Versuch, im Outlook-Kalender diese im zip-Format angehängte Datenbank zu öffnen, erhalte ich die Meldung: ,,Die Datenbank ,,53.mdb" ist schreibgeschützt".
Auch beim Versuch, die Datenbank aus der zip-Datei heraus (also nicht in der Outlook-Umgebung) zu öffnen, erhalte ich diese Meldung.
Die Datenbank hat als Standardöffnungsmodus ,,Freigegeben", es gibt keine Sperrungen. Es gibt keine Schreibaktionen auf Tabellen, da es in dieser kleinen mdb keine Tabellen gibt.
Sie enthält nur ein paar Programmzeilen, um eine weitere Datenbank aufzurufen bzw. die bereits aufgerufene Datenbank so zu steuern, dass dort ein bestimmter Datensatz angezeigt wird.

Frage:
Wie kann ich die Meldung unterdrücken?
Welche andere Möglichkeit habe ich, aus outlook heraus einen bestimmten Datensatz in einer zu öffnenden bzw. bereits geöffneten Datenbank (frontend, backend, Berechtigungssystem) anzuzeigen?


Harald
Servus

ebs17

Zitateinen bestimmten Datensatz in einer a2007-Datenbank

Ich bin nun etwas einfach gestrickt und würde mich mit einfachen Lösungen begnügen: Um einen Datensatz zu identifizieren, benötigt man dessen (eindeutige) ID. Eine ID wiederum kann man in einem Kalendereintrag als Minitext hinterlegen und so auch auslesen.

Mit Outlook-Ereignissen kenne ich mich nicht aus, aber da sollte doch etwas passendes zu finden sein, um ein kleines VB-Script auszuführen oder direkt per VBA (das gibt es auch in Outlook) die Ziel-DB anzusprechen.

MfGA
ebs
Mit freundlichem Glück Auf!

Eberhard

69bruno

uiuiuiuiui.....
böse !!

Ich habe gerade mal eine Frontend von mir in eine zip-Datei gepackt, habe sie mir selbst zugesandt und die Meldung beim Öffnen aus Outlook einfach mal ignoriert und Daten geändert..... hat geklappt.

ABER!

Ich arbeite in einem Homeoffice über einen VPN-Tunnel. Wenn es jetzt nicht nur daran liegt, dass  die VPN-Verbindung durch diese Aktion einen weg hat, dann hat er mir die echte FE, die auf dem Server liegt geschmeidig zerhackt.......
Kriege jetzt andauernd Netzwerk- oder Datenträgerfehler, wenn ich die FE starten möchte.......

Also besser mit Kopien arbeiten  :-\

Und besser nicht über VPN: Muss nächste Woche aus dem Büro mal sehen, welhe Verwundeten ich noch am leben halten kann........
If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If

bahasu

Hi Bruno,

Zitat von: 69bruno am August 17, 2012, 15:39:57
und die Meldung beim Öffnen aus Outlook einfach mal ignoriert und Daten geändert..... hat geklappt.

da diese Anwendung von Leuten genutzt werden soll, deren "Schmerzgrenze" für nervende Hinweise anders gelagert ist als bei mir, ist der obige Hinweis noch nicht die von mir erhoffte Lösung.



Zitat von: 69bruno am August 17, 2012, 15:39:57
Also besser mit Kopien arbeiten

Da stimme ich 100%ig zu. Solange noch ein Byte frei ist, sollte man es für ein Backup nutzen.  ;D

Harald
Servus

bahasu

Hi

Zitat von: ebs17 am August 17, 2012, 15:23:36
Mit Outlook-Ereignissen kenne ich mich nicht aus

Dann haben wir das als Gemeinsamkeit.  ;)



Zitat von: ebs17 am August 17, 2012, 15:23:36
... aber da sollte doch etwas passendes zu finden sein, um ein kleines VB-Script auszuführen oder direkt per VBA (das gibt es auch in Outlook) die Ziel-DB anzusprechen.

wenn das die Lösung ist, dann her damit.
Wobei so ganz klein ist das Skript nicht, da es eine Reihe von api-Aufrufen gibt (u.a. aus einem fremden Programm eine access-Datenbank steuern, in der irgendein beliebiges Formular zum Zeitpunkt des Aufrufs aktiv sein kann unter Berücksichtigung eines Berechtigungssystems).

Harald
Servus

ebs17

Bei der Fernsteuerung (Fernbedienung der GUI) von anderen Datenbanken bin ich sehr kritisch, und Du willst eine ferngesteuerte Anwendung von einer zweiten Seite aus fernsteuern?
Das ist entweder unorganisiert und verwirrt oder sehr komplex genial. Ein Mittelfeld gibt es da meiner Meinung kaum.

Wenn eine Anwendung aber ausgelegt ist für einen Zugriff von außen, hätte sie vermutlich eine Schnittstelle, wo ein "Anruf " entgegen genommen und verarbeitet wird. Frag mich aber nicht wie. Ein eigenes Event wäre vielleicht ein Weg.
Zu modularer Anwendungsentwicklung, die das in etwa trifft, ist von Michael Zimmermann innerhalb der AEK-Downloads etwas zu lesen.

Zu Outlook: Eine Kurzrecherche ergab: Termine und Aufgaben kann man mit einer Erinnerung versehen. Unmittelbar vor dem Anzeigen einer Erinnerung tritt das Reminder-Ereignis ein. Damit hätte man also einen Anstoß, um irgendeine Prozedur aufzurufen. Weiteres liest und erarbeitest Du bitte in der Outlook-VBA-Hilfe.

Oder Du passt Dir so etwas an: Inspector Wrapper

Die Suche per Google mit den Stichworten Outlook VBA Ereignisse dürfte weitere Quellen offenbaren.

MfGA
ebs
Mit freundlichem Glück Auf!

Eberhard

database

Hallo,

das Anhängen einer *.mdb an eine Outlook-Nachricht ist aus Sicherheitsgründen gesperrt - richtig.
Umgehen kannst du das zum Einen - wie du schon gemacht hast - in dem du die Datei in ein zip-Format bringst, zum Anderen in dem du die Dateiendung änderst (z.B. *.md_).
Zu Öffnen wäre die Datei dann über den Umweg 'Öffnen mit ...' und Auswahl der MSACCESS.EXE oder durch 'Downloaden' aus der Mail und zurückbenennen.
Das Problem mit dem Schreibschutz entsteht einerseits durchs Zippen andererseits dadurch, dass sich diese Datei als Anhang einer Mail zeigt und dadurch das direkte Öffnen in einem temorären Umfeld stattfindet.
Acc2007 benötigt bereist für das fehler-/meldungsfreie Öffnen 'Vertrauenswürdige Speicherorte' welche durch das temporäre Umfeld nicht gegeben sind.

M.E. wäre die einfache Variante die Datei ungezippt zu versenden und jede Mail mit einem Kurztext zur Handhabung des Anhanges zu versehen.
Auch 'genervte' Benutzer dürften in der Lage sein eine Datei auf ihren Desktop zu speichern, die Endung zu ändern und die DB zu starten.
Wenn du die dann mit einem AutoExec-Eintrag gestaltest sollte deine Verarbeitungroutine ablaufen können.

Auch die von ebs angesprochene Verarbeitung von Outlook-Ereignissen via VBA KANN eine mögliche Lösung bieten.
Allerdings wird es meiner Meinung nach nicht einfach sein viele oder mehrere Empfängerstationen mit dem benötigten Code in den Outlookinstallationen zu 'versorgen'

bahasu

Hallo Peter,

danke für Deine Antwort.

Zitat von: database am August 18, 2012, 09:34:15
zum Anderen in dem du die Dateiendung änderst (z.B. *.md_).
Werde ich ausprobieren, ob das Öffnen von md_ vielleicht sogar permanent zuweisbar ist.

Zitat von: database am August 18, 2012, 09:34:15
Wenn du die dann mit einem AutoExec-Eintrag
So bereits geschehen.

Zitat von: database am August 18, 2012, 09:34:15
Auch die von ebs angesprochene Verarbeitung von Outlook-Ereignissen via VBA KANN eine mögliche Lösung bieten.
Allerdings wird es meiner Meinung nach nicht einfach sein viele oder mehrere Empfängerstationen mit dem benötigten Code in den Outlookinstallationen zu 'versorgen'
Genau diese Schwierigkeit hatte mich veranlasst, die Logik zum Aufrufen der Datenbank nicht in Outlook, sondern in einer zwischengeschalteten access-Anwendung zu implementieren.
Mal abgesehen, dass ich noch Lichtjahre davon entfernt bin, in Outlook ereignisgesteuerte Programme einzutragen.

Harald
Servus

bahasu

Hallo ebs,

danke für die Vorschläge.
Zitat von: ebs17 am August 17, 2012, 23:38:28
Die Suche per Google mit den Stichworten Outlook VBA Ereignisse dürfte weitere Quellen offenbaren.

Bei deren Studium, hatte ich allerdings den Eindruck, dass ich auf einem anderen Planeten gelandet bin.


Harald
Servus

database

Hallo Harald,

Zitatob das Öffnen von md_ vielleicht sogar permanent zuweisbar ist.
Davon würde ich Abstand nehmen.
Was wenn ein Scherzbold eine wichtige *.doc  als *.md_ versendet... (Bitte frag nicht wieso das jemand machen sollte ...  :D)

bahasu

Zitat von: database am August 18, 2012, 13:55:27
Hallo Harald,

Zitatob das Öffnen von md_ vielleicht sogar permanent zuweisbar ist.
Davon würde ich Abstand nehmen.
Was wenn ein Scherzbold eine wichtige *.doc  als *.md_ versendet... (Bitte frag nicht wieso das jemand machen sollte ...  :D)

Hi Peter,

ok, ich war selber solch ein Scherzbold und habe dabei die im Bild sichtbare Meldung bekommen.

Sieht noch annehmbar aus.
Jetzt bin ich erst einmal neugierig, ob ich in der Firma überhaupt die Rechte habe, solch eine Zuweisung zu machen.

Harald

[Anhang gelöscht durch Administrator]
Servus

database

#11
Hallo Harald,

da bin ich nochmal...

Kennst du diesen Link?
http://msdn.microsoft.com/de-de/library/office/ee814736.aspx

Darin befindet sich am Ende eine weiterführende Linkliste in der u.A.  folgender Link zu finden ist:

VBOffice VBA Beispiele

und darin wiederum wird eine Möglichkeit zum Öffenen einer Exel-Datei gezeigt
Excel-Datei aus Outlook öffnen

bahasu

Zitat von: database am August 18, 2012, 14:19:59

und darin wiederum wird eine Möglichkeit zum Öffenen einer Exel-Datei gezeigt
http://www.vboffice.net/sample.html?lang=de&mnu=2&smp=84&cmd=showitem

Hi Peter,

die ersten beiden hatte ich heute nach dem Hinweis von ebs ergoogelt, den dritten kannte ich noch nicht.
Soll das dann darauf hinauslaufen, dass ich in Excel die vba-Routinen einbaue, um die eigentliche Datenbank zu öffnen?
Wobei dann aber wieder das Problem ist, wie bringe ich die Zeilen auf verschiedene outlook-Anwendungen. Aus outlook konnte ich heute per vba auch die gewünschte "Zwischen"-access-Datenbank öffnen, aber auch hier gilt die Frage, wie verteile ich das, ohne an alle Rechner zu gehen.
Harald
Servus

database

Nein,

du musst dir ein passendes Ereignis für deine ERHALTENE Nachricht suchen und für dieses Ereignis definierst du IN OUTLOOK die Routine um die *.mdb zu starten.
Der Link zum Öffnen der Excel-Datei war nur als Beispiel gedacht um dir zu zeigen, dass eine Datei ausserhalb von Outlook per VBA aus Outlook heraus gestartet werden kann.

So wäre es vielleicht möglich, die Benutzer vorab mit der *.mdb zu versorgen um diese an einem definierten Speicherort abzulegen.
Aus der Mail heraus wird die Datei dann beim Eintreten des definierten Ereignisses die Datei geöffnet.

VBA-Code für Outlook kann nicht einfach herumgereicht werden, da die Programmierumgebung nicht dazu ausgelegt ist.
Code kann auf einem Rechner erstellt werden, muss dann aber EXPORTIERT werden und auf den anderen relevanten Maschinen IMPORTIERT werden um - in eben diesen anderen Outlook-Intallationen - verwendbar zu sein.
In dem ersten Link von oben findet sich auch eine Erklärung dazu unter 'Verteilen des Codes'

ebs17

Bezüglich Codeverteilung könnte auch das ein Hilfsmittel sein:
Rund um die VB-IDE

Somit solltest Du ein ausführbares Script erstellen können, was dann ein Benutzer nur noch zu starten hätte zzgl. der Bestätigung einiger Sicherheitsabfragen (die ich gerade bei Outlook erwarten würde).

MfGA
ebs
Mit freundlichem Glück Auf!

Eberhard