代码如下,我想实现的是用数据库添加部门,但在测试时出现即使没有输入内容也会添加部门成功,所以我在添加部门代码之前
加上了判断语句,如下红色代码所示。但是出现提示信息之后,输入焦点并没有回到text1,恳请赐教。
Private Sub Command1_Click()
Dim mrc As New ADODB.Recordset
Dim txtsql As String
Dim msgtext As String
Dim sign As Integer
Dim cn As New ADODB.Connection
If Text1.Text = "" Or Text2.Text = "" Then
MsgBox "部门编号和部门名称都必须填写", vbOKOnly, "提示"
Text1.SetFocus
End If
cn.Open ConnectionString
txtsql = " select * from 部门表 where 部门名称='" & Text1.Text & "' or 部门编号='" & Text2.Text & "'"
If mrc.State <> adStateClosed Then mrc.Close
mrc.Open txtsql, cn, adOpenKeyset, adLockReadOnly
If mrc.RecordCount > 0 Then
MsgBox "输入的部门名称或部门编号已经存在,请重新输入!", 48, "提示"
mrc.Close
Exit Sub
Else
txtsql = " insert into 部门表(部门名称,部门编号) values('" & Text1.Text & "','" & Text2.Text & "')"
If MsgBox("您确定添加该部门?", vbYesNo, "提示") = vbYes Then
cn.Execute txtsql
MsgBox "添加新部门成功!"
Unload Me
frmMain.Show
Else
Unload Me
End If
End If
mrc.Close
End Sub
加上了判断语句,如下红色代码所示。但是出现提示信息之后,输入焦点并没有回到text1,恳请赐教。
Private Sub Command1_Click()
Dim mrc As New ADODB.Recordset
Dim txtsql As String
Dim msgtext As String
Dim sign As Integer
Dim cn As New ADODB.Connection
If Text1.Text = "" Or Text2.Text = "" Then
MsgBox "部门编号和部门名称都必须填写", vbOKOnly, "提示"
Text1.SetFocus
End If
cn.Open ConnectionString
txtsql = " select * from 部门表 where 部门名称='" & Text1.Text & "' or 部门编号='" & Text2.Text & "'"
If mrc.State <> adStateClosed Then mrc.Close
mrc.Open txtsql, cn, adOpenKeyset, adLockReadOnly
If mrc.RecordCount > 0 Then
MsgBox "输入的部门名称或部门编号已经存在,请重新输入!", 48, "提示"
mrc.Close
Exit Sub
Else
txtsql = " insert into 部门表(部门名称,部门编号) values('" & Text1.Text & "','" & Text2.Text & "')"
If MsgBox("您确定添加该部门?", vbYesNo, "提示") = vbYes Then
cn.Execute txtsql
MsgBox "添加新部门成功!"
Unload Me
frmMain.Show
Else
Unload Me
End If
End If
mrc.Close
End Sub
MsgBox "部门编号和部门名称都必须填写", vbOKOnly, "提示"
Text1.SetFocus
End If
在end if 前添加exit subIf trim(Text1.Text) = "" Or trim(Text2.Text) = "" Then
MsgBox "部门编号和部门名称都必须填写", vbOKOnly, "提示"
Text1.SetFocus
exit sub
End If
但是我想知道我的代码为什么不能实现这个功能呢,还有加上 exit sub 为什么就能实现功能呢?
恳请赐教~~~~
MsgBox "部门编号和部门名称都必须填写", vbOKOnly, "提示"
Text1.SetFocus
End If 都是在command_click过程里面。你在做上面判断的时候。如果不符合条件。你还是在继续执行下面的过程
cn.Open ConnectionString
txtsql = " select * from 部门表 where 部门名称='" & Text1.Text & "' or 部门编号='" & Text2.Text & "'"
If mrc.State <> adStateClosed Then mrc.Close
mrc.Open txtsql, cn, adOpenKeyset, adLockReadOnly
If mrc.RecordCount > 0 Then
MsgBox "输入的部门名称或部门编号已经存在,请重新输入!", 48, "提示"
mrc.Close
Exit Sub
Else
txtsql = " insert into 部门表(部门名称,部门编号) values('" & Text1.Text & "','" & Text2.Text & "')"
If MsgBox("您确定添加该部门?", vbYesNo, "提示") = vbYes Then
cn.Execute txtsql
MsgBox "添加新部门成功!"
Unload Me
frmMain.Show
Else
Unload Me
End If
End If
mrc.Close
加exit sub就是在判断为空的时候就退出command_click这个过程。不执行此过程
MsgBox "部门编号和部门名称都必须填写", vbOKOnly, "提示"
Text1.SetFocus
End If 都是在command_click过程里面。你在做上面判断的时候。如果不符合条件。你还是在继续执行下面的过程
cn.Open ConnectionString
txtsql = " select * from 部门表 where 部门名称='" & Text1.Text & "' or 部门编号='" & Text2.Text & "'"
If mrc.State <> adStateClosed Then mrc.Close
mrc.Open txtsql, cn, adOpenKeyset, adLockReadOnly
If mrc.RecordCount > 0 Then
MsgBox "输入的部门名称或部门编号已经存在,请重新输入!", 48, "提示"
mrc.Close
Exit Sub
Else
txtsql = " insert into 部门表(部门名称,部门编号) values('" & Text1.Text & "','" & Text2.Text & "')"
If MsgBox("您确定添加该部门?", vbYesNo, "提示") = vbYes Then
cn.Execute txtsql
MsgBox "添加新部门成功!"
Unload Me
frmMain.Show
Else
Unload Me
End If
End If
mrc.Close
加exit sub就是在判断为空的时候就退出command_click这个过程。不执行此过程