前言:
而今大家对“vbnetactivex控件”大概比较珍视,兄弟们都想要剖析一些“vbnetactivex控件”的相关资讯。那么小编同时在网摘上收集了一些对于“vbnetactivex控件””的相关知识,希望同学们能喜欢,小伙伴们一起来了解一下吧!如下图所示,员工入职登记、查询员工信息共用同一个窗体:窗体Caption、标签Caption、按钮1的Caption、按钮3的Caption不一样而已。
思路:
申明公共变量,可以在不同窗体直接调用,传递不同参数,则完成不同的功能。
一、在模块申明公共变量YGID,存放员工身份证号码
二、选中列表框一行,将该名员工的身份证号码赋值给公共变量YGID
Private Sub ListBox1_Click()
Dim i%
YGID = "" '清空公共变量YGID
'循环Listbox1列表
For i = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(i) Then
YGID = Me.ListBox1.List(i, 6) '在列表框选中员工的身份证号码赋值给公共变量YGID
Me.员工资料.Enabled = True
End If
Next i
End Sub
三、员工信息窗体加载事件:若公共变量YGID为空,则执行员工入职登记功能;若公共变量YGID不为空(即存在员工身份证号码),则将该名员工的所有信息在窗体中展示出来。
'窗体初始化,接收公共变量YGID的值
Private Sub UserForm_Initialize()
On Error Resume Next
Dim arr, j%, rng As Range
'清空部门列表,重新加载部门列表
Me.部门.Clear
arr = Sheets("设置").Range("A9").CurrentRegion
For j = 1 To UBound(arr, 2)
Me.部门.AddItem arr(1, j)
Next j
If YGID = "" Then '公共变量YGID为空,该窗体为员工入职登记
Me.Caption = "员工入职登记"
Me.Label8.Caption = "员工入职登记"
Me.CommandButton1.Caption = "保存信息"
Me.CommandButton3.Caption = "清 空"
Call 重置控件
Else '公共变量YGID不为空,则在本窗体加载员工信息
Me.Caption = "员工详细资料"
Me.Label8.Caption = "员工详细资料"
Me.CommandButton1.Caption = "修改信息"
Me.CommandButton3.Caption = "办离职"
Set rng = Sheets("花名册").Range("J:J").Find(YGID, , , 1) '花名册第J列查询YGID
If Not rng Is Nothing Then '若该员工在花名册,则在窗体加载信息
'窗体填入:姓名
Me.姓名.Text = rng.Offset(0, -8)
'窗体填入:性别
If rng.Offset(0, -7) = "男" Then Me.OptionButton1.Value = True
If rng.Offset(0, -7) = "女" Then Me.OptionButton2.Value = True
'窗体填入:部门
Me.部门.Value = rng.Offset(0, -6)
'窗体填入:职务
Me.职务.Value = rng.Offset(0, -5)
'窗体填入:入职时间
Me.入职时间.Text = Format(rng.Offset(0, -4), "yyyy/mm/dd")
'窗体填入:手机号码
Me.手机号码.Text = rng.Offset(0, -1)
'窗体填入:身份证号码
Me.身份证号码.Text = rng
'窗体填入:家庭住址
Me.家庭住址.Text = rng.Offset(0, 1)
'窗体填入:是否住宿
If rng.Offset(0, 2) = "住宿" Then
Me.住宿.Value = True
Me.宿舍地址.Enabled = True
Me.房间号.Enabled = True
Me.铺位.Enabled = True
Me.入住时间.Enabled = True
Else
Me.住宿.Value = False
Me.宿舍地址.Enabled = False
Me.房间号.Enabled = False
Me.铺位.Enabled = False
Me.入住时间.Enabled = False
End If
'窗体填入:宿舍地址
Me.宿舍地址.Value = rng.Offset(0, 3)
'窗体填入:房间号
Me.房间号.Value = rng.Offset(0, 4)
'窗体填入:铺位
Me.铺位.Value = rng.Offset(0, 5)
'窗体填入:入住时间
Me.入住时间.Text = Format(rng.Offset(0, 6), "yyyy/mm/dd")
Else
MsgBox "该员工不存在!", vbCritical, "错误!"
End If
End If
End Sub
标签: #vbnetactivex控件