建立窗体,窗体上有控件dbcReport1——dbcReport4(combobox),对“专业院系视图”(字段:“培养层次”“院系名称”“专业名称”“班级名称”)进行绑定,在load事件里让dbcreport1装入“培养层次”的记录,在dbcreport1的cmbReport1_LostFocus事件里对选定的dbcreport1.text在视图里筛选,只把符合他的院系名称绑入dbcreport2。
代码如下:(调试错误)——————谁能给解决一下,谢谢!
Dim rstcmb1 As ADODB.Recordset
Dim cmdcmb1 As ADODB.Command
Function loadcombobox1(ByVal sqltext As String) As ADODB.Recordset '为每个窗体的第一个combobox提供数据源
Set rstcmb1 = New ADODB.Recordset
With rstcmb1
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockReadOnly
.Open sqltext, string1
End With
Set loadcombobox1 = rstcmb1
End Function
Public Function string1() As String
string1 = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=maxin;Password=1202;Initial Catalog=Std_Conduct;Data Source=KJZX4"
End Function
Function loadcombobox2(ByVal sqltext As String) As ADODB.Command
Dim cnncmd1 As ADODB.Connection
Set cnncmd1 = New ADODB.Connection
With cnncmd1
.CursorLocation = adUseClient
.Open string1
End With
With cmdcmb1.ActiveConnection = cnncmd1
With cmdcmb1
.CommandText = "select 院系名称 from 专业院系视图 where 培养层次=" & cmbReport1.Text & ""
.CommandType = adCmdText
End With
Set parm = cmdcmb1.CreateParameter("培养层次", adVarChar, adParamInputOutput)
cmdcmb1.Parameters.Append parm
Set loadcombobox2 = cmdcmb1
End Function
Private Sub Form_Load()
Dim i As Integer
Dim sqltext As String
Dim rstcmb1 As New ADODB.Recordset
sqltext = "select distinct 培养层次 from 专业院系视图 group by 培养层次"
Set rstcmb1 = loadcombobox1(sqltext)
If rstcmb1.RecordCount <> 0 Then
rstcmb1.MoveFirst
For i = 0 To rstcmb1.RecordCount - 1
cmbReport1.AddItem Trim(rstcmb1.Fields(0).Value)
rstcmb1.MoveNext
Next
Else
GoTo error
End If
cmbReport1.Text = cmbReport1.List(0)
Set rstcmb1 = Nothing
error:
MsgBox "请先输入信息!", vbOKOnly + vbExclamation, "警告!"
End Sub
Private Sub cmbReport1_LostFocus()
Dim rst2 As ADODB.Recordset
Dim i As Integer
Set rst2 = New ADODB.Recordset '创建局部recordset对象
Set rst2 = loadcombobox2("%" & cmbReport1.Text & "%")
If rst2.RecordCount <> 0 Then
rst2.MoveFirst
For i = 0 To rst2.RecordCount - 1
cmbReport2.AddItem Trim(rst2.Fields(0).Value)
rst2.MoveNext
Next
End If
End Sub
代码如下:(调试错误)——————谁能给解决一下,谢谢!
Dim rstcmb1 As ADODB.Recordset
Dim cmdcmb1 As ADODB.Command
Function loadcombobox1(ByVal sqltext As String) As ADODB.Recordset '为每个窗体的第一个combobox提供数据源
Set rstcmb1 = New ADODB.Recordset
With rstcmb1
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockReadOnly
.Open sqltext, string1
End With
Set loadcombobox1 = rstcmb1
End Function
Public Function string1() As String
string1 = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=maxin;Password=1202;Initial Catalog=Std_Conduct;Data Source=KJZX4"
End Function
Function loadcombobox2(ByVal sqltext As String) As ADODB.Command
Dim cnncmd1 As ADODB.Connection
Set cnncmd1 = New ADODB.Connection
With cnncmd1
.CursorLocation = adUseClient
.Open string1
End With
With cmdcmb1.ActiveConnection = cnncmd1
With cmdcmb1
.CommandText = "select 院系名称 from 专业院系视图 where 培养层次=" & cmbReport1.Text & ""
.CommandType = adCmdText
End With
Set parm = cmdcmb1.CreateParameter("培养层次", adVarChar, adParamInputOutput)
cmdcmb1.Parameters.Append parm
Set loadcombobox2 = cmdcmb1
End Function
Private Sub Form_Load()
Dim i As Integer
Dim sqltext As String
Dim rstcmb1 As New ADODB.Recordset
sqltext = "select distinct 培养层次 from 专业院系视图 group by 培养层次"
Set rstcmb1 = loadcombobox1(sqltext)
If rstcmb1.RecordCount <> 0 Then
rstcmb1.MoveFirst
For i = 0 To rstcmb1.RecordCount - 1
cmbReport1.AddItem Trim(rstcmb1.Fields(0).Value)
rstcmb1.MoveNext
Next
Else
GoTo error
End If
cmbReport1.Text = cmbReport1.List(0)
Set rstcmb1 = Nothing
error:
MsgBox "请先输入信息!", vbOKOnly + vbExclamation, "警告!"
End Sub
Private Sub cmbReport1_LostFocus()
Dim rst2 As ADODB.Recordset
Dim i As Integer
Set rst2 = New ADODB.Recordset '创建局部recordset对象
Set rst2 = loadcombobox2("%" & cmbReport1.Text & "%")
If rst2.RecordCount <> 0 Then
rst2.MoveFirst
For i = 0 To rst2.RecordCount - 1
cmbReport2.AddItem Trim(rst2.Fields(0).Value)
rst2.MoveNext
Next
End If
End Sub
解决方案 »
- 哈利路亚~~~~~~~~~~~~~~~~~小猪妹!我爱你!
- 请教:关于connection.execute()
- 谁有Formula one 5.0的版本,试用也可,送100分
- 测试软件:David Image Viewer 1.8 Beta1,BUG有分。(学习陨落雕的标题,最近测试软件的好像非常多)
- 那位大虾能帮我写个完整的VB查询程序,具体内容无所谓
- 【★为什么会这样?难道微软很弱(有关datagrid的beforecolupdate)★】
- 大家看看这段“浅至深的渐变蓝色为背景的窗口”代码有什么问题
- 如何分离字符串?
- ActiveReports在WIN2K下,LQ-1600 难道不能打印出高度为70mm的页面
- 如何在VB程序中插入空记录?
- 怎么用VB来做 一个刻录软件
- 输入完密码后按回车就可以进入,怎么做?
Private Sub cmbReport1_LostFocus()
Dim rstcmb1 As ADODB.Recordset
Dim i As Integer
Set rstcmb1 = New ADODB.Recordset '创建局部recordset对象
'Set rst2 = loadcombobox2("%" & cmbReport1.Text & "%")
'If rst2.RecordCount <> 0 Then
' rst2.MoveFirst
' For i = 0 To rst2.RecordCount - 1
' cmbReport2.AddItem Trim(rst2.Fields(0).Value)
' rst2.MoveNext
' Next
'End If
Dim sqltext As String
sqltext = "select distinct 院系名称 from 专业院系视图 where 培养层次=" & cmbReport1.Text & " group by 院系名称"
Set rstcmb1 = loadcombobox1(sqltext)
If rstcmb1.RecordCount <> 0 Then
rstcmb1.MoveFirst
For i = 0 To rstcmb1.RecordCount - 1
cmbReport2.AddItem Trim(rstcmb1.Fields(0).Value)
rstcmb1.MoveNext
Next
cmbReport2.Text = cmbReport2.List(0)
End If
Set rstcmb1 = Nothing
End Sub但出现问题提示:列名普通中专无效 (普通中专为培养层次这个字段的一个记录)哪位大虾能给解决一下,在线等,急!!!!!!
With cmdcmb1.ActiveConnection = cnncmd1
没有end with