Collapse column

Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Nachrichten - Lausitzkater

Seiten: [1]
1
Excel / 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

Seiten: [1]