标题: 失去焦点 [打印本页] 作者: majie0218 时间: 2008-9-29 10:49 标题: 失去焦点 失去焦点在窗体中的职工ID文本框的失去焦点事件中添加如下代码
Private Sub 职工ID_LostFocus()
On Error GoTo Err_职工ID_LostFocus
'定义字符型变量
Dim STemp As String
'定义用于循环的整型变量
Dim i As Integer
'定义数据集变量
Dim Rs As ADODB.Recordset
'为定义的数据集变量分配空间
Set Rs = New ADODB.Recordset
'为打开数据表"查询语句"字符型变量赋值
STemp = "Select * From 职工基本资料"
'打开"职工基本资料"数据表
Rs.Open STemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
'把记录集指针指向第一条记录
Rs.MoveFirst
'使用FOR...NEXT循环语句在Rs数据集中循环判断
For i = 1 To Rs.RecordCount
'判断记录集中的"职工ID"字段值与窗体中的"职工ID"文本框的值的关系
If Rs("职工ID") = Me![职工ID] Then
'如果相同,则把该记录字段的值赋予窗体对应文本框内
Me![ 所在院系] = Rs("所在院系 ")
Me![ 姓名] = Rs("姓名")
Me![ 基本工资] = Rs("工资")
Else
'如果不相同,则移动到下一条记录
Rs.MoveNext
End If
Next i
'释放系统为Rs数据集分配的空间
Set Rs = Nothing
Exit_职工ID_LostFocus:
Exit Sub
Err_职工ID_LostFocus:
MsgBox Err.Description
Resume Exit_职工ID_LostFocus
End Sub
Private Sub 职工ID_LostFocus()
Dim STemp As String
Dim i As Integer
Dim Rs As New ADODB.Recordset
STemp = " Select * From 职工基本资料 WHERE 职工ID='" & Me.职工ID & "'"
Rs.Open STemp, CurrentProject.Connection
If Rs.RecordCount <> 0 Then
Me.所在院系 = Rs("所在院系 ")
Me.姓名 = Rs("姓名")
Me.基本工资 = Rs("工资")
Else
MsgBox "对不起,没有相应的记录", vbCritical
End If
Rs.Close
Set Rs = Nothing
End Sub作者: zyp 时间: 2008-9-29 11:37
或者来个更简单的
Private Sub 职工ID_LostFocus()
Dim IDstr As String
IDstr = Me.职工ID
If DCount("*", "职工基本资料", "[职工ID]='" & IDstr & "'") = 0 Then
MsgBox "对不起,没有相应的记录", vbCritical
Else
Me.所在院系 = DLookup("[所在院系]", "职工基本资料", "[职工ID]='" & IDstr & "'")
Me.姓名 = DLookup("[姓名]", "职工基本资料", "[职工ID]='" & IDstr & "'")
Me.基本工资 = DLookup("[基本工资]", "职工基本资料", "[职工ID]='" & IDstr & "'")
End If
End Sub作者: majie0218 时间: 2008-9-29 11:39
[:50] 谢谢了作者: tz-chf 时间: 2008-9-29 11:58
或者干脆不管它能不能找到,就dlookup....