我从工程2中添加了几个工程1的Combo1-2,然后自己又做了Combo3-4,却发现工程2中的Combo1-4中的下拉列表都只出现了3个选项,看不到更多的,而运行原来工程1时的Combo1-2也很正常,就是一到工程2中原来工程1中的Combo1-2和我新作的Combo3-4都只能显示3个列表项,而原来里面有很多列表项呀!!请问这是怎么回事??!!

解决方案 »

  1.   

    看了半天,没发现哪有特别的地方呀?而且在新建的工程2种再添加任何Combox,都只显示前3项,后面的都看不到!!
      

  2.   

    打了sp6了!!真是太奇怪了!!问题相关:http://community.csdn.net/Expert/topic/3808/3808956.xml?temp=.1558344
      

  3.   

    没见过这种问题,你试试将combox换成imagecombox试一下,个人认为imagecombox要比combox好用的多
      

  4.   

    这是对应的源码,我实在是看不出那里的错!高手们帮忙看看!!
    Option Explicit
    Dim db As Database
    Dim rs As DAO.Recordset
    Dim rs1 As DAO.Recordset
    Dim rs2 As DAO.Recordset
    Dim rs3 As DAO.Recordset
    Dim rs4 As DAO.Recordset
    Dim rs5 As DAO.Recordset
    Dim full As String
    Dim cn As New ADODB.Connection
    Private Sub Form_Load()
    '以下是数据连接部分++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    On Error Resume Next
    cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb;Persist Security Info=False" '连接字符串的数据库路径可能有错,最好用相对路径
      cn.Open
    Set db = OpenDatabase(App.Path + "\db.mdb")
    Set rs = db.OpenRecordset("select 字段1 from A group by 字段1")
    Set rs1 = db.OpenRecordset("select 字段1 from B group by 字段1")
    Set rs2 = db.OpenRecordset("select 字段1 from C where 字段1")
    Set rs3 = db.OpenRecordset("select 字段1 from A group by 字段1")
    Set rs4 = db.OpenRecordset("select 字段1 from B group by 字段1")
    Set rs5 = db.OpenRecordset("select 字段1 from C where 字段1")
    Do While Not rs.EOF
        Combo1.AddItem rs.Fields("字段1")
        Combo3.AddItem rs1.Fields("字段1")
        Combo5.AddItem rs2.Fields("字段1")
        Combo9.AddItem rs3.Fields("字段1")
        Combo7.AddItem rs4.Fields("字段1")
        Combo6.AddItem rs5.Fields("字段1")
        rs.MoveNext
        rs1.MoveNext
        rs2.MoveNext
        rs3.MoveNext
        rs4.MoveNext
        rs5.MoveNext
    Loop
    '以上是数据连接部分+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++End Sub
    '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    '以下是录入模板,========可能是出错的地方========================
    Private Sub Combo1_Click()
    Set rs = db.OpenRecordset("select 字段2 from A where 字段1='" & Combo1.Text & "'")
    Combo2.Clear '由于要重新加入成员,所以把之前的成员清除
    Do While Not rs.EOF
        Combo2.AddItem rs.Fields("字段2")
        rs.MoveNext
    Loop
    Label3.Caption = Combo1.Text
    End Sub
    Private Sub Combo3_Click()
    Set rs1 = db.OpenRecordset("select 字段2 from B where 字段1='" & Combo3.Text & "'")
    Combo4.Clear '由于要重新加入成员,所以把之前的成员清除
    Do While Not rs1.EOF
        Combo4.AddItem rs1.Fields("字段2")
        rs1.MoveNext
    Loop
    Label8.Caption = Combo3.Text
    End Sub
    Private Sub Combo5_Click()
    Set rs2 = db.OpenRecordset("select * from C where 字段1='" & Combo5.Text & "'")
    Label10.Caption = Combo5.Text
    End Sub
    Private Sub Combo9_Click()
    Set rs3 = db.OpenRecordset("select 字段2 from A where 字段1='" & Combo9.Text & "'")
    Combo10.Clear '由于要重新加入成员,所以把之前的成员清除
    Do While Not rs3.EOF
        Combo10.AddItem rs3.Fields("字段2")
        rs3.MoveNext
    Loop
    Label14.Caption = Combo9.Text
    End Sub
    Private Sub Combo7_Click()
    Set rs4 = db.OpenRecordset("select 字段2 from B where 字段1='" & Combo7.Text & "'")
    Combo8.Clear '由于要重新加入成员,所以把之前的成员清除
    Do While Not rs4.EOF
        Combo8.AddItem rs4.Fields("字段2")
        rs4.MoveNext
    Loop
    Label16.Caption = Combo7.Text
    End Sub
    Private Sub Combo6_Click()
    Set rs5 = db.OpenRecordset("select * from C where 字段1='" & Combo6.Text & "'")
    Label18.Caption = Combo6.Text
    '以上是录入模板==================================
    End Sub
    '以下是保存模板这里应该不会是有错===========================================
    Private Sub Command1_Click()
    If Combo1 = full Or Combo2 = full Or Text1 = full Or Combo3 = full Or Combo4 = full Or Combo5 = full Then '检测是否未选择信息
        MsgBox "信息不完整,请重新选择完整信息"
      Else
        cn.Execute "INSERT INTO D(字段1,字段2,字段3,字段4,字段5) valueS('" + Combo1.Text + "','" + Combo2.Text + "','" + Combo3.Text + "','" + Combo4.Text + "','" + Combo5.Text + "')"
      End If
    Combo2.Clear
    Combo4.Clear
    Text1.Text = ""
    Label3.Caption = ""
    Label4.Caption = ""
    Label5.Caption = ""
    Label7.Caption = ""
    Label8.Caption = ""
    Label9.Caption = ""
    Label10.Caption = ""
    Label11.Caption = ""
    End Sub
    Private Sub Command2_Click()
    If Combo8 = full Or Combo10 = full Or Text2 = full Or Combo7 = full Or Combo9 = full Or Text2 = full Then '检测是否未选择信息
        MsgBox "信息不完整,请重新选择完整信息"
      Else
         cn.Execute "INSERT INTO D(字段1,字段2,字段3,字段4,字段5) valueS('" + Combo9.Text + "','" + Combo10.Text + "','" + Combo7.Text + "','" + Combo8.Text + "','" + Combo6.Text + "')"
      End IfCombo10.Clear
    Combo8.Clear
    Text2.Text = ""
    Label14.Caption = ""
    Label15.Caption = ""
    Label16.Caption = ""
    Label17.Caption = ""
    Label18.Caption = ""
    Label19.Caption = ""
    Label20.Caption = ""
    Label21.Caption = ""
    End Sub
      

  5.   

    建议你为每个combox的click事件设置断点,分步调试一下,看往下拉列表中添加的记录集的记录个数是多少
      

  6.   

    代码写的有问题。应该。你的程序好难懂。最好不要label1,2,3这样的。不知所云嘿嘿。
      

  7.   

    赋值的循环次数不对,使用了其中一个的recordcount来计数,肯定受这个rs的影响
      

  8.   

    还是没改好:但是应该定位在这段代码:
    Do While Not rs.EOF
        Combo1.AddItem rs.Fields("字段1")
        Combo3.AddItem rs1.Fields("字段1")
        Combo5.AddItem rs2.Fields("字段1")
        Combo9.AddItem rs3.Fields("字段1")
        Combo7.AddItem rs4.Fields("字段1")
        Combo6.AddItem rs5.Fields("字段1")
        rs.MoveNext
        rs1.MoveNext
        rs2.MoveNext
        rs3.MoveNext
        rs4.MoveNext
        rs5.MoveNext
    Loop
    和:
    Private Sub Combo1_Click()
    Set rs = db.OpenRecordset("select 字段2 from A where 字段1='" & Combo1.Text & "'")
    Combo2.Clear '由于要重新加入成员,所以把之前的成员清除
    Do While Not rs.EOF
        Combo2.AddItem rs.Fields("字段2")
        rs.MoveNext
    Loop
    Label3.Caption = Combo1.Text
    End Sub
    Private Sub Combo3_Click()
    Set rs1 = db.OpenRecordset("select 字段2 from B where 字段1='" & Combo3.Text & "'")
    Combo4.Clear '由于要重新加入成员,所以把之前的成员清除
    Do While Not rs1.EOF
        Combo4.AddItem rs1.Fields("字段2")
        rs1.MoveNext
    Loop
    Label8.Caption = Combo3.Text
    End Sub
      

  9.   

    Do While Not rs.EOF
        Combo1.AddItem rs.Fields("字段1")
        Combo3.AddItem rs1.Fields("字段1")
        Combo5.AddItem rs2.Fields("字段1")
        Combo9.AddItem rs3.Fields("字段1")
        Combo7.AddItem rs4.Fields("字段1")
        Combo6.AddItem rs5.Fields("字段1")
        rs.MoveNext
        rs1.MoveNext
        rs2.MoveNext
        rs3.MoveNext
        rs4.MoveNext
        rs5.MoveNext
    Loop
    这一段代码循环的次数就是rs的记录数,如果rs的recordcount=3,就会导致所有的下拉框赋值都只有3个
      

  10.   

    但是rs里的纪录在数据库中有26个呀,我在里面写了A-Z,26个字母,应为26条纪录呀!!
      

  11.   

    问题找到了:假定:有表A-F; rs1-rs5
    也就是假如当rs对应A表中的字段1,这个A表中字段1的数据数量决定了和对应rs1,rs2,rs3,rs4,rs5的combox中显示的出来的下拉列表项数目的多少。也就是说如果和rs对应的A表中字段1中只有:张、王、李、赵;这四个纪录的话,那末不管对应rs1的b表字段1,rs2的c表字段1,rs3的d表字段1,rs4的e表字段1,rs5的f表字段1中有对少数据,分别对应的combox的下拉列表项也就只能显示出四项!!而且还有一个大毛病:也就是如果rs1对应的A表中字段1的记录数必须是这几个表中最少的,当rs<rs1andrs2andrs3andrs4andrs5时,对应rs1,rs2,rs3,rs4,rs5的combox中显示的出来的数目=rs的数目,当rs>rs1 OR rs2 OR rs3 OR rs4 OR rs5时出现运行错误,提示为:找不到对应的记录!!!
    终于找到毛病了!可是该怎么改呢??请高手出招!!!
      

  12.   

    noaskme(自在飞花)你说得太对了!!能不能指点一下怎么改呢?