Hallo vielleicht kennt jemand von euch diese Objekte aus VB.
Mein Problem wenn ein Recordset geöffnet wird – wird eine Temporäre Datei auf c:\ angelegt “ ac.tmp“ – wie sage ich VB er soll diese Datei woanders hinlegen ?
danke
Hi!
Wenn ich das richtig verstehe wird die Datei im Temporären Ordner gespeichert. Wo sich dieser befindet beschreibt die Systemvariable TEMP. Diese kannst du per Hand oder aber auch per Code ändern.
Per Hand geht das so:
->SystemSteuerung
->System
->Registerkarte Erweitert (von Systemeigenschaften)
->Umgebungsvariablen
->Bearbeiten
Wenn dein Programm das erledigen soll geht das auch mit folgendem Code:
Option Explicit
Private Declare Function SetEnvironmentVariable \_
Lib "kernel32" Alias \_
"SetEnvironmentVariableA" \_
(ByVal lpName As String, \_
ByVal lpValue As String) As Long
Private Declare Function GetEnvironmentVariable \_
Lib "kernel32" Alias \_
"GetEnvironmentVariableA" \_
(ByVal lpName As String, \_
ByVal lpBuffer As String, \_
ByVal nSize As Long) As Long
Dim m\_SavePath As String ' Form oder App.-globale Variable
Sub ChanceTempPath()
Dim sBuffer As String
Dim lResult As String
Dim lLength As Long
'Pfad zum Temp-Verzeichnis ermitteln
sBuffer = String(256, 0)
lLength = GetEnvironmentVariable("TEMP", \_
sBuffer, Len(sBuffer))
If lLength \> 0 Then
m\_SavePath = Left$(sBuffer, InStr(sBuffer, \_
vbNullChar) - 1)
End If
MsgBox "Alter Temp-Pfad: " & m\_SavePath
'Pfad zum Temp-Verzeichnis neu setzen
lResult = SetEnvironmentVariable("TEMP", "E:\Temp")
'Testen
sBuffer = String(256, 0)
lLength = GetEnvironmentVariable("TEMP", \_
sBuffer, Len(sBuffer))
If lLength \> 0 Then
MsgBox "Neuer Temp-Pfad: " & \_
Left$(sBuffer, InStr(sBuffer, vbNullChar) - 1)
End If
'Und wieder zurücksetzen
lResult = SetEnvironmentVariable("TEMP", m\_SavePath)
End Sub
Gruß, Phil