'操作ini文件 Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _ (ByVal lpApplicationName As String, lpKeyName As Any, ByVal lpDefault As String, _ ByVal lpRetunedString As String, ByVal nSize As Long, ByVal lpFileName As String) As LongPrivate Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _ (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, _ ByVal lplFileName As String) As LongPrivate r As Long Public inipath As String
'从setup.ini读信息 Public Function GetMyINI(AppName As String, KeyName As String, FileName As String) As String Dim RetStr As String RetStr = String(255, Chr(0)) GetMyINI = Left(RetStr, GetPrivateProfileString(AppName, ByVal KeyName, "", _ RetStr, Len(RetStr), FileName)) End Function'设置setup.ini Public Sub SetMyINI(AppName As String, KeyName As String, entry As String, FileName As String) r = WritePrivateProfileString(AppName, KeyName, entry, FileName) If r <> 1 Then MsgBox "出错啦!" End SubPrivate Sub Command1_Click() writeSetupIni readSetupIni End SubPrivate Sub writeSetupIni() '写入setup.ini没有时可以创建。 SetMyINI "connection", "connstr", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\data\db1.mdb;Persist Security Info=False;Jet OLEDB:Database Password=123456", App.Path & "\setup.ini"
End SubPrivate Sub readSetupIni() '读取连接串 Dim tmp As String tmp = GetMyINI("connection", "connstr", App.Path & "\setup.ini") MsgBox tmp
建议查查ini的api,网上大把。
完全的代码我没有也不会提供。
http://download.csdn.net/source/1498324
'操作ini文件
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, lpKeyName As Any, ByVal lpDefault As String, _
ByVal lpRetunedString As String, ByVal nSize As Long, ByVal lpFileName As String) As LongPrivate Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, _
ByVal lplFileName As String) As LongPrivate r As Long
Public inipath As String
'从setup.ini读信息
Public Function GetMyINI(AppName As String, KeyName As String, FileName As String) As String
Dim RetStr As String
RetStr = String(255, Chr(0))
GetMyINI = Left(RetStr, GetPrivateProfileString(AppName, ByVal KeyName, "", _
RetStr, Len(RetStr), FileName))
End Function'设置setup.ini
Public Sub SetMyINI(AppName As String, KeyName As String, entry As String, FileName As String)
r = WritePrivateProfileString(AppName, KeyName, entry, FileName)
If r <> 1 Then MsgBox "出错啦!"
End SubPrivate Sub Command1_Click()
writeSetupIni
readSetupIni
End SubPrivate Sub writeSetupIni() '写入setup.ini没有时可以创建。
SetMyINI "connection", "connstr", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\data\db1.mdb;Persist Security Info=False;Jet OLEDB:Database Password=123456", App.Path & "\setup.ini"
End SubPrivate Sub readSetupIni() '读取连接串
Dim tmp As String
tmp = GetMyINI("connection", "connstr", App.Path & "\setup.ini")
MsgBox tmp
End Sub
其次是串中使用使用app.path也是错,读进去后app.path只是串的一部分,并不能提供相对路径。
第三,即然外部ini文件能提供路径,那么相对路径也就没有用的必要了,你在串里直接写绝对路径也就是了。
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=data\db1.mdb;Persist Security Info=False以上的写法在ADO读路径时会取:当前工程所在文件夹下的data文件夹下的db1.mdb,以后你在ini里也可使用绝对路径或相对路径。
Path="\data\db1.mdb"
password="123456"到了客户端用程序代码得到 app.path & 读取ini得到的子路径与文件名, 再读密码代码中写好"固定"的 provider=......再加上上面的路径 再加上 password 这样才会灵活