我做了一个form,上面有adodc控件和datagrid控件,在设置adodc的connectionstring时好像只能用绝对路径,于是我在form_load里面加了这几句:
Dim strprovider As String
Dim strdatasource As String
strdatasource = App.Path & "\database.mdb"
strprovider = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strdatasource + ";Persist Security Info=False"
Adodc1.ConnectionString = strprovider
Adodc1.Refresh但是运行的时候还是会提示我原来在adodc属性里面设的路径不存在了,我把它设为空的也会报错:
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
但是后面datagrid还是能按照我在form_load的设置显示正确的数据库内容,只是一只会有这个提醒跳出来
难道一定要制定一个给adodc1吗?但是我想用相对路径怎么办?

解决方案 »

  1.   

    path_Sys = App.PathMe.adoPos.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path_Sys & "\ShipDb.mdb;Persist Security Info=False"
    Me.adoPos.RecordSource = "select * from tb_ShipPos"
    Me.adoPos.Refresh我的没有问题啊
      

  2.   

    程序未保存??所以APP.PATH不对吧
      

  3.   

    adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\database.mdb"
    + ";Persist Security Info=False"
    可以用相对路径:".\"
      

  4.   

    我可以用msgbox打印出来Adodc1.ConnectionString是对的,会不会是adodc的属性初始化比form_load里面的设置还要早,所以他在初始化adodc的属性时发现此时ConnectionString是空的或者不对的,然后再一次用form_load里面的设置一遍ConnectionString,这时结果是对的。但是在form出来前总是有那个对话框跳出来。 jxgzay(jxgzay) 的方法应该可以,但是不够通用啊
      

  5.   

    呵呵,你是在调试状态下出错吧?因为 VB 的 App.Path 是它的安装路径。直接双击工程文件启动 VB,或编译成 .exe 文件直接运行试试。