我用datagrid控件通过数据控件 adodc 来绑定到我的数据库文件!
我通过 “adodc 属性”手工设置各选项后,能在datagrid 中看到相应数据!
但这样路径就为绝对了,当我把文件拷贝到其他位置时常因路径问题而报错!所以我想通过vb代码动态地连接我的数据库文件,如下代码:
Private Sub Form_Load()
  Dim str As String '定义
  str = App.Path
  If Right(str, 1) <> "\" Then str = str + "\"
  MsgBox str
   
  str = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & str & "DataBase\POS.mdb"
  Adodc1.ConnectionString = str
  Adodc1.CommandType = adCmdUnknown
  Adodc1.RecordSource = "select * from bmem order by bmeno"
  '' Adodc1.Refresh  ''调试时这句报错,故注释End Sub   程序运行后,提示未找到数据库文件,再点“上一条记录”或“下一条记录”,都报错!
请各位帮忙!

解决方案 »

  1.   


    我把窗体 form1 中的 adodc 控件属性上连接字符和数据库位置等信息全部删除了,想通过以上 form1 的 load 事件来处理这些,错误提示如下:首先,弹出窗体,提示“[microsoft][ odbc 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序”,点“确定”后就可看到窗体及其上的 datagrid 控件,也有数据,但第一条记录的 第一个字段(主键)的值为 空 ,提示错误,如果这是给这个字段随便输入一个值,则可正常运行;若先不输,随便点击窗体上的某个按纽,就报错并退出系统!
      

  2.   

    我想你把窗体 form1 中的 adodc 控件属性上连接字符和数据库位置等信息全部设置好了,然后再通过以下 form1 的 load 事件来处理这些:
    这句这样写;
        str = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & str & App.path &"DataBase\POS.mdb"]
    你再试一下的啊!!
      

  3.   


    楼上兄弟,谢谢你的答复!& str & App.path 这样不行吧!因为 前面已经有 str = App.Path,这个语句了,还。????
      

  4.   

    str = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & app.path & "\POS.mdb"'这样做的前提是你的POS,MDB和你的程序放在同一个目录底下
      Adodc1.ConnectionString = str
      Adodc1.CommandType = adCmdUnknown
      Adodc1.RecordSource = "select * from bmem order by bmeno"
      '' Adodc1.Refresh  ''调试时这句报错,故注释End Sub
    提供一个解决这样的问题的好办法:
    1:用ADODC控件的连接数据库向导进行连接,连接好之后就可以得到连接字符串
    2:把你的连接字符串和生成的字符串进行比较,修改
      

  5.   

    将这句
    Adodc1.RecordSource = "select * from bmem order by bmeno"
    改写成
    Adodc1.RecordSource ="bmem"        '直接写表名
      

  6.   

    Dim str As String
    str = " Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & _
                "\DataBase\pos.mdb;Persist Security Info=False;"
    Adodc1.ConnectionString = str
    Adodc1.CommandType = adCmdUnknown
    Adodc1.RecordSource = "select * from bmem order by bmeno"
    Adodc1.Refresh.............................
      

  7.   

    这个问题用代码设置了adodc后,在界面中adodc得ConnectString属性怎么设置呢?
    设置为空时会报错,设置一点但没有数据库时也报错