以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  提示的意思是什么?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=26598)

--  作者:cks
--  发布时间:2012/12/9 14:09:00
--  提示的意思是什么?
在客体中报错,谁能帮我说明一下这个报错是哪个问题?
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20121209140731.png
图片点击可在新窗口打开查看

--  作者:lin_hailun
--  发布时间:2012/12/9 15:03:00
--  
 应该是一个日期列和一个字符串""比较了。

 比如 If 日期列 = "" Then

 空值的判断,用IsNull,或者用 is nothing

 http://www.foxtable.com/help/topics/1470.htm
--  作者:cks
--  发布时间:2012/12/9 15:41:00
--  
多谢林总,一针见血,问题解决了
--  作者:cks
--  发布时间:2012/12/9 15:52:00
--  

林总,再问一个问题,如果判断一个日期输入控件不为空的话,代码这样写就报上面的错误,那我应该怎么样判断?

 

Dim bm As WinForm.ComboBox = e.Form.Controls("部门")
Dim xm As WinForm.ComboBox = e.Form.Controls("姓名")
Dim lsfs As WinForm.TextBox = e.Form.Controls("联系方式")
Dim ccrc As WinForm.DateTimePicker = e.Form.Controls("出差日期1")
If bm.Text<>"" And xm.Text<>"" And lsfs.Text <> "" And lsfs.Value <> "" Then
    DataTables("出差申请表").Save
    If DataTables("出差申请表").HasChanges Then
        DataTables("出差申请表").Save
    End If
    Forms("出差申请系统").Close
    DataTables("出差申请表").AllowEdit = False
Else
    MessageBox.Show("请确认必填项;部门 / 申请人姓名 / 联系方式 / 不为空","检查",MessageBoxButtons.OK,MessageBoxIcon.Error)
End If


--  作者:cks
--  发布时间:2012/12/9 17:51:00
--  

喔喔,林总今天休息去了.....


--  作者:unverse
--  发布时间:2012/12/9 23:14:00
--  
If bm.value<>"" And xm.value<>"" And lsfs.value<> "" And lsfs.Value <> "" Then
这样试试可以解决不。。。commbox没有TEXT属性吧。。
[此贴子已经被作者于2012-12-9 23:21:26编辑过]

--  作者:unverse
--  发布时间:2012/12/9 23:16:00
--  
If DataTables("出差申请表").HasChanges Then
        DataTables("出差申请表").Save
    End If
你的这段代码没有意义吧。。上面有一个DataTables("出差申请表").Save,已经将这个表保存了,,,所以这个表.haschanges肯定为假了,也就不执行了,,,所以没有意思 。根本不会执行。

--  作者:unverse
--  发布时间:2012/12/9 23:17:00
--  

以下是帮助里的内容:仔细斟酌

 

 

Text

字符型,返回文本框当前显示的文本内容。
文本框很少使用此属性,一般是使用Value属性。

注意TextValue属性两个属性的不同:

通常两者返回的内容是相同的,但是在输入的过程中,两者会有所差别。例如有一个文本框,它最初的内容是"中国",此时其Text和Value属性的内容都是“中国”,现在选择该文本框进行编辑,输入“中华”,此时Text的内容是“中华”,而Value的还是“中国”,输入结束,选择其它控件,此时该控件的Text和Value属性都是“中华”。通俗一点:Value返回的是控件已经输入完成的值,而Text返回的是控件中显示的文本内容,它会随着编辑的进行,而不断地变化。

示例:

例如希望某文本框在输入的过程中,能够检测输入内容的长度,如果输入内容达到4个字符,就自动结束输入,跳转到下一个控件。
为此将文本框的TextChanged事件代码设置为:

Dim tx As WinForm.TextBox = e.Sender
If
tx.Text.Length = 4 Then
    Sendkeys.Send(
"{TAB}") \'模拟按Tab键,选择下一个控件
End
If

由于Value属性只能返回文本框输入结束后的内容,所以上面的代码使用了Text属性。

 

总结:

实际编码的时候,都应该使用Value属性,而不是Text属性,除非想在用户输入的过程中,获得正在输入的内容,才可以使用Text属性


--  作者:cks
--  发布时间:2012/12/10 7:36:00
--  

呵呵,多谢师兄,上面的代码是有点重复了,按你的方法还是没有实现对比


--  作者:lin_hailun
--  发布时间:2012/12/10 8:33:00
--  
 If ccrc.Value IsNot Nothing Then

 End If
[此贴子已经被作者于2012-12-10 8:33:18编辑过]