Designer / DataEnvironment

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