Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共19 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:[求助] 这个事件代码如何设置?

1楼
wcs 发表于:2009/4/2 15:17:00
if e.datacol.name = "年" orelse e.datacol.name = "月" orelse e.datacol.name = "日" then
   e.datarow("日期")=e.datarow("年")&"-"&e.datarow("月")&"-"&e.datarow("日")
end if

在datachanged 事件中,我设置了上述代码。

年、月、日这三列的数据总是同时更新的,所以我设置为 orelse 

但是,执行总是出错:“2009--”类型错,不能 记入日期列中。


后来,我设置为了 and

但是,执行以后,日期列为空值,不能触发事件!

请教各们如果计算“日期”列啊?
2楼
wcs 发表于:2009/4/2 15:21:00
年、月、日 是从其他数据库中查询追加进来的。
3楼
狐狸爸爸 发表于:2009/4/2 15:25:00

if e.datacol.name = "年" orelse e.datacol.name = "月" orelse e.datacol.name = "日" then
   dim txt As String  = e.datarow("年")&"-"&e.datarow("月")&"-"&e.datarow("日")
   Dim Dt As Date
   If Date.TryParse(txt,dt) Then
        e.datarow("日期")=dt
   Else

        e.datarow("日期")= nothing

   end if
end if

4楼
czy 发表于:2009/4/2 15:31:00
这样好象也可以。

Dim dr As DataRow = e.DataRow
if e.datacol.name = "年" orelse e.datacol.name = "月" orelse e.datacol.name = "日" then
    if dr.IsNull("年") = false And dr.IsNull("月") = false And dr.IsNull("日") = false Then
        dr("日期")= CDate(dr("年") & "-" & dr("月") &"-"& dr("日"))
    End If
end if
5楼
wcs 发表于:2009/4/2 15:32:00
设置一下转换?

试试!
6楼
czy 发表于:2009/4/2 15:34:00
呵,我的不好。还得加个分支才行。

Dim dr As DataRow = e.DataRow
if e.datacol.name = "年" orelse e.datacol.name = "月" orelse e.datacol.name = "日" then
    if dr.IsNull("年") = false And dr.IsNull("月") = false And dr.IsNull("日") = false Then
        dr("日期")= CDate(dr("年") & "-" & dr("月") &"-"& dr("日"))
    Else
        dr("日期") = Nothing
    End If
end if
7楼
wcs 发表于:2009/4/2 15:48:00
这个问题解决了,但是在datachanged事件中,还有这样一段代码:

if  e.datacol.name = "账套编号" orelse  e.datacol.name = "年"  orelse  e.datacol.name = "月" orelse  e.datacol.name = "日" orelse e.datacol.name = "凭证类型" orelse  e.datacol.name = "凭证编号" orelse  e.datacol.name = "附件张数" then
    dim bm as string = e.datarow("凭证编号").tostring()
    e.datarow("关联") = e.datarow("账套编号")&" "&e.datarow("年")&"年"&e.datarow("月")&"月"&e.datarow("日")&"日"&e.datarow("凭证类型")&bm.PadLeft(4," ")&"号 附件"&e.datarow("附件张数")
end if

这段代码的意思是,当"账套编号"、"年"等等列的内容发生变化时,就更新"关联"列的内容,其中 "凭证编号"转换了一下类型。

执行以后就出现这样的错误提示:


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看


我是一段一段地测试代码的,可以确定就是这一段出错了。
[此贴子已经被作者于2009-4-2 15:49:13编辑过]
8楼
smileboy 发表于:2009/4/2 15:55:00
&符号前后要有空格
9楼
wcs 发表于:2009/4/2 15:58:00

已试过了,还是出相同的错误!

[此贴子已经被作者于2009-4-2 15:59:59编辑过]
10楼
smileboy 发表于:2009/4/2 16:05:00
传文件看看
共19 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02344 s, 2 queries.