代码如下:
1   Adodc2.ConnectionString = strconn
2   Adodc2.CommandType = adCmdText
3   Adodc2.RecordSource = "select * from Deptartment order by DeptNum"
4   Set FindtxtName.DataSource = Adodc2
5   FindtxtName.DataField = "DeptName"
6   Adodc2.Recordset.MoveFirst
7   While Not Adodc2.Recordset.EOF
8     CmbDeptName.AddItem (Adodc2.Recordset("DeptName"))
9     Adodc2.Recordset.MoveNext
10  Wend如果有5、6两行,程序没有问题。但是如果去掉程序就报错,
错误原因:实时错误“91”对象变量或WITH块变量未设置。
请问:我该如何做呢?

解决方案 »

  1.   

    你想要干什么呀??FindtxtName是什么控件??如果是想把findtxtname去掉的话,把4,5行去掉就行了~
      

  2.   

    楼上那个这样做不可以吗,不用这两个,你用这个有什么用的
    4   Set FindtxtName.DataSource = Adodc2
    5   FindtxtName.DataField = "DeptName"这个是打开表的 "字段名称" 
      

  3.   

    4   Set FindtxtName.DataSource = Adodc2
    5   FindtxtName.DataField = "DeptName"
    去掉就出错了。不去掉不出错。
      

  4.   

    FindtxtName是什么控件呀?
    Set FindtxtName.DataSource = Adodc2   是指定数据原
    FindtxtName.DataField = "DeptName"    是指定字段名
    去掉 当然会出错的啊
      

  5.   

    FindtxtName 是 文本框
    CmbDeptName 是 下拉框
    我是想将CmbDeptName与ADODC2绑定,FindtxtName与ADODC1绑定,
    但是: 我是想将CmbDeptName仅仅与ADODC2绑定时候久会出错了。
      

  6.   

    To boywdj(Zeus军) :
    如果你想正确实现绑定功能,语法知识就是必须两个都绑定。用你的问题来说是“将CmbDeptName与ADODC2绑定,FindtxtName与ADODC2绑定”,而不是什么“FindtxtName与ADODC1绑定”。
    关于此方面知识,你可以在 MSDN 上搜索“RecordSet”,然后看相关报道即可。
      

  7.   

    错误原因:实时错误“91”对象变量或WITH块变量未设置。
    能出现这个错误的原因应该不是你语句的问题
    而是你窗体中窗一涉及了adodc2的控件缺少数据绑定
    因为我最开始学vb的时候总是能碰到这样的错误
    建议你打开数据库打开数据表等用代码直接打开
    而不用adodc或data等控件
      

  8.   

    5 的作用是告诉 TXT 控件从哪个表取数据,否则它不知道该从哪里取数据;
    6 的作用是将记录集指针移动到第一个的位置,以避免已经到最后一个而取不到数据(不是必须的)。--事实上你的程序没有处理“没有检索到任何记录即空记录集”的情况,这不应该。
      

  9.   

    事实上将“Adodc2.Recordset.EOF”作为判断有无记录的作法在有些情况下是不可靠的,比如说只有一条记录的时候,或者某些属性设置不准确的情况下。
      

  10.   

    最好用代码写啊。
    FindtxtName=rs.fields(Column_No.)
    CmbDeptName =rs.fields(Column.No.)