Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1864to1868
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Laufwerkmapping - Fehler in neuem BUILD

Laufwerkmapping - Fehler in neuem BUILD
07.01.2022 08:49:38
Klaus
Hallo Excel Kollegen,
ich nutze seit Jahren ein Makro, um eine Access-DB die auf meinem eigenem Computer unter C:\ liegt, von verschiedenen Computern aus dem Netzwerk berschreiben / auslesen zu lassen. Hier erstmal das bis gestern funktionale Makro, unwichtiges (Fehlerbehandlung usw.) habe ich zwecks besserer Lesbarkeit heraus gekürzt:

Option Explicit
Const MapIn      As String = "net use Y: \\de3dl14i\scanbox /Persistent:YES"        'Shell-Befehl zum mappen des Y-Laufwerks
Const MapOut     As String = "net use Y: /delete /YES"                              'Shell-Befehl zum ent-mappen des Y-Laufwerks
'*** Variablendeklaration Access
Public cmd     As ADODB.Command
Public con     As ADODB.Connection
Public rs      As ADODB.Recordset
Sub StandardAccessModul()
'*** Variablendeklaration
Dim mySql   As String
Shell MapIn, vbHide                 'Datenbanklaufwerk mappen
'*** EarlyBind des Access Objekts. Mode "Share Deny None" verhindert Datenbank-Schreibschutz
Set con = New ADODB.Connection
con.Open ConnectionString:="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Y:\MeineDatenbank.accdb;Mode=Share Deny none"
Set cmd = New ADODB.Command
cmd.ActiveConnection = con
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseServer
'*** Daten LESEN per SQL Kommando und in die Tablle schreiben
mySql = "Select * from [Table] where ..."
rs.Open mySql, ActiveConnection:=con, CursorType:=adOpenStatic, LockType:=adLockPessimistic, Options:=adCmdTableDirect
Tabelle1.Range("A1").CopyFromRecordset Data:=rs
rs.Close
'*** Daten SCHREIBEN in Datenbank per SQL Kommando
mySql = "Update [Table] Set ...."
cmd.CommandText = mySql
cmd.Execute
'*** Zurücksetzen.
On Error Resume Next: con.Close   'ErrorNext falls Con bereits geschlossen
Set cmd = Nothing
Set con = Nothing
Shell MapOut, vbHide              'un-map Datenbanklaufwerk
End Sub
Erklärung: Ich habe keine Server-Edition von Windows, daher dürfen nur 20 User gleichzeitig auf ein gemapptes Laufwerk (In diesem Makro Y:) zugreifen. Ich habe aber etwa 150 User auf meiner Datenbank! Um das Problem zu umgehen mappe ich das Y:-Laufwerk, führe dann das Datenbankkommando aus, und entmappe das Laufwerk dann wieder per Shell-Befehl. Das ist zwar etwas .... hanebüchen, aber es funktioniert. Bitte keine Ratschläge in Richtung "anderes OS oder richtige SQL Datenbankserver", das bekomme ich eh nicht genehmigt und umgesetzt :-)
Das Makro an sich muss eigentlich OK sein, da es auch heute noch auf etwa 100 Rechnern fehlerfrei läuft. Auf diesen Rechnern läuft Excel 365 "Version 2102 Build 13801.21050 Klick-und Los".
Es wird aber in diesem Moment ein Update auf Excel 365 "Version 2102 Build 13801.21086 Klick-und-Los" ausgerollt, das bereits die ersten 50 Rechner erreicht hat. Dieses Update wird automatisch eingespielt und ich kann es nicht verhindern. Jetzt das kuriose: Das identische Makro führt unter diesem aktuellerem BUILD zu folgender Fehlermeldung in der Zeile "con open":
Fehlernummer -2147467529: Datei konnte nicht gesperrt werden.
Noch kurioser: das Y:\ Laufwerk ist in diesem Moment über den Explorer anwählbar! Das Mapping an sich erzeugt also keine Fehler. Die Access Version kann eigentlich nicht relevant sein - auf dem Computer wo die ACCDB liegt ist Access nicht mal installert ....
Leute, das Thema übersteigt meinen Horizont leider um weiten. Wenn jemand kurzfristig helfen kann, spende ich in seinem Namen privat 50€ an gemeinnützige Zwecke!
Liebe Grüße,
Klaus M.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
gelöst mit neuestem Build
10.01.2022 10:36:40
Klaus
Falls es jemanden interessiert oder fürs Archiv: Der Acces-Bind funktioniert unter Version 2102 (Build 13801.20.92 Klick-und-Los) wieder einwandfrei.
LG,
Klaus M.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige