DAO in freigegebenen Arbeitsmappen Excel 2007

Liebe/-r Experte/-in,
ich habe eine Excel Arbeitsmappe unter Excel 2003 erstellt. Darin habe ich einen Code geschrieben, der mit DAO auf eine andere Excel- Datei zugreift.
CODE:
Set db = OpenDatabase(strAA, True, True, „Excel 8.0“)

Diese Arbeitsmappe ist für die Zusammenarbeit mehrere User freigegeben. Das hat alles gut funktioniert.
Wir wurden nun auf Excel 2007 umgestellt.
Ich habe die Datei in eine xlsm umgewandelt und gespeichert.
Wenn ich jetzt im freigegebenen Modus versuche auf die 2. Excel zu zugreifen, erhalte ich die Fehlermeldung 3274.
Wenn ich auf die gleiche Tabelle im nicht freigegebenen Modus zugreife erhalte ich diese Fehlermeldung nicht. Hier läuft die Prozedur einwandfrei durch.
hat dort jemand erfahrungen mit?
mfg

Hallo Klingon33,

nach meiner Meinung (und Erfahrung) werden bei Excel2007 nur dann Makros ausgeführt, wenn sie in einem als sicher bezeichnetem Bereich liegen. (Excel-Optionen - Vertrauensstellungscenter - Einstellungen … Vertrauenswürdige Speicherorte) Nur wenn die Dateien in einem Vertrauenswürdigen Speicherort liegen, dann wird der Code ausgeführt!.

Bitte noch mal melden, wenn es nicht daran lag.

Grüße aus Nürnberg

Jürgen

Hallo,

ja genau. Die Datei liegt bei mir im Netzwerk und da habe ich das Problem dass der Admin das nicht als Sicher eingestellt hat. Werden wir korrigieren lassen müssen.
Danke und Gruß aus Potsdam

Hallo Klingon33 (was auch immer Du mit diesem Namen ausdrücken willst *G*),

der Fehlercode 3274 ist von MICROSOFT leider nicht genau definiert, aber soweit ich weiß, kann man mit DAO (und auch mit ADO) nur auf geschlossene Dateien zugreifen. Sollte das Dein Problem sein, also ein Nutzer die Tabelle auf haben, sehe ich nur eine ‚schnelle‘ Lösung:

  • Kopiere die Datentabelle am Anfang von Deinem Script nach z.B. C:\TEMP\tmp.xlsm
  • Führe Deine Abfragen auf diese temporäre Datei aus
  • Lösch die temporäre Datei wieder

Wenn die Datei im Netz liegt, sollte als Nebeneffekt auch eine höhere Performance als Folge bemerkbar sein.

Falls das nicht Dein Problem ist, brauche ich für eine genauere Analyse mehr Code *G*, denn eine Zeile sagt leider nichts aus.

Mit freundlichen Grüßen,
Burkhard

Nachtrag :
Ich sehe gerade, das Du mit EXCEL2007 auf Set db = OpenDatabase(strAA, True, True, „Excel 8.0“ ) zugreifen willst… ich benutze EXCEL2010 und da ist es 14.0, also vermute ich mal, das es bei EXCEL2007 12.0 oder 13.0 sein sollte (schau mal in der IDE unter Extras-> Verweise nach). 8.0 geht eindeutig von xls oder xlt aus.

tut mir leid, habe den Fehler nie bekommen…