让VB程序开机自动运行,却提示“C:\Documents and Settings\User\中找不到数据库”,求救!我的这个程序主要是VB+access+adodc我的这个软件又不是装在“C:\Documents and Settings\User\”下,怎么会这样提示呢?哪位大哥帮帮忙?谢谢先!!!
该部分原程序如下:Private Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As LongPrivate Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As LongPrivate Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As LongPrivate Declare Function RegdeleteValue Lib "advapi32.dll" Alias "RegdeleteValueA" (ByVal hKey As Long, ByVal lpSubKey As String) As LongPrivate Const HKEY_LOCAL_MACHINE = &H80000002
Private Const REG_SZ = 1Dim strString As String
Dim keyhand As LongstrString = App.Path & "\" & App.EXEName & ".exe"
RegCreateKey HKEY_LOCAL_MACHINE, "software\microsoft\windows\currentversion\run", keyhand
RegSetValue keyhand, "", REG_SZ, ByVal strString, LenB(StrConv(strString, vbFromUnicode)) + 1
RegCloseKey keyhandOpen "calendar2" For Output As #1
Write #1, "True"
Close #1

解决方案 »

  1.   

    问题在于程序内部数据库路径你使用了绝对路径,然后在这个下面没找到access数据库文件
      

  2.   

    将数据库放在程序目录下,在代码中用app.path 表示程序所在目录
      

  3.   

    我想到了两种可能:
    (1)使用了绝对路径,比如C:\Documents and Settings\User\xxxx.mdb,而安装后的计算机上没有。
    (2)难道楼主是在vista系统上运行?(vista有一个虚拟路径的概念,参考vista的uac机制)