以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  多值字段取值问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=30792)

--  作者:wys_sans
--  发布时间:2013/4/3 16:42:00
--  多值字段取值问题

假设有一个人员课程表,其中有人员编号(字符型)、课程编号(字符型的多列值)

其中人员编号取自人员信息表,课程编号取自课程信息表;一个人对应的有多门课程,如果课程表中的某一课程取消了,我原来已设置好人员课程表的信息,怎么实现自动更新。也就是原来课程表的课程编号怎么同步去掉失效的课程编号。


--  作者:Bin
--  发布时间:2013/4/3 16:49:00
--  
只能在课程表中的.删除行事件中. 利用Like 把所有包含该课程编号的 行筛选出来..再循环把编号删掉
--  作者:wys_sans
--  发布时间:2013/4/3 16:50:00
--  
需要代码,手动操作在软件上实现不是太理想。
--  作者:Bin
--  发布时间:2013/4/3 16:54:00
--  
以下是引用Bin在2013-4-3 16:49:00的发言:
只能在课程表中的.删除行事件中. 利用Like 把所有包含该课程编号的 行筛选出来..再循环把编号删掉
我说的方法就是代码实现的方法啊


--  作者:wys_sans
--  发布时间:2013/4/3 16:59:00
--  

你的意思我明白,但代码怎么写呀?

 

将其中单元格中的这部分内容找出来,再删除?多列字段内容筛选后删除怎么写,这是问题的关键。

 

多列字段但是文本型,用SQL语句也难实现呀。

[此贴子已经被作者于2013-4-3 17:00:37编辑过]

--  作者:Bin
--  发布时间:2013/4/3 17:33:00
--  
Dim drs As List(Of DataRow)
drs = DataTables("人员课程").Select("[课程编号] like \'*KC1*\' ")

For i As Integer=0 To drs.Count-1
   drs(i)("课程编号")=drs(i)("课程编号").Replace("KC1","")
   drs(i)("课程编号")=drs(i)("课程编号").Replace(",KC1","")
   If drs(i)("课程编号")(0) ="," Then
     drs(i)("课程编号")=drs(i)("课程编号").Remove(0,1)
   End If
Next

--  作者:Bin
--  发布时间:2013/4/3 17:33:00
--  
以上代码写在课程表中的.删除行事件中