加上。
if rs1.state=adstateopen then
rs1.close
end if
rs1.open "select distinct Con_Name from wideband_busin where Con_Name='" & Trim(Combo1.Text) & "'",cn,3,1
这样就可以保证每次都可以刷新你的记录了~~~~~~~

解决方案 »

  1.   

    click中  rs1.Open aa, cn1, adOpenDynamic把这行取掉,换成他写的代码
      

  2.   

    为什么按上面的代码做还是会出现原来的问题啊,选择 Combox 中的一个项"王明",显示的是  "王明"  这条记录,选择 "李江"显示的还是   "王明"  呀?请各位高手给些指点吧,谢谢啦 ,快急死了,拜托啊!!!!!!!!!!!
      

  3.   

    你先检测一下combo的值有没改变,我记得是用Private Sub Combo1_Change()
      

  4.   

    Combox的值有改变啊,为什么老会出这种错啊
      

  5.   

    你的 Combo1_Click 对你选择他的内容没有任何影响, 你在这个控件中一定还有其他代码请把它也放上来.
      

  6.   

    别的代码就只有这个了啊
    Private Sub Form_Load()
    Set cn = New ADODB.Connection
    With cn
         .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\wideband\data\宽带.mdb;Persist Security Info=False"
         .Open
    End With
    Set rs = New ADODB.Recordset
    With rs
        .CursorLocation = adUseClient
        .CursorType = adOpenDynamic
        .Open "select * from wideband_busin ", cn
    End With
    Do While Not rs.EOF
       Combo1.AddItem rs.Fields("Con_Name")
       Combo2.AddItem rs.Fields("Serve_Name")
       rs.MoveNext
    Loop
    End Sub
      

  7.   

    Option Explicit
    Dim cn As ADODB.Connection
    Dim rs As ADODB.RecordsetPrivate Sub Form_Load()
    Set cn = New ADODB.Connection
    With cn
         .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\wideband\data\宽带.mdb;Persist Security Info=False"
         .Open
    End With
    Set rs = New ADODB.Recordset
    With rs
        .CursorLocation = adUseClient
        .CursorType = openkeyset
        .Open "select * from wideband_busin ", cn
    End With
    Do While Not rs.EOF
       Combo1.AddItem rs.Fields("Con_Name")
       Combo2.AddItem rs.Fields("Serve_Name")
       rs.MoveNext
    Loop
    End SubPrivate Sub Combo1_Click()
    On Error GoTo wrong
    Dim aa As String
    Dim cn1 As ADODB.Connection
    Dim rs1 As ADODB.Recordset
    If Trim(Combo1.Text) <> "" Then
    aa = "select distinct Con_Name from wideband_busin where Con_Name='" & Trim(Combo1.Text) & "'"
    End If
    Set cn1 = New ADODB.Connection
    With cn1
         .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\wideband\data\宽带.mdb;Persist Security Info=False"
         .Open
    End With
    Set rs1 = New ADODB.Recordset
    with rs1 
        .CursorLocation = adUseClient
        .CursorType = openkeyset
        .Open aa, cn1
    Form3.Show
    Form2.Hide
    Exit Sub上面的代码在你的基础上修改过了,你试试
    祝你好运…!!!
    wrong:
        MsgBox "请选择相应字段 ", vbOKOnly + vbInformation, "提示"End Sub
      

  8.   

    应该把你Combo1_Click()中的代码写到Combo1_Change()中去
      

  9.   

    combo有很多事件,你需要的事件应该是在你选择完毕以后发生的,你可以调试一下各个事件的发生顺序。可以用如下方法:
    private sub 事件()
       msgbox "事件名"
    end sub
      

  10.   

    up 上面的朋友说的对不加  .Refresh 是不行的
      

  11.   

    对不起,可能是我说的不太明白,我的意思是:有两个窗体,我在第一个窗体中有一个Combox控件,当击中Combox中的任意一项时,如:里面有三个选项"王明","李刚","张朋",当选中了"王明"时在第二个窗体中显示关于王明的所有信息,选中"李刚"就只显示关于李刚的所有信息,以此类推.....,谢谢
      

  12.   

    请问你用的到底是combobox还是datacombo呀?
    如果用datacombo应该没有这么多烦事
      

  13.   

    我用的是 Combox 不是 Datacombo ;
    我的Rs1应该有读取数据啊
    可是我的目的就是要从一个窗体引入另一个窗体啊,若去掉一个窗体这样有何意义呢各位高手们麻烦你们了,再给小弟一些意见吧,我解决这个已经搞了20多天,将近一个月了,可是还没解决出来啊,谢谢了
      

  14.   

    你那么多代码,看着好麻烦
    用Adodc控件不好吗?
    那样只要几行代码就行了啊
    我刚做了跟你的有点类似的东西
    可我用的是控件
    你那么多代码我看的头直晕
      

  15.   

    首先  在 Form3.Show 之前 PRINT。DUBEG AA
    看每次变化COMBOX 是SQL的变化是不是正确再    FORM2。HIGH后加上
          SET RS1=NOTHING
          UNLOAD FORM3
      

  16.   

    wXYQ2000(WXYQ)
    你好,我按这样做,但它说 DubeG 无效或不符合引用啊
      

  17.   

    把你的程序放到combox的gotfocus事件中呢?
      

  18.   

    在additem的循环前加个combo1.clear呢?
      

  19.   

    第一,查一查在COMBO 的CLICK事件后,其SQL语句有不有变化.
    第二,没有发现你怎么把查询结果显示在第二个窗体里的,你查查这方面的语句
      

  20.   

    有兴趣的话,把程序发给我看看.MSN:[email protected]
      

  21.   

    可能是你的数据在窗体之间的传递问题。
    例如:你的FORM2的FORMLOAD中做了一些处理,当你调用它SHOW时,它又一次地执行了FORMLOAD,这样有可能改变你的显示内容。具体你可单步调试。
      

  22.   

    同意楼上 daviddivad(你真行,居然比我还快!) 说法!
    原因在于第二个窗体上!!!
      

  23.   

    应该是第二个窗口又激活了第一个窗口的form_load,你把第二个窗口的form_load贴上来大家看看
    另外,这种问题只能用单步跟踪的方法,看看程序执行的过程。