'初始化“职务”组合框的值
Private Sub LoadZwCombo()
If recZw.State = 1 Then recZw.Close
recZw.CursorLocation = adUseClient
recZw.Open "select * from 职务信息 order by 职务信息", adoCon, adOpenKeyset, adLockPessimistic
cobZw.Clear
If recZw.RecordCount > 0 Then
recZw.MoveFirst
For i = 0 To recZw.RecordCount - 1
cobZw.AddItem recZw!职务信息, i
recZw.MoveNext
Next
End If
cobZw.AddItem "新建...", 0
End Sub'“学历信息”新建记录
Private Sub cobXl_Click()
Dim strTmp As String
If Trim(cobXl.Text) = "新建..." Then
'下面是调用另一个窗体,会返回一个字符串的值
strTmp = frm基本信息_新建.LoadData("学历信息")
LoadXlCombo
End If
cobXl.Text = strTmp '我要让组合框的值为上面的返回值
End Sub如上的这两段代码中,为什么在第二段代码的CobXl.Text=strTmp这句语句就是执行后为空白呢?strTmp的值通过调试来观察也是有值的,但为什么组合框中的值就是为空呢?
如果我把第一段代码的cobXl.clear 这句代码去掉,就可以正常显示了,这是组合框的BUG还是我使用错误了呢?各位高手帮忙解答一下吧!
Private Sub LoadZwCombo()
If recZw.State = 1 Then recZw.Close
recZw.CursorLocation = adUseClient
recZw.Open "select * from 职务信息 order by 职务信息", adoCon, adOpenKeyset, adLockPessimistic
cobZw.Clear
If recZw.RecordCount > 0 Then
recZw.MoveFirst
For i = 0 To recZw.RecordCount - 1
cobZw.AddItem recZw!职务信息, i
recZw.MoveNext
Next
End If
cobZw.AddItem "新建...", 0
End Sub'“学历信息”新建记录
Private Sub cobXl_Click()
Dim strTmp As String
If Trim(cobXl.Text) = "新建..." Then
'下面是调用另一个窗体,会返回一个字符串的值
strTmp = frm基本信息_新建.LoadData("学历信息")
LoadXlCombo
End If
cobXl.Text = strTmp '我要让组合框的值为上面的返回值
End Sub如上的这两段代码中,为什么在第二段代码的CobXl.Text=strTmp这句语句就是执行后为空白呢?strTmp的值通过调试来观察也是有值的,但为什么组合框中的值就是为空呢?
如果我把第一段代码的cobXl.clear 这句代码去掉,就可以正常显示了,这是组合框的BUG还是我使用错误了呢?各位高手帮忙解答一下吧!
解决方案 »
- 字符串查询问题:可能包含100个子串中的0-n个,目前取第一个出现的子串。。。?求效率高的方法?
- Seagate Crystal
- vb里如果窗体关闭是不是所有的窗口变量都被销毁了?
- vb 怎么调用bcb编写的dll啊 请详细写出过程!!
- 如何向word.doc中插入圖片? 文件的模板該如何寫?
- 小弟公司進來一位新人,略懂一點兒VB,老大想要我給他進行一下培訓,各位大哥有沒有這方面的培訓資料啊?
- 关于VB打包需要包含哪些文件?详细告诉给分100?
- 数据库解锁的问题
- 图书管理系统用VB编程的源代码 急求!!!
- 有没有讲解用EXCEL做打印预览和报表的书或资料
- 用winsock控件,相关的初始设置问题
- 小问题,Slider滑标控件如何添加?
'初始化“学历”组合框的值
Private Sub LoadXlCombo()
If recXl.State = 1 Then recXl.Close
recXl.CursorLocation = adUseClient
recXl.Open "select * from 学历信息 order by 学历信息", adoCon, adOpenKeyset, adLockPessimistic
cobXl.Clear
If recXl.RecordCount > 0 Then
recXl.MoveFirst
For i = 0 To recXl.RecordCount - 1
cobXl.AddItem Trim(recXl!学历信息), i
recXl.MoveNext
Next
End If
cobXl.AddItem "新建...", 0
End Sub
Private Sub LoadZwCombo()
If recZw.State = 1 Then recZw.Close
recZw.CursorLocation = adUseClient
recZw.Open "select * from 职务信息 order by 职务信息", adoCon, adOpenKeyset, adLockPessimistic If recZw.RecordCount > 0 Then
for i=recZw.RecordCount - 1 to 1 step -1
cobZw.RemoveItem i
next
recZw.MoveFirst
For i = 0 To recZw.RecordCount - 1
cobZw.AddItem recZw!职务信息, i
recZw.MoveNext
Next
else
cobZw.AddItem "新建...", 0
End If
End Sub'“学历信息”新建记录
Private Sub cobXl_Click()
Dim strTmp As String
If Trim(cobXl.Text) = "新建..." Then
'下面是调用另一个窗体,会返回一个字符串的值
strTmp = frm基本信息_新建.LoadData("学历信息")
LoadXlCombo
End If
cobXl.Text = strTmp '我要让组合框的值为上面的返回值
End Sub
Private Sub LoadZwCombo()
If recZw.State = 1 Then recZw.Close
recZw.CursorLocation = adUseClient
recZw.Open "select * from 职务信息 order by 职务信息", adoCon, adOpenKeyset, adLockPessimistic If recZw.RecordCount > 0 Then
for i=recZw.RecordCount - 1 to 1 step -1
cobZw.RemoveItem i
next
recZw.MoveFirst
For i = 0 To recZw.RecordCount - 1
cobZw.AddItem recZw!职务信息, i+1
recZw.MoveNext
Next
else
cobZw.AddItem "新建...", 0
End If
End Sub'“学历信息”新建记录
Private Sub cobXl_Click()
Dim strTmp As String
If Trim(cobXl.Text) = "新建..." Then
'下面是调用另一个窗体,会返回一个字符串的值
strTmp = frm基本信息_新建.LoadData("学历信息")
LoadXlCombo
End If
cobXl.Text = strTmp '我要让组合框的值为上面的返回值
End Sub
你可以运行一下看看
Private Sub LoadZwCombo()
If recZw.State = 1 Then recZw.Close
recZw.CursorLocation = adUseClient
recZw.Open "select * from 职务信息 order by 职务信息", adoCon, adOpenKeyset, adLockPessimistic
if cobZw.listcount <=0 then
cobZw.AddItem "新建...", 0
end if
If recZw.RecordCount > 0 Then
for i=recZw.RecordCount - 1 to 1 step -1
cobZw.RemoveItem i
next
recZw.MoveFirst
For i = 0 To recZw.RecordCount - 1
cobZw.AddItem recZw!职务信息, i+1
recZw.MoveNext
Next
End If
End Sub'“学历信息”新建记录
Private Sub cobXl_Click()
Dim strTmp As String
If Trim(cobXl.Text) = "新建..." Then
'下面是调用另一个窗体,会返回一个字符串的值
strTmp = frm基本信息_新建.LoadData("学历信息")
LoadXlCombo
End If
cobXl.Text = strTmp '我要让组合框的值为上面的返回值
End Sub
Private Sub LoadZwCombo()
If recZw.State = 1 Then recZw.Close
recZw.CursorLocation = adUseClient
recZw.Open "select * from 职务信息 order by 职务信息", adoCon, adOpenKeyset, adLockPessimistic
if cobZw.listcount <=0 then
cobZw.AddItem "新建...", 0
end if
If recZw.RecordCount > 0 Then
if cobZw.listcount >1 then
for i=recZw.RecordCount - 1 to 1 step -1
cobZw.RemoveItem i
next
end if
recZw.MoveFirst
For i = 0 To recZw.RecordCount - 1
cobZw.AddItem recZw!职务信息, i+1
recZw.MoveNext
Next
End If
End Sub'“学历信息”新建记录
Private Sub cobXl_Click()
Dim strTmp As String
If Trim(cobXl.Text) = "新建..." Then
'下面是调用另一个窗体,会返回一个字符串的值
strTmp = frm基本信息_新建.LoadData("学历信息")
LoadXlCombo
End If
cobXl.Text = strTmp '我要让组合框的值为上面的返回值
End Sub
第一次是选择“新建”值触发click,你的代码将其替换为strTmp取回的值。此时因为你的赋值又一次触发click事件,因为此时Trim(cobXl.Text) <> "新建...",你的代码不执行if中的取值代码,strTmp当然是空字符串。而你又用strTmp给cobXl.Text赋了值,所以显示为空。解决办法:
1 将strTmp定义为窗体级变量。代码不变。或者
2 代码如下改动。Trim(cobXl.Text) <> "新建..."时不赋值。Private Sub cobXl_Click()
Dim strTmp As String
If Trim(cobXl.Text) = "新建..." Then
'下面是调用另一个窗体,会返回一个字符串的值
strTmp = frm基本信息_新建.LoadData("学历信息")
LoadXlCombo
cobXl.Text = strTmp '我要让组合框的值为上面的返回值
End If
End Sub