以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]怎样在同一单元格内追加字符串 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=88689) |
||||
-- 作者:33chyh -- 发布时间:2016/8/7 19:59:00 -- [求助]怎样在同一单元格内追加字符串 老师您好! 我想将下图中“卷1”表中的每个同学的两到题答案与“答案”表中对应的答案对比找到它们之间的不同点,例如,甲同学的“卷1”表中“题1答”列的录入结果是“abc”,而“答案”表中的“题1答案”列是“ab”,那么它们之间的不同点是c。然后,将这名学生姓名填到“统计”表中对应单元格中,例如甲同学作答结果和实际答案之间不同点是c,那么就在“统计”表中“试卷名”行为1、列名为C的的对应单元格中填入“甲”。又如,甲同学的“卷1”表中“题2答”列的录入结果是“b”,而“答案”表中的“题2答案”列是“c”,那么它们之间的不同点是bc。那么就在“统计”表中“试卷名”行为1、列名为b和c的两个单元格中都写入“甲”。如果在“卷1”表中乙同学的题1答”列的录入结果是“ac”,他作答结果和实际答案之间不同点是bc,应该在统计”表中“试卷名”行为1、列名为b、c两列的对应单元格中分别追加写入“乙”。但是由于我在看帮助时,没有找到相关语句,无法实现相关功能,请老师帮我看看如何实现这一功能。 下面是我写的相关代码,但是执行后只能将甲同学的名字写入,如果到乙同学时,甲同学的数据都被覆盖了,请老师帮助看看,我应该改动代码才能达到目的。 Dim tjdr As DataRow = DataTables("统计").find("试卷号 = \'" & DataTables("卷1").name.chars(1) & "\'") 这是我的源文件。
[此贴子已经被作者于2016/8/8 8:11:19编辑过]
|
||||
-- 作者:kylin -- 发布时间:2016/8/7 23:01:00 -- 你的项目目的以及问题描述,确实让人感觉迷糊,可能你的代码也让人迷糊。也许是我的理解能力有问题,呵呵 |
||||
-- 作者:33chyh -- 发布时间:2016/8/8 8:08:00 -- 老师您好!我将设计思路再详细地叙述如下,您看能明白吗? 我想将下图中“卷1”表中的每个同学的两到题答案与“答案”表中对应的答案对比找到它们之间的不同点,例如,甲同学的“卷1”表中“题1答”列的录入结果是“abc”,而“答案”表中的“题1答案”列是“ab”,那么它们之间的不同点是c。然后,将这名学生姓名填到“统计”表中对应单元格中,例如甲同学作答结果和实际答案之间不同点是c,那么就在“统计”表中“试卷名”行为1、列名为C的的对应单元格中填入“甲”。又如,甲同学的“卷1”表中“题2答”列的录入结果是“b”,而“答案”表中的“题2答案”列是“c”,那么它们之间的不同点是bc。那么就在“统计”表中“试卷名”行为1、列名为b和c的两个单元格中都写入“甲”。如果在“卷1”表中乙同学的题1答”列的录入结果是“ac”,他作答结果和实际答案之间不同点是bc,应该在统计”表中“试卷名”行为1、列名为b、c两列的对应单元格中分别追加写入“乙”。但是由于我在看帮助时,没有找到相关语句,无法实现相关功能,请老师帮我看看如何实现这一功能。 [此贴子已经被作者于2016/8/8 8:10:43编辑过]
|
||||
-- 作者:cbt -- 发布时间:2016/8/8 8:31:00 -- 你统计乙 的时候,应该在统计,新增一行,来保存 乙 的数值! |
||||
-- 作者:33chyh -- 发布时间:2016/8/8 9:42:00 -- 谢谢,但是这不符合我的要求。 |
||||
-- 作者:大红袍 -- 发布时间:2016/8/8 9:57:00 -- 单独做一个按钮执行
Dim tjdr As DataRow = DataTables("统计").find("试卷号 = \'1\'") |
||||
-- 作者:33chyh -- 发布时间:2016/8/8 10:44:00 -- 谢谢大红袍老师,我现在还没有进行到按钮设置这一步。如果想在“卷1”表中输入内容回车后就能执行,怎样编写代码呢?在“卷1”事件datacolchanged中编写代码。请老师指导!!! 刚才在将您提供的代码放到该事件中执行后结果有些出入,具体见下图 此主题相关图片如下:整合1.jpg [此贴子已经被作者于2016/8/8 11:23:33编辑过]
|
||||
-- 作者:大红袍 -- 发布时间:2016/8/8 10:45:00 -- 写到 mainTableChanged 事件 |
||||
-- 作者:33chyh -- 发布时间:2016/8/8 15:20:00 -- 刚才在将您提供的代码放到该事件中执行后结果有些出入,具体见下图 |
||||
-- 作者:大红袍 -- 发布时间:2016/8/8 15:30:00 -- Dim tjdr As DataRow = DataTables("统计").find("试卷号 = \'1\'") Dim kfdr As DataRow = DataTables("答案").find("试卷号 = \'1\'") tjdr("A") = Nothing tjdr("B") = Nothing tjdr("C") = Nothing tjdr("D") = Nothing For Each dr As DataRow In DataTables("卷1").DataRows Dim t1 As String = dr("题1答") Dim d1 As String = kfdr("题1答案") Dim t2 As String = dr("题2答") Dim d2 As String = kfdr("题2答案") Dim ts() As String = {t1, t2} Dim ds() As String = {d1, d2} Dim name As String = dr("姓名") For i As Integer = 0 To ts.length-1 For Each s As String In ts(i) If ds(i).Contains(s) = False Then If tjdr.DataTable.DataCols.Contains(s) AndAlso tjdr(s).contains(name) = False Then tjdr(s) = tjdr(s) & name & "," End If End If Next Next For i As Integer = 0 To ts.length-1 For Each s As String In ds(i) If ts(i).Contains(s) = False Then If tjdr.DataTable.DataCols.Contains(s) AndAlso tjdr(s).contains(name) = False Then tjdr(s) = tjdr(s) & name & "," End If End If Next Next Next tjdr("A") = tjdr("A").trim(",") tjdr("B") = tjdr("B").trim(",") tjdr("C") = tjdr("C").trim(",") tjdr("D") = tjdr("D").trim(",") |