DSN 或者你把数据库放到app.path
或者让用户自己选好多方法,看你的情况了
或者让用户自己选好多方法,看你的情况了
解决方案 »
- adodc設置有錯嗎?
- 需要将大量数据(文本格式)使用VB导入MSSQL ,求实现的代码!
- 求在sqlserver数据库中,从一个表中选出某字段为null的记录集的sql!谢谢
- 这是vb程序调试的ftp的结果,谁能帮忙看看为什么出现命令不对,不认识的情况?
- 请问DATA控件能连接ACCESS2000数据库吗?高分求教!!
- 请问:如何将SQL数据库中的一条纪录的各个字段值导入到一个数组中!
- 急!急!急!请问专家:如何在vb中给excel的表格画上边框?
- 请问要如何才能让vb知道有那些程序正在运行?并将它们显示在列表框中?谢谢!
- combox控件,答对者有奖!!
- 请教一个VB控件互动的问题?
- 请教各位大仙一个关于MDIForm子窗体显示的问题,急!急!急!
- 用ADODB.Recordset在更新数据时为何不能使用vb的变量?(急)(给分)
定义数据库路径这样以后数据库路径改变的话
改一下INI文件
就行了
请问如果写INI文件呀?这就是最终想要的答案?谢谢,快快回答,当场给分!
Declare Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String, ByVal lpFileName As String) As LongDeclare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As LongDeclare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
写INIWritePrivateProfileString("modem", "com", "com1", "yd.ini")结果是:
[moden]
com=com1
Declare Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String, ByVal lpFileName As String) As LongDeclare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As LongDeclare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
写INIWritePrivateProfileString("modem", "com", "com1", "yd.ini")结果是:
[moden]
com=com1
"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Mode=ReadWrite;Data Source= D:\abc\ABC.mdb"
改为
"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Mode=ReadWrite;Data Source= " & App.Path & "\" & "ABC.mdb"
这样,你的数据库就和你的程序在同一目录了,不论你的程序放在什么目录,只要把数据库COPY过去就行了!
当 APP.PATH 为跟目录时返回如:C:\\apc.mdb(这显然是错误的)
当 APP.PATH 不为跟目录时返回如:C:\windows\abc.mdb(正确)解决方法如下:
function checkpath(byval spath as string) as string
if right$(spath,1)="\" then
checkpath=spath
else
checkpath=spath & "\"
end if
end function调用时:
"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Mode=ReadWrite;Data Source= " & checkpath(App.Path) & "ABC.mdb"
strPath=iif(right$(app.path,1)="\",app.path,app.path & "\")调用时:
"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Mode=ReadWrite;Data Source= " & StrPath & "ABC.mdb"