Private Sub Form_Load()
        Dim sqlstr As String
        Adodc1.ConnectionString = "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=ycwh;Data Source=LIU"
                 sqlstr = "select gybm as '工艺编码',dlmc as '工艺大类',xlmc as '工艺小类' from gongyi where gybm='001001'"
        Adodc1.RecordSource = sqlstr
        
         Dim aa As Integer
         
         aa = Adodc1.Recordset.RecordCount      '程序运行到这就出错.如果删除这句,又能出来结果.
         Debug.Print aa
         Set DataGrid1.DataSource = Adodc1
         Adodc1.Refresh
         DataGrid1.Refresh
            
  
End Sub
请各位高手帮帮忙.谢谢了.

解决方案 »

  1.   

    从你提供的代码看,未见运行错误,下面这句试一下,因各类数据库SQL查询语言写法不一:
        sqlstr = "select gybm as 工艺编码,dlmc as 工艺大类 ,xlmc as 工艺小类 from gongyi where gybm= '001001'"此外用Adodc控件,如在代码中对属性赋值的话,就无须对其属性页作设置。
      

  2.   

    谢谢你
    我问题已经解决
    在出错的那句aa   =   Adodc1.Recordset.RecordCount             
    前面加上一句Adodc1.refresh 就好了
      

  3.   

    忘了提醒Adodc控件执行refresh方法是把数据库的记录表打开后将记录集放于内存的必要语句,必需在Adodc1.ConnectionString   = "Provider=SQLOLEDB.1;Password=sa;Persist   Security   Info=True;User   ID=sa;Initial   Catalog=ycwh;Data   Source=LIU " 
    sqlstr = "select gybm as 工艺编码,dlmc as 工艺大类,xlmc as 工艺小类  from gongyi where gybm= '001001'" 
    Adodc1.RecordSource = sqlstr 上述句后,否则Adodc1未得到记录集