我从"员工信息表" 中取出一个“姓名”字段放到组合框中,做完这个以后,打开access一看,表中的“姓名”全部变成空了。代码如下:    Adodc1.RecordSource = "select * from 员工信息表 " 
    Adodc1.Refresh
    For i = 1 To Adodc1.Recordset.RecordCount
        cmbName.AddItem Adodc1.Recordset("姓名")
        Adodc1.Recordset.MoveNext
    Next
    Adodc1.Recordset.Close

解决方案 »

  1.   

    这样试试
        Adodc1.RecordSource = "select * from 员工信息表 " 
        Adodc1.Refresh
        with Adodc1.Recordset
        if not .bof or not .eof
        while not .eof     
            cmbName.AddItem .field("姓名")
            .MoveNext
        wend
        else
        msgbox"没有记录"
        end if
       end with
        Adodc1.Recordset.Close
      

  2.   

    没有了,确实没有了。
    我把这个form中所有的cmbName都清掉了。只这一块,放在Form_Load()里.
    而且我还有其它表的字段,放在另一个combox中,都不会出现这种问题。
    以前在另外地方,也出现过,但不知道怎么改来改去就好了。
    表都新建过了,控件也换过了,adodc1也换过了,就是不行。
      

  3.   

    to (菜鸟也疯狂) :试了,不行。
    现在我是不知道问题在数据库,还是adodc,还是别的。
      

  4.   

    MDAC指哪些东东?VB中怎么看版本?
    我只升级到vs的sp6.
      

  5.   

    下了个Microsoft Data Access Components (MDAC) 2.8
    不管用。不知是不是因为不包含......
    MDAC 2.8 版所安装的数据访问核心组件与 Microsoft SQL Server OLE DB Provider, ODBC Driver 相同。 MDAC 2.8 最终发行的可再分发安装程序安装与 Microsoft Windows Server 2003 一样的 Data Access 的核心组件。此版本不包括 Microsoft Jet、Microsoft Jet OLE DB Provider、Desktop Database Drivers ODBC Driver 或 Visual FoxPro ODBC Driver。不知哪有包含Microsoft Jet,Microsoft Jet OLE DB Provider的?
      

  6.   

    SP6 和 MDAC 是两个不同的东西。
    看起来程序没有错,你可以试试新建一个工程应用上面的代码试试,
    如果仍然不行,Access数据库是否版本太低?比如用 Access 2002 版本的数据库试试。
      

  7.   

    关键是,同样这个form中,还有其它表中拿来的数据放
    在另一个combox中,却没有问题。
      

  8.   

    而同样这个"姓名"字段的东东,取出来放到另一个form的姓名combox中,
    也没有问题。
      

  9.   

    好象解决了,多谢名位!!!!!
    原因好象是这样;
    我从A表的“姓名”字段取出内容,放在form的combox的控件中,
    但这个控件是绑定到B表的“姓名”字段的。我现在把B表中的“姓名”字段,改成“员工姓名”了(修combox的绑定),
    就OK啦。不过我上次就没那么幸运,上次我也把字段名改过了,
    还是不行,不知道后来怎么又行了。这个贴子多放会儿,再结贴。多谢各位啦。
      

  10.   

    一定是程序中的什么设置和语句有问题,和什么SP5,SP6没有关系的。
    楼上的都是在乱讲。
      

  11.   

    用ado对象不要用控件绑定.
    另外,你应该学会用F8跟踪调试.
      

  12.   

    唉,还是改用ADODB吧,比这好多了。
      

  13.   

    adodb也会有问题,
    我就踫到:
    rs.RecordCount死活=-1,明明rs("id")有值,也就是有记录!
    判断时只好再增加一个条件,看看记录内容是不是不为空:    sTemp = "" & rs("id")
        If rs.RecordCount >= 1 Or sTemp <> "" Then  '如果有记录
      

  14.   

    rs.RecordCount=-1是因为你没有指定打开的方式,rs打开的格式用这个看看
    rs.Open selStr, cnn, adOpenStatic, adLockReadOnly
      

  15.   

    忠告:
      以后碰到相类似的问题,建议你重新打开一个新的VBP,这样才能保证你确实没有其他设置错误。
      太绝对的保证往往都是无效的。
      

  16.   

    忠告:
      以后碰到相类似的问题,建议你重新打开一个新的VBP,这样才能保证你确实没有其他设置错误。
      太绝对的保证往往都是无效的。
    -----------------------------
    象我上面这样设置(两个表有相同名字的字段),也不能算是错误吧,我觉得还是adodc做得不够好。
      

  17.   

    zhangzhijian(苹果)
    rs.RecordCount=-1是因为你没有指定打开的方式,rs打开的格式用这个看看
    rs.Open selStr, cnn, adOpenStatic, adLockReadOnly
    ----------------------------
    一样,rs.RecordCount= -1  !!