DSN 或者你把数据库放到app.path
或者让用户自己选好多方法,看你的情况了

解决方案 »

  1.   

    写一个INI文件
    定义数据库路径这样以后数据库路径改变的话
    改一下INI文件
    就行了
      

  2.   

    to wangsitao
      请问如果写INI文件呀?这就是最终想要的答案?谢谢,快快回答,当场给分!
      

  3.   

    用API
    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
      

  4.   

    用API
    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
      

  5.   

    你在程序中用的是静态路径,把你程序中表示路径的地方换成“APP.Path”
    "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过去就行了!
      

  6.   

    用APP.PATH 时有一点要注意:
    当 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"
      

  7.   

    dim strPath as String
    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"