问题主要是这样的?
我有1,2,3共3个DBCOMBO,用来选择学生,,
DBCOMBO1---专业,,,DBCOMBO2----班级,,,DBCOMBO3---学生。
实现先在dbcombo1选专业,,DBCOMBO2自动为dbcombo1,text所选专业的班级,,dbcombo3同理。1:需要几个DATA控件来绑定,
我自己的思路是用了4个DATA控件,DATA1是公共的。DATA2的给DBCOMBO1---专业,DATA3是给DBCOMBO2----班级,DATA4是给DBCOMBO3---学生。2:怎么动态的绑定DBCOMBO到DATA的记录上。比如,我的DBCOMBO2的RECORDSOURE应该是“SELECT 班级 from 学生表 where 专业=dbcombo1.text".但是你在属性上是不能这样直接写的。怎么动态。3:DBCOMBO的datasoure,datafield,rowfield等怎么在程序运行时指定,

解决方案 »

  1.   

    现在我基本问的就是代码怎么实现,,我如果直接“3:DBCOMBO的datasoure,datafield,rowfield等怎么在程序运行时指定,”用这几个属性赋值的话
    老是提示有错。。
      

  2.   

    绑定了的话,预先定义好dbcombo的datasource,datafield,rowfield,listfield等,实现联动
    的时候只要操作绑定的data就可以了。就是指定data234.recordsource="select....."然后
    data234.refresh,dbcombo会做出反应。
      

  3.   

    我使用了Combo1控件来代替DBCOMBO,灵活一些
    Option Explicit
    Dim icount As IntegerPrivate Sub Combo1_click()
    Dim strsql As String
    Dim i As Integer
    //2:怎么动态的绑定DBCOMBO到DATA的记录上
    Data1.RecordSource = "select * from 物品 where 类型='" & Combo1.Text & "'"
    Data1.RecordsetType = 1
    Data1.Refresh
    Combo2.ClearFor i = 0 To Data1.Recordset.RecordCount - 1
    Combo2.AddItem Data1.Recordset.Fields("名称")Data1.Recordset.MoveNext
    Next
    Combo2.ListIndex = 0
    End SubPrivate Sub Command2_Click()
    Dim i As IntegerFor i = 0 To icount - 1
    Combo1.AddItem Data1.Recordset.Fields("类型")Data1.Recordset.MoveNext
    NextEnd Sub
    Private Sub Form_Load()
    Data1.Refresh
    icount = Data1.Recordset.RecordCount
    End Sub
      

  4.   

    想实现那种自动化的绑定的话,用VFP的主从表表单吧。用VB的话就得在COMBOBOX1的点击事件中取得所选项,构造SELECT给DATA2,提取出记录集给COMBOBOX2,再依样在COMBOBOX2的点击事件中取所选项构造SELECT给DATA3,提取记录集给COMBOBOX3。
      

  5.   

    dbcombox主要使用的是rowsource,而不是datasource.
    请直接用set dbcombox.rowsource=rs.
      

  6.   

    to: route2(路人乙) 
       你的方法我最开始就是使用这种方法,可是没有反应。实现不了联动。
    TO online(龙卷风V2.0--再战江湖)
       我觉的用COMBO会不会比较忙呀?我没有比较过两种,但是我觉的在这种情况下,DBCONBO会不会比较好的。当然事情没有绝对的,我只是提出问题,看各位大哥是怎么看的。
    TO  zhujiechang(小朱)
       就好象我上面说的,我一定在代码上做DBCOMBO的datasoure,datafield,rowsource给值就提示错误,,我就是知道怎么动态的给这几个属性赋值。
      

  7.   

    你  data.refresh 了吗?
      

  8.   

    TO: route2(路人乙)
          有呀,我现在DATA,和DBCOMBO上绑定,,,然后用:
    data3.datasource="select 字段3 from 表 where 字段2=" & dbcombo1.text
    data3.refresh
    dbcombo2.refresh注:dbcombo2是帮定data3和data1,,dbcombo1是帮定在data1和data2.
        
      

  9.   

    我的测试是这样的
    表zy,字段zyid
    专业1
    专业2
    专业3表bj,字段bjid,字段sszy
    班级11 专业1
    班级12 专业1
    班级13 专业1
    班级21 专业2
    班级31 专业3
    班级39 专业3字段均为string窗体中
    data1指定表zy,data2指定表bj
    dbcombo1的rowsource指定data1,listfield指定zyid
    dbcombo2的rowsource指定data2,listfield指定bjid事件
    Private Sub DBCombo1_Change()
        Data2.RecordSource = "select * from bj where sszy='" & DBCombo1.Text & "'"
        Data2.Refresh
        DBCombo2.Refresh
        
    End Sub
      

  10.   

    我前2天又找时间试了下,原来是我在Data2.RecordSource = "select * from bj where sszy='" & DBCombo1.Text & "'"上没有加:"'","'"这两个。加了就可以拉