Hallo!
Ich möchte unter Windows 10, Access 2016, auf LW C: ein Textfile anlegen. Bekomme aber die Meldung "Kein Zugriff auf Datei/Pfad". Die Berechtigungen sind alle erteilt.
Sollte wer einen Tipp haben wie man es per VBA lösen könnte dann besten dank im voraus
mfg
Peter
Hallo,
ist "C:\" bei den "vertrauenswürdigen Speicherorten" mit aufgenommen?
Hallo,
und warum zeigst Du nicht den Code der zum Fehler führt ?
Zitat von: PeterWa am August 08, 2017, 14:42:20Ich möchte unter Windows 10, Access 2016, auf LW C: ein Textfile anlegen. Bekomme aber die Meldung "Kein Zugriff auf Datei/Pfad". Die Berechtigungen sind alle erteilt.
Die Berechtigungen solltest du nochmal genau Prüfen. Normalerweise hat ein normaler Benutzer auf Root-Verzeichnis des Systemlaufwerkes explizit keine Schreibrechte.
Kannst du mit Notepad o.ä. dort speichern?
Hallo!
Das Problem ist, wenn ich das File in das Temp-Verzeichnis schreibe "FSO.GetSpecialFolder(TemporaryFolder)" dann klappt ja alle. Wenn ich mit einen Ooptimierungstool über die Festplatte gehe werden alle Dateien im Tem-Verzeichniss gelöscht. Ich habe versucht wenn ich die Datei mit Attrib Verstecke. Aber Sie wurde auch dann gelöscht. Bei Windows7 gab es das Problem nicht. Windows 10 ist eben anders. wenn ich mit einen Editor dort speichern will Kommt die Meldung:"Sie vverfügen nicht über die Rechte" Wenn ich eine Datei mit STRG-V Speichern will, kommt die Meldung "Sie haben keine Rechte" "Fortsetzten" "Überspringen" "Abbruch". Bei Fortsetzen wird kopieert.
If BASDialog.fnFileExist(FSO.GetSpecialFolder(WindowsFolder) & "\SysDat.dat") = False Then
FileNum = FreeFile
Open FSO.GetSpecialFolder(WindowsFolder) & "\SysDat.dat" For Output As #FileNum
Print #FileNum, datDatum
Close #FileNum
mfg
Peter
Open for Output.
Was könnte das bedeuten ???
Hallo,
Vorschlag:
(Sofern als Administrator angemeldet)
Laufwerk c:\ mit Explorer anzeigen. Rechtklick für Kontextmenü und Reiter "Sicherheit" anklicken. Mit Markieren des jeweiligen Benutzernamens und "Bearbeiten" alle Rechte ("Vollzugriff") einstellen. Mit OK abschließen.
Vorherigen Beitrag bzgl. "Vertrauenswürdigen Speicherorte" zur Kenntnis nehmen.
Hallo!
Das alles wurde schon gemacht. Der Schreibschutz lässt sich nicht entfernen. Mir wurde gesagt das das ein Problem von Windows 10 ist.
mfg
Peter
Hallo,
das ist kein Problem von Windows 10, sondern eine gewollte Eigenschaft bei Win10, standardmäßig nicht auf das Root-Verzeichnis (Normalfall C:\ ) des Betriebssystems schreiben zu dürfen.
Dass sich der Schreibschutz nicht entfernen läßt, ist schlichtweg falsch. Ich habe das schon mehr als einmal durchgeführt.
Dazu ist die Anmeldung als Administrator erforderlich.
Evtl. ist noch der Befehl
icacls c:\ /setintegritylevel M
auszuführen.
Zitat von: PeterWa am August 09, 2017, 11:57:32Das Problem ist, wenn ich das File in das Temp-Verzeichnis schreibe "FSO.GetSpecialFolder(TemporaryFolder)" dann klappt ja alle.
Dein Problem scheint mir nicht technischer, sondern konzeptioneller Natur zu sein.
Dass Dateien im Temp-Verzeichnis gelöscht werden, sollte nicht die große Überraschung sein. Ebenso hat es durchaus seinen Sinn, dass nicht irgendwelche Applikationen das Root-Verzeichnis des Systemlaufwerks vollmüllen können.
Es gibt eine Menge an speziellen, vordefinierten Verzeichnissen.
Hier eine Liste: https://msdn.microsoft.com/en-us/library/s2esdf4x(v=vs.100).aspx
Die Verzeichnisse mit "Data" im Namen dürften für deinen Zweck am besten geeignet sein.
Also such dir besser einfach ein sinnvolles Verzeichnis aus, als mit aller Gewalt unbedingt auf das C-Root zu schreiben zu wollen.
Hallo!
Erst einmal besten dank für diesen Tipp!
Ich habe jetzt aber ein Problem mit der Realisierung!
Ich gehe davon aus das "Common Application Data Folder" in
" FSO.GetSpecialFolder(TemporaryFolder)"
eingetragen wird. Anstedt zB "TemporaryFolder".
Oder liege ich hier komplett falsch?
mfg
Peter
Zitat von: PeterWa am August 10, 2017, 13:38:19
Ich gehe davon aus das "Common Application Data Folder" in
" FSO.GetSpecialFolder(TemporaryFolder)"
eingetragen wird. Anstedt zB "TemporaryFolder".
Das wäre naheliegend, funktioniert aber nicht. Leider ist die
GetSpecialFolder-Methode des FileSystemObject sehr eingeschränkt und dadurch nahezu nutzlos.
Du kannst mit der
Environ-Funktion den echten Pfad einer Variable ermitteln und diesen Pfad dann an die normale GetFolder-Methode des FileSystemObjects übergeben.
Beispiel:
Set myFolder = fso.GetFolder(Environ("ProgramData"))
Hier ist noch eine Liste der (System-)Variablennamen für gängige Verzeichnisse.
https://www.microsoft.com/en-us/wdsi/help/folder-variables
Hallo Phils!
Besten Dank für deine Tipps! Es Funktioniert wie ich es mir vorgestellt habe.
Zitat
Leider ist die GetSpecialFolder-Methode des FileSystemObject sehr eingeschränkt und dadurch nahezu nutzlos.
Ich habe mir das zu herzen genommen und die FSO Weggelassen. funktioniert genauso.
Ich hätte bei dieser Gelegenheit noch eine Zusatzfrage:
Ich habe gehört das Microsoft ADO ab 2018 nicht mehr unterstützt. Ist das eine Ente, Gerücht oder ist an dem was wahres dran?
Nochmals besten Dank für dein e Unterstützung!
mfg
Peter
Zitat von: PeterWa am August 22, 2017, 18:18:59Ich habe gehört das Microsoft ADO ab 2018 nicht mehr unterstützt. Ist das eine Ente, Gerücht oder ist an dem was wahres dran?
Die Antwort dazu in einem neuen Thread: Support für ADO endet? (http://www.access-o-mania.de/forum/index.php?topic=22641.msg132022#msg132022)