Ciao
Sto usando MS ACCESS 2007 e Windows 7 64 bit
Non so cosa sia il ptrsave
Il codice l'ho inserito nella sezione Moduli-> Funzione di VBA di access
questo è il codice
Option Explicit
'managing INI files
'from an idea of Scott Lyerly
'read INI
Public Declare Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String) As Long
'write INI
Public Declare Function WritePrivateProfileString Lib "kernel32" _
Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal lpString As String, _
ByVal lpFileName As String) As Long
Function ini_manager(action As String, section As String, key As String, _
Optional value As String) As String
' in questa costante memorizziamo il percorso e il nome del file ini da leggere/scrivere
Const INI_FILE As String = "C:\Temp\PJ.INI"
Dim sRetBuf As String
Dim iLenBuf As Integer
Dim sReturnValue As String
Dim lRetVal As Long
On Error GoTo gest_err
Select Case LCase(Left(action, 1))
Case "r" 'READ INI
' alloca lo spazio necessario
sRetBuf = Space(256)
iLenBuf = Len(sRetBuf)
' recupera la sezione INI e la chiave cercata
sReturnValue = GetPrivateProfileString(section, key, "", sRetBuf, _
iLenBuf, INI_FILE)
' pulisce il valore di ritorno
sReturnValue = Trim(Left(sRetBuf, sReturnValue))
' restituisce il valore cercato oppure "Error"
If Len(sReturnValue) > 0 Then
ini_manager = sReturnValue
Else
ini_manager = "Error"
End If
Case "w" 'WRITE INI
' ritorna errore se non esiste la sezione che si tenta di scrivere
If Len(value) = 0 Then
ini_manager = "Error"
Else
' scrive il valore specificato nella chiave della sezione indicata
If ini_manager("r", section, key) <> "Error" Then
lRetVal = WritePrivateProfileString(section, key, value, _
INI_FILE)
Else
lRetVal = 0
End If
' controlla se la procedura restituisce un valore di errore
If lRetVal = 0 Then ini_manager = "Error" Else ini_manager = "Ok"
End If
Case Else
' solo w e r sono ammesse. Altre codifiche restituiscono errore
ini_manager = "Error"
End Select
Exit Function
gest_err:
MsgBox Err.Number & ": " & Err.Description, vbInformation, "INI Manager"
End Function