我在窗体中用datagrid连接adodc控件,而adodc通过下面的代码来连接数据库及其中的表,但出现错误提示“对象变量或with变量未设置”,(并没有直接用adodc的属性来连接数据库,因为这样连接好像就不能改变数据库的路径,程序安装到其它机器上的任意路径中就会提示在‘原路径下’找不到数据库!!)代码如下:
Private Sub Form_Load()
  Dim ssrr As String
  cbo1.AddItem "    "
  cbo1.AddItem "甲值"
  cbo1.AddItem "乙值"
  cbo1.AddItem "丙值"
  cbo1.AddItem "丁值"
  ssrr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & App.Path & "\指标库.mdb"
  ado1.ConnectionString = ssrr
  ado1.RecordSource = "select * from zb1"
  ado1.CommandType = adCmdTable
  ado1.Recordset.Requery'这条语句就出现错误上面的提示
  recs = ado1.Recordset.RecordCount'这条语句同样
  If recs > 0 Then
     ado1.Recordset.MoveLast'这条也一样
  End If
  cbo1.Text = "    "
  moday.Year = Year(Date)
  moday.Month = Month(Date)
  moday.Day = Day(Date)
  ado1.Recordset.Requery
  frm2.Visible = False
End Sub
不知何故,请各位楼主指点,谢谢!

解决方案 »

  1.   

    Private Sub Form_Load()
      Dim ssrr As String
      cbo1.AddItem "    "
      cbo1.AddItem "甲值"
      cbo1.AddItem "乙值"
      cbo1.AddItem "丙值"
      cbo1.AddItem "丁值"
      ssrr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & App.Path & "\指标库.mdb"
      ado1.ConnectionString = ssrr
      ado1.RecordSource = "select * from zb1"
      ado1.Refresh  '加上了这里。
      ado1.CommandType = adCmdTable
      ado1.Recordset.Requery'这条语句就出现错误上面的提示
      recs = ado1.Recordset.RecordCount'这条语句同样
      If recs > 0 Then
         ado1.Recordset.MoveLast'这条也一样
      End If
      cbo1.Text = "    "
      moday.Year = Year(Date)
      moday.Month = Month(Date)
      moday.Day = Day(Date)
      ado1.Recordset.Requery
      frm2.Visible = False
    End Sub
    全部分给我啊,分给别人我就XX你,哈哈哈,QQ没见你上线,所以在这给你回复,快给分!
      

  2.   

    晕,我建库测试后才给你回复的啊,怎么会不行呢。要不你把ado1.Recordset.Requery删除看看。
      

  3.   

    应该是引用的microsoft Actives data object 的版本太低了,你试着引用一下2.6或是更高的,默认是2.0的
      

  4.   

    还有一点就是ADO1.REFRESH也要加上去的
      

  5.   

    建议换成ado对象,不要使用adodc控件。把你原来这话中间ado1.CommandType = adCmdTable改成Adodc1.CommandType = adCmdText这样子。
    参考这上面的内容:
    '--如何用Adodc控件代码去连接Access
    Private Sub Command1_Click()
     Dim strConn As String
     
     strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\test.mdb;Persist Security Info=False"
     
     ' adodc的连接字符串
     Adodc1.ConnectionString = strConn
     
     ' 指定Command对象的形态
     Adodc1.CommandType = adCmdText
     
     ' 设置传回一个资料录集。
     Adodc1.RecordSource = "Select * from People"
     
     ' 将记录集合绑定DataGrid1
     Set DataGrid2.DataSource = Adodc1
    End Sub