我做了一个小东东不知道怎么在一个form中实现三个combo数据链接三个数据表;
数据库(access2003)名:Test
               combo1链接  第一个数据表“医生”里面的“医生姓名”列表;
               combo2链接  第二个数据表“科室”里面的“所在科室”列表;
               combo3链接  第三个数据表“诊断处置”里面的“诊断”列表;
         希望打下指示,谢谢

解决方案 »

  1.   

    看你用的什么数据库 ,基本上是都差不多的 ,想省事就直接 select * from 医生表,科室表,诊断表 ,然后把读取到的数据填入就行了
      

  2.   

    链接的话,窗体需要拖入adodc控件,设置adodc的数据连接属性。把combox的datasource设置为拖入的adodc控件,并设置datamember、datafield等属性
      

  3.   

    用ADO,三次select ,三次循环填写三个combo。个人不建议使用控件的数据绑定功能。
      

  4.   

    连接省略
    Call OpenConn
    SQL = "select  医生姓名 from 医生"
    rss.Open SQL, cn, 1, 1
    Do While Not rss.EOF
    Combo1.AddItem rss.Fields("医生姓名").Value
    rss.MoveNext
    Loop
    Call CloseConn
      

  5.   

    你这个实际上和省市区联动是一个原理,而省市区联动的代码很容易google到。
      

  6.   


    Dim cn As New ADODB.Connection, Rs As New ADODB.RecordsetPrivate Sub Combo1_Click()
    Combo2.Clear
    Call CONNDB(cn)   '数据库连接略
    SQLX = "Select * From 医生 Where 所在科室='" & Combo1.Text & "'"
    Rs.Open SQLX, cn, 2, 1   '医生 与 所在科室 联动,科室不同,下拉框中的 医生姓名 也不同
    Do While Not Rs.EOF
        Combo2.AddItem = Rs!医生姓名
    Rs.MoveNext
    Loop
    Rs.Close
    cn.Close
    End SubPrivate Sub Form_Load()
    Combo1.Clear
    Call CONNDB(cn)   '数据库连接略
    SQLX = "Select * From 科室"
    Rs.Open SQLX, cn, 2, 1
    Do While Not Rs.EOF
        Combo1.AddItem = Rs!所在科室
    Rs.MoveNext
    Loop
    Rs.Close
     '第三个数据表“诊断处置”里面的“诊断”不清楚与医生姓名的关系,不知道与科室有没有关系,如果没有关系可以:
    Combo3.Clear
    SQLX = "Select * From 诊断处置"
    Rs.Open SQLX, cn, 2, 1
    Do While Not Rs.EOF
        Combo3.AddItem = Rs!诊断
    Rs.MoveNext
    Loop
    Rs.Close
    cn.Close
    End Sub
      

  7.   

    '本文使用3个adodc控件连接数据库
    Private Sub Form_Load()
    '连接数据库代码   省略
    Adodc1.RecordSource = "select * from 医生表"
    Adodc1.Refresh
    Do While Adodc1.Recordset.EOF = False
        Combo1.AddItem Adodc1.Recordset("医生姓名")
        Adodc1.Recordset.MoveNext
    Loop
    Adodc2.RecordSource = "select * from 科室"
    Adodc2.Refresh
    Do While Adodc2.Recordset.EOF = False
        Combo2.AddItem Adodc2.Recordset("所在科室")
        Adodc2.Recordset.MoveNext
    Loop
    Adodc3.RecordSource = "select * from 诊断处置"
    Adodc3.Refresh
    Do While Adodc3.Recordset.EOF = False
        Combo3.AddItem Adodc3.Recordset("诊断")
        Adodc3.Recordset.MoveNext
    Loop
    End Sub
      

  8.   

    好像你的这个数据表设置有问题,其实一个数据表就解决问题了,例如“医生”数据表,包含“医生姓名”字段、“所在科室”字段、“诊断”字段。只需要一个 Combo1 一个下拉框控件,2个 Text1、 Text2 控件就可以实现。下面是代码:Private Sub Combo1_Click()
    Text1.Text = ""
    Text2.Text = ""
    '连接数据库略
    Rs.Open "Select * From 医生 Where 医生姓名='" & Combo1.Text & "'", cnn, 2, 2
            Text1.Text = Rs!所在科室
            Text2.Text = Rs!诊断
    Rs.Close
    cnn.Close
    End SubPrivate Sub Form_Load()
    Combo1.Clear
    '连接数据库略
    Combo1.Clear
    Rs.Open "Select * From 医生", cnn, 2, 2
    Do While Not Rs.EOF
        Combo1.AddItem Rs("医生姓名")
    Rs.MoveNext
    Loop
    Rs.Close
    cnn.Close
    End Sub在存储医生表数据时,存储“医生姓名”字段、“所在科室”字段、“诊断”字段的值就可以了。