![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Mich würde interessieren, wie man in Access den freien Plattenplatz auf einem Laufwerk bzw. Netzlaufwerk / Netzordner überprüfen kann.
Weil es kann sein, dass während der Laufzeit die Datenbank ziemlich groß wird (>1GB). Und wenn dann gerade ein Modul läuft und keinen Platz mehr zum Speichern hat, könnt da gröber was schief gehen. Meine Idee wäre übers Filesystemobject.... (nur eine Vermutung - noch nicht probiert) Naja, danke schon mal für die Ideen. |
![]() |
![]() |
![]() |
#2 |
Inventar
![]() Registriert seit: 08.02.2000
Beiträge: 1.696
|
![]() Die Idee ist richtig
![]() Ich weiß jetzt zwar selber nicht genau, wie es geht, aber über das FSO sollte es möglich sein. Ansonsten verwende die Win32-API! mfg
____________________________________
Sex is like hacking. You get in, you get out, and you hope you didnt leave something behind that can be traced back to you. |
![]() |
![]() |
![]() |
#3 | |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Zitat:
![]() Aber ich habs halt gleich dazu geschrieben, weil ich mir eben nicht 100%ig sicher war obs geht. Jetzt muss ich nur noch rausfinden, wo das im Programm am geschicktesten wäre. Weil sonst frisst das viel zu viel Performance. |
|
![]() |
![]() |
![]() |
#4 |
Veteran
![]() Registriert seit: 10.01.2001
Beiträge: 478
|
![]() Also ich glaube offengesagt nicht, dass diese Funktion besonders viel Performance frisst (sofern man sie nicht 10 mal in der Sekunde aufruft
![]() Verweis auf "scrrun.dll" und gib ihm. Public Sub FreeSpace() Dim FileSys As FileSystemObject Dim drvCheck As Drive Dim FreeSpace As String Set FileSys = New FileSystemObject Set drvCheck = FileSys.GetDrive("C:") FreeSpace = Format(drvCheck.FreeSpace / (2 ^ 30), "#.000") FreeSpace = Left(FreeSpace, Len(FreeSpace) - 1) & " GB" MsgBox FreeSpace End Sub |
![]() |
![]() |
![]() |
#5 | |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Zitat:
Naja, es kommt darauf an wo das Ding positioniert ist. Weil es geht ja darum, in einer Schleife zu checken ob er noch weiter machen kann (Datansätze erstellen), oder ob die Platte schon voll ist. Ich müsst mir aber erst anschaun wo das sein soll, bzw. der der das Modul geschrieben hat tut dies und ich stell nur die Funktion bereit (sowas was du geschrieben hast - danke dafür, dann brauch ich es mir nciht raus suchen ![]() Oder man checkt das beim Formular/Modulaufruf - und gibt eine "Warnmeldung" aus, wenn der freie Platz unter einen gewissen Wert gefallen ist. ![]() btw - passt zwar nicht dazu, aber du hast mal davon gesprochen, dass du Office 2k Developer verwendest. Gibts so eine Edition auch für XP, weil ich davon eigentlich noch nix gehört hab. ![]() |
|
![]() |
![]() |
![]() |
#6 |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Nachtrag:
hab mich grad gewundert wofür du einen Verweis auf die scrrun.dll setzt. Dann hab ich nachgeschaut und gesehen, dass das die Scripting Runtime ist. Das coole daran ist aber, ich verwend in dem Projekt schon öfter das FSO, hab aber noch nie den Verweis gesetzt. Das ganze hab ich auch schon mal mit deaktiviertem VBScript auf einer Maschine getestet - und da hats genauso funktioniert. Jetzt stellt sich natürlich wieder die frage: WARUM GEHT DAS TROTZDEM!? ![]() |
![]() |
![]() |
![]() |
#7 |
Veteran
![]() Registriert seit: 10.01.2001
Beiträge: 478
|
![]() Zur Zeit treibe ich mit OfficeXP und dem "Microsoft Office XP Developer" mein Unwesen. Es gibt ihn also durchaus. Natürlich ist er bei weitem nicht so verbreitet wie Office allein. Wenn man nicht gerade Anwendungen schreibt die von vielen Personen verwendet werden sollen braucht man ihn ja auch nicht wirklich. Spätestens aber bei der ersten Notewendigkeit eine Access-Anwendung auf 100 Rechnern mit verschiedenen Windows-Versionen zu installieren erweist er sich als sehr nützlich
![]() Betreffend scrrun.dll: Manche Verweise setze ich eigentlich nur wegen der Libraries auch wenn es ohne Verweis genauso funktionieren würde. Ausserdem müssen verwendete Komponenten ja ohnehin geladen werden. Da mach ich's lieber gleich explizit als implizit. Warum die Sache auch mit deaktiviertem VBScript funktioniert darfst du mich allerdings nicht fragen. Ich kann mir nur vorstellen, dass eine Scripting-Komponente die aus einer Executable heraus verwendet wird nicht als eigentliches Script gilt. Es geht ja nur um die Sicherheit und mit einer EXE kann ich ohnehin alles anstellen was mir in den Sinn kommt. Ob ich da jetzt das FSO verwende oder nicht macht ja im Endeffekt nicht wirklich einen Unterschied. Zur Plazierung: Wenn Datensätze einzeln erstellt werden, könntest du ja z.B. über "if aktuellerDatensatz mod X = 0 then" deine Abfrage starten. Wenn du z.B. nach jedem geschriebenen MB eine Überprüfung machen willst müsstest du ja nur X auf "1024 / DurchschnittlicheSatzgrösseInKB" setzen. |
![]() |
![]() |
![]() |
#8 | |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Zitat:
Nur ists mir jetzt wieder in den Sinn gekommen, weil es ja ohne expliziten Verweis auch funktioniert. ![]() |
|
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|