Collapse column

Autor Thema: Office 2003: Access-Datenbank schreibgeschützt??  (Gelesen 3764 mal)

Offline Lausitzkater

  • Newbie
  • *
  • Beiträge: 1
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Gut
  • Version [Office] : Office 2003
Office 2003: Access-Datenbank schreibgeschützt??
« am: Dezember 26, 2011, 14:53:17 Nachmittag »
Hallo alle zusammen,

Ich habe eine Excel-Datei, welche auf einem Netzlaufwerk liegt.
Von den betreffenden Usern wird diese Excel-Datei, um mit dieser zu arbeiten, auf die lokale Festplatte kopiert
und anschließend geöffnet. Excel greift dabei auf eine Access-Datenbank zu, damit mehrere User gleichzeitig mit den Daten arbeiten können. Der Zugriff auf die Datenbank erfolgt auch nur dann, wenn er notwendig ist; sprich: Nach jedem Zugriff auf Daten wird die Datenbank wieder geschlossen.

Das Problem was jetzt auftritt ist, das sich die Datenbank irgendwie selber einen Schreibschutz "verpasst" und man somit keinen Zugriff mehr auf diese erhält. Somit ist ein Arbeiten nicht möglich.

Wenn ich selber in Access die Datenbank öffne, erhalte ich auch die Warnung, das die Datenbank schreibgeschützt ist.

Kopiere ich aber die Datei und öffne sie dann, habe ich wieder vollen Zugriff.

Wer kann mir weiterhelfen?? Was ist die Ursache des Schreibschutzes?? Und wie kann ich verhindern, das die Datenbank schreibgeschützt wird??

Hier mal ein Beispiel, wie auf die Datenbank zugegriffen wird:

Sub Datenbankverbindung_aufbauen()
    Dim strDatei As String
    Set connDB = New ADODB.Connection
    strDatei = U:\Datenbank\2012.mdb"
    With connDB
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .Mode = adModeReadWrite
        .Open "Data Source=" + strDatei + ";Persist Security Info=False;Jet OLEDB:Database; Password=TTTTTT"
    End With
End Sub


Sub Mitarbeiterdaten_Recordset_lesen()
    Call Datenbankverbindung_aufbauen
    Set rsMitarbeiterdaten = New ADODB.Recordset
    strSQL = "SELECT Mitarbeiterdaten.Name, Mitarbeiterdaten.Tätigkeit, Mitarbeiterdaten. _
Schicht, Mitarbeiterdaten.Schichtsystem, Mitarbeiterdaten.Beginn, Mitarbeiterdaten.Ende, Mitarbeiterdaten.Pos, Mitarbeiterdaten.Zusatztage, Mitarbeiterdaten.SilvesterAlt, Mitarbeiterdaten.ResttageUrlaubAlt, Mitarbeiterdaten.ResttageAbbummelnAlt, Mitarbeiterdaten.Anzeigebereich FROM Mitarbeiterdaten;"
    rsMitarbeiterdaten.Open strSQL, connDB, adOpenForwardOnly, adLockOptimistic
End Sub


Sub Mitarbeiterdaten_lesen()
    Call Mitarbeiterdaten_Recordset_lesen
    rsMitarbeiterdaten.MoveFirst
    intAA = 3
    While Not rsMitarbeiterdaten.EOF
        intAA = intAA + 1
        Cells(intAA, 1).Value = rsMitarbeiterdaten("Name")
        Cells(intAA, 2).Value = rsMitarbeiterdaten("Tätigkeit")
        Cells(intAA, 3).Value = rsMitarbeiterdaten("Schicht")
        Cells(intAA, 4).Value = rsMitarbeiterdaten("Schichtsystem")
        Cells(intAA, 5).Value = rsMitarbeiterdaten("Pos")
        Cells(intAA, 6).Value = rsMitarbeiterdaten("Beginn")
        Cells(intAA, 7).Value = rsMitarbeiterdaten("Ende")
        rsMitarbeiterdaten.MoveNext
    Wend
    rsMitarbeiterdaten.Close
    Set rsMitarbeiterdaten = Nothing
    Set connDB = Nothing
End Sub

Über Call Mitarbeiterdaten_lesen wird die Prozedur gestartet. Das Recordset wird gelesen (mit öffnen der Datenbank). Nachdem die Datenausgelesen sind, wird das Recordset und die Datenbank geschlossen.

Gruß Thomas

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline Stefan L.

  • Newbie
  • *
  • Beiträge: 2
    • Profil anzeigen
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2007
Antw:Office 2003: Access-Datenbank schreibgeschützt??
« Antwort #1 am: Dezember 28, 2011, 13:25:49 Nachmittag »
Hallo Thomas,

da die Access-Datenbank schreibgeschützt geöffnet wird, selbst dann, wenn Du sie direkt in Access öffnest, liegt das Problem sicher nicht im VBA-Code über den Du von Excel aus auf die Datenbank zugreifst.

Ich vermute, dass Du in dem Verzeichnis in dem sich die Access-Datenbank befindet keine Schreibrechte besitzt.

Gruß
Stefan

Offline Thomas Ramel

  • Global Moderator
  • Newbie
  • *****
  • Beiträge: 25
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2010
Antw:Office 2003: Access-Datenbank schreibgeschützt??
« Antwort #2 am: Dezember 29, 2011, 21:45:56 Nachmittag »
Grüezi Thomas

Warum ist denn dieser Aufbau in 3 Teile zerstückelt?
Das bedingt die Verwendung globaler Variabeln, deren Deklaration hier noch fehlt.

Einfacher und geradliniger wär es doch IMO, wenn der Code in eine einzelne Sub gepackt würde.

Kann es sein, dass Du noch connDB.Close einfügen musst, also nicht bloss das Recordset sondern auch die Verbindung noch schliessen bevor Du alle Objekt-Variablen zerstörst?

Mit freundlichen Grüssen

Thomas Ramel
- MVP für MS-Excel -

Wenn du dich noch intensiver mit Excel beschäftigen möchtest, dann empfiehlt sich ein Online-Kurs,
in dem du sehr viel über Excel erfährst und das gelernte umgehend in der Praxis anwenden kannst.