以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]请教这段代码的问题出在哪里?谢谢!  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=47238)

--  作者:zhuzhi
--  发布时间:2014/3/6 17:35:00
--  [求助]请教这段代码的问题出在哪里?谢谢!
    Dim nms() As String = {"姓名","部门"}
    If e.NewValue Is Nothing Then 
        For Each nm As String In nms 
            e.DataRow(nm) = Nothing 
        Next 
    Else 
        Dim dr As DataRow 
        dr = DataTables("职工总库").Find("[工号] = \'" & e.NewValue & "\'") 
        If dr IsNot Nothing
            For Each nm As String In nms
                e.DataRow(nm) = dr(nm)
            Next
        End If
    End If
End If
-----------下面为我加入的代码------------
If e.NewValue("来访事由") = 1 Then
    e.DataRow("来访事由") = "工资"
ElseIf e.NewValue("来访事由") = 2 Then
    e.DataRow("来访事由") = "职称"
End If
在 来访登记 这个表的datecolchanged中加入的代码
我是在一个可以使用的代码后面,直接加入了另一个功能的代码
前半部可以使用的代码,是实现在来访登记的工号列输入值,就可以自动在职工总库找到相应的值填入姓名和部门
我加入的后半部代码是想实现,当我在来访登记表(该表叫做学生来访……没有改名字)的来访事由里输入1,则来访事由的值就变成工资,输入2,就变成职称。

但是这样使用则出现了问题
问题1,我在来访登记表增加新行报错,如下:

图片点击可在新窗口打开查看此主题相关图片如下:错误.jpg
图片点击可在新窗口打开查看
无视该错误,在来访登记表的来访事由填写1,回车
则再次报错:

图片点击可在新窗口打开查看此主题相关图片如下:错误1.jpg
图片点击可在新窗口打开查看

请问,问题出在哪里呢?在一个表事件里,加入不同功能的代码,需要特别做什么吗(我不懂编程)。
我自己加的第二段代码,该怎么改呢?

非常感谢!

[此贴子已经被作者于2014-3-6 17:37:37编辑过]

--  作者:Bin
--  发布时间:2014/3/6 17:38:00
--  
代码不正确,哪有e.NewValue("来访事由")  这样的,只有e.DataRow
--  作者:dancedy
--  发布时间:2014/3/6 17:43:00
--  
示例三 http://www.foxtable.com/help/topics/0624.htm
--  作者:狐狸爸爸
--  发布时间:2014/3/6 17:46:00
--  
if e.NewValue = 1 Then
    e.DataRow("来访事由") = "工资"
ElseIf e.NewValue = 2 Then
    e.DataRow("来访事由") = "职称"
End If

--  作者:zhuzhi
--  发布时间:2014/3/6 18:31:00
--  
谢谢大家!按照你们的回复,思考了一下,感觉懂了不少
按照狐爸爸的意见修改了,可以使用,谢谢!
但是还是报了错
一个是在添加新行时,报错: 

图片点击可在新窗口打开查看此主题相关图片如下:错误(更改后).jpg
图片点击可在新窗口打开查看
另外一个是在来访事由输入数字时报错:

图片点击可在新窗口打开查看此主题相关图片如下:错误(更改后)2.jpg
图片点击可在新窗口打开查看
请教一下,这是因为什么呢?谢谢!