如何在VB中实现双关键字段的校验??(急急)!!

weity 2000-07-05 09:23:00
我现在有两个表
1:部署表 关键字“部署”
2:科表 关键字“部署,科”
现在如何进行两个关键字的校验??
例如:

“部署” “科” 两个字段
(1)“部署” 输入正确 进入 “科”字段里 标记为点A
(2)由“科”字段在返回“部署”,validate()事件发生,我该如何处理??点B
(3)由“科”字段继续向下一个字段移动,该如何避免validate()事件??点C

这里要考虑由 A 进入 B 和 由 A 进入 C 的区别。
如果可以 进入 B 中 你也可以进入 C 中,而你不知道“部署”“科”是否正确!?

不知道 我的表述清楚吗?
可以来信问我! weigs@sina.com

现在的validate() 对单个字段的校验还是不错的。
可是我 经常要用到这样的 双字段的校验!!
请教高手啦!帮帮忙!!
谢谢 :-)


...全文
140 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
weity 2000-07-11
  • 打赏
  • 举报
回复
各位:
经过我的思考线已经实现这个功能了
请看:

我使用了一个标志变量bCancel
如果为TRUE说明有错误,
在LostFocus事件中判断该变量
则可以实现校验功能。
Private Sub txtBF_KAA_GotFocus()
Set mobjFocusCTRL = Me.ActiveControl
End Sub
Private Sub txtBF_KAA_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
SendKeys "{tab}"
KeyAscii = 0
End If
End Sub
Private Sub txtBF_KAA_LostFocus() '--“科”字段
Dim strMsgBox As String
Dim intMsgKbn As Integer

If bCancel Then
If YaCS001("BF01", strMsgBox, intMsgKbn) = True Then
MsgBox strMsgBox, intMsgKbn
End If
txtBF_BSY.SetFocus
bCancel = False
End If
End Sub

Private Sub txtBF_KAA_Validate(Cancel As Boolean)'--“科”字段校验

Dim varReturnVal() As Variant
Dim strWhere As String
Dim strMsgBox As String
Dim intMsgKbn As Integer
If txtBF_BSY.Text <> "" And txtBF_KAA.Text <> "" And
IsNumeric(txtBF_KAA.Text) Then
strWhere = " Where BF_BSY='" & CStr(txtBF_BSY.Text) & "' and BF_KAA='" & CStr(txtBF_KAA.Text) & "'"

txtBF_NAM1.Text = ""

If S_GetName("BF", strWhere, varReturnVal(), 2) Then
txtBF_NAM1.Text = strBE_NAM1 & "丂" & Trim(varReturnVal(0))
bCancel = False
Else
bCancel = True
End If

ElseIf txtBF_BSY.Text <> "" And txtBF_KAA.Text = "" Then
bCancel = True
Else
bCancel = True
End If
End Sub
jing 2000-07-07
  • 打赏
  • 举报
回复
1.数据在保存前进行检验
2.用数据库触发器
3.不输入用list选择
jing 2000-07-07
  • 打赏
  • 举报
回复
后台数据库是什么?
Tyro 2000-07-07
  • 打赏
  • 举报
回复
好像不行呀!
weity 2000-07-07
  • 打赏
  • 举报
回复
大家好:
我是完全用手工作的(而且直接用的oracle 技术)不用任何的数据对象的引用
现在是,在非绑定的情况下如何进行双关键字的校验?
我查过微软的MSCD教材 上面只有单个字段的校验,请高手指点。

另外,关键字是一定要校验的否则下面的数据如何选出来呢?
所以,causesvalidation 属性是必须为True 的。
Tyro 2000-07-06
  • 打赏
  • 举报
回复
控件的 CausesValidation 属性值设置为False可以避免validate()事件!

另外你描述的有点乱,我没看懂你要达到什么目的!
eye 2000-07-06
  • 打赏
  • 举报
回复
You can use dbengine.
不用数据控件,引用dao来手工做
weity 2000-07-06
  • 打赏
  • 举报
回复
TO Tophead:
yes it is textbox control
but is unbound data
TopHead 2000-07-05
  • 打赏
  • 举报
回复
输入框是Text吗?数据库绑定啊?

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧