偶的方法是:是用DBcombo控件 dbcombo1-----年級(DBCombo1_Change:select 班級 from class where dbcombo1.text=年級)dbcombo2-----班級(DBCombo2_Change:select 學生姓名 from class where dbcombo2.text=班級)dbcombo3-----學生姓名 這三個共用一個數據表class.
代码如下: 另有一个db Option Explicit Dim db As Database Dim rd As Recordset Dim sSql As String Dim id1, id2 As Integer Private Sub Combo1_Click()
id1 = Left(Combo1.Text, 1) sSql = "select distinct c.cid,c.cname from cgs关联表 as r inner join class as c on r.cid=c.cid where r.gid=" & id1 Set rd = db.OpenRecordset(sSql) Combo2.Clear With rd Do While Not .EOF Combo2.AddItem rd.Fields(0) & " " & rd.Fields(1) .MoveNext Loop .Close End With
End SubPrivate Sub Combo2_Click() id1 = Left(Combo1.Text, 1) id2 = Left(Combo2.Text, 1) sSql = "select distinct s.sid,s.sname from cgs关联表 as r inner join student as s on r.sid=s.sid where r.gid=" & id1 & " and r.cid=" & id2 Set rd = db.OpenRecordset(sSql) Combo3.Clear With rd Do While Not .EOF Combo3.AddItem rd.Fields(0) & " " & rd.Fields(1) .MoveNext Loop .Close End WithEnd SubPrivate Sub Form_Load() Dim i As Long Set db = DBEngine.OpenDatabase(App.Path & "\db1.mdb") Set rd = db.OpenRecordset("select * from grade") Combo1.Clear With rd Do While Not .EOF Combo1.AddItem rd!gid & " " & rd!gname .MoveNext Loop .Close End With
dbcombo1-----年級(DBCombo1_Change:select 班級 from class where dbcombo1.text=年級)dbcombo2-----班級(DBCombo2_Change:select 學生姓名 from class where dbcombo2.text=班級)dbcombo3-----學生姓名
這三個共用一個數據表class.
在班级的Combo_Click()过程中,重新添加学生Combo的选项
emailto: [email protected]
在一个表中有班级、年级这些字段可以往里写数据
然后再建一些由年级班级命名的表
这样可以方便得查询請提供代碼,謝謝!
my e-mail:[email protected]
给个 email 我给你实现了,把代码给你
emailto: [email protected]
在年级的Combo_Click()过程中,重新添加班级Combo的选项;
在班级的Combo_Click()过程中,重新添加学生Combo的选项
在年级这个下拉框中写代码控制.
当这个下拉框有变化就重新附值班级跟学生姓名.
Option Explicit
Dim db As Database
Dim rd As Recordset
Dim sSql As String
Dim id1, id2 As Integer
Private Sub Combo1_Click()
id1 = Left(Combo1.Text, 1)
sSql = "select distinct c.cid,c.cname from cgs关联表 as r inner join class as c on r.cid=c.cid where r.gid=" & id1
Set rd = db.OpenRecordset(sSql)
Combo2.Clear
With rd
Do While Not .EOF
Combo2.AddItem rd.Fields(0) & " " & rd.Fields(1)
.MoveNext
Loop
.Close
End With
End SubPrivate Sub Combo2_Click() id1 = Left(Combo1.Text, 1)
id2 = Left(Combo2.Text, 1)
sSql = "select distinct s.sid,s.sname from cgs关联表 as r inner join student as s on r.sid=s.sid where r.gid=" & id1 & " and r.cid=" & id2
Set rd = db.OpenRecordset(sSql)
Combo3.Clear
With rd
Do While Not .EOF
Combo3.AddItem rd.Fields(0) & " " & rd.Fields(1)
.MoveNext
Loop
.Close
End WithEnd SubPrivate Sub Form_Load()
Dim i As Long Set db = DBEngine.OpenDatabase(App.Path & "\db1.mdb")
Set rd = db.OpenRecordset("select * from grade")
Combo1.Clear
With rd
Do While Not .EOF
Combo1.AddItem rd!gid & " " & rd!gname
.MoveNext
Loop
.Close
End With
End Sub