Foxtable(狐表)用户栏目专家坐堂 → 不同表间字符对比和计算


  共有3062人关注过本帖树形打印复制链接

主题:不同表间字符对比和计算

帅哥哟,离线,有人找我吗?
33chyh
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:124 积分:1202 威望:0 精华:0 注册:2015/12/27 21:01:00
  发帖心情 Post By:2016/2/29 17:22:00 [只看该作者]

哦,一句话点醒梦中人!谢谢!

[此贴子已经被作者于2016/2/29 17:22:42编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
33chyh
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:124 积分:1202 威望:0 精华:0 注册:2015/12/27 21:01:00
  发帖心情 Post By:2016/2/29 20:06:00 [只看该作者]

大红袍老师:您好!
真诚感谢您一直以来对我提出的问题给予耐心、细致的解答。我的想法是将“答题数据1表”中的两道客观题答案与“客观题答案表”中第一行两道客观题答案进行对比后进行评分,同时找出“答题数据1表”中客观题1和客观题2数据与答案表中不同的地方。例如正确答案是AB,某同学书写答案是BC,那么程序就需要找出AC,然后通过“客观题描述表”的第一列找出选项A和选项C的内容并写到“问题总结表”中的问题总结列相应位置处。另外,我是刚刚接触狐表这样的程序,帮助文件有许多地方看过了,也不太明白如何做,问的一些问题很不好回答。请您谅解!由于“答题数据1表”中没有“试卷号”列,我将您提供的语句改动了一下,出现了问题,请您帮我看看!!具体代码如下:
Dim kgt1,kgt2,zgt1,zgt2 As Integer
For Each dr As DataRow In DataTables("答题数据1").datarows
    Dim fdr1 As DataRow = DataTables("客观题答案").find("客观题1 = '" & dr("客观题1") & "'" And "试卷号 = '" & DataTables("答题数据1").caption & "'")
    Dim fdr2 As DataRow = DataTables("客观题答案").find("客观题2 = '" & dr("客观题2") & "'" And "试卷号 = '" & DataTables("答题数据1").caption & "'")
    Dim ndr As DataRow = DataTables("成绩表").Find("学号 = '" & dr("学号") & "'")
    If ndr Is Nothing Then
        ndr = DataTables("成绩表").AddNew
        ndr("学号") = dr("学号")
    End If
    If fdr1 Is Nothing Then
        kgt1 = 0
    Else
        kgt1= 1
    End If
    If fdr2 Is Nothing Then
        kgt2 = 0
    Else
        kgt2= 1
    End If
    If dr("主观题1") = "t" Then
        zgt1 = 1
    Else
        zgt1=0
    End If
    If dr("主观题2") = "t" Then
        zgt2 = 1
    Else
        zgt2=0
    End If      '给相关列赋值
    ndr("成绩1") = kgt1 + kgt2 + zgt1+ zgt2
Next
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:跨表识别、统计和计算.foxdb


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/29 20:12:00 [只看该作者]

Dim fdr1 As DataRow = DataTables("客观题答案").find("客观题1 = '" & dr("客观题1") & "' And 试卷号 = '" & DataTables("答题数据1").caption & "'")
Dim fdr2 As DataRow = DataTables("客观题答案").find("客观题2 = '" & dr("客观题2") & "' And 试卷号 = '" & DataTables("答题数据1").caption & "'")

 回到顶部
帅哥哟,离线,有人找我吗?
33chyh
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:124 积分:1202 威望:0 精华:0 注册:2015/12/27 21:01:00
  发帖心情 Post By:2016/2/29 20:29:00 [只看该作者]

已经不报错了,谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
33chyh
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:124 积分:1202 威望:0 精华:0 注册:2015/12/27 21:01:00
  发帖心情 Post By:2016/3/3 14:36:00 [只看该作者]

大红袍老师:下面是我编写的一段程序代码,在填写答题数据1表中客观题1答案后出现下列提示信息。同时不能将客观题描述表中相关内容填写到问题总结表中的相关地方。请您帮助我看看,问题出在哪儿。谢谢!!!
Dim kgt1,kgt2,zgt1,zgt2 As Integer
For Each dr As DataRow In DataTables("答题数据1").datarows
    Dim fdr1 As DataRow = DataTables("客观题答案").find("客观题1 = '" & dr("客观题1") & "' And 试卷号 = '" & DataTables("答题数据1").name & "'")
    Dim fdr2 As DataRow = DataTables("客观题答案").find("客观题2 = '" & dr("客观题2") & "' And 试卷号 = '" & DataTables("答题数据1").name & "'")
    Dim ndr As DataRow = DataTables("成绩表").Find("学号 = '" & dr("学号") & "'")
    If ndr Is Nothing Then
        ndr = DataTables("成绩表").AddNew
        ndr("学号") = dr("学号")
    End If
    If fdr1 Is Nothing Then
        kgt1 = 0
    Else
        kgt1= 1
    End If
    If fdr2 Is Nothing Then
        kgt2 = 0
    Else
        kgt2= 1
    End If
    If dr("主观题1") = "t" Then
        zgt1 = 1
    Else
        zgt1=0
    End If
    If dr("主观题2") = "t" Then
        zgt2 = 1
    Else
        zgt2=0
    End If      '给相关列赋值
    ndr("成绩1") = kgt1 + kgt2 + zgt1+ zgt2
    Dim kmdr As DataRow = DataTables("客观题描述").find("'试卷号='" & DataTables("答题数据1").Name & "'")  '从这以下是对比客观题答案和答题数据1录入客观题1找出不同选项,并将这些选项对应的内容从客观题描述中提取出来填到问题总结中
    Dim wtzj As DataRow = DataTables("问题总结").find("学号 = '" & dr("学号") & "'")
    Dim kegtdr1 As String = dr("客观
图片点击可在新窗口打开查看此主题相关图片如下:程序运行异常1.jpg
图片点击可在新窗口打开查看
题1")
    Dim kegtdadr1 As String = fdr1("客观题1")
    If kegtdr1.contains("a") = True And kegtdadr1.contains("a") = True
    Else If kegtdr1.contains("a") = True Or kegtdadr1.contains("a") = True Then
        wtzj("问题总结") = kmdr("选项A")
    End If
    If kegtdr1.contains("b") = True And kegtdadr1.contains("b") = True
    Else If kegtdr1.contains("b") = True Or kegtdadr1.contains("b") = True Then
        If wtzj("问题总结").IsNull Then
            wtzj("问题总结") = kmdr("选项B")
        Else wtzj("问题总结") = wtzj("问题总结") & kmdr("选项B")
        End If
    End If
    If kegtdr1.contains("c") = True And kegtdadr1.contains("c") = True
    Else If kegtdr1.contains("c") = True Or kegtdadr1.contains("c") = True Then
        If wtzj("问题总结").IsNull Then
            wtzj("问题总结") = kmdr("选项C")
        Else wtzj("问题总结") = wtzj("问题总结") & kmdr("选项C")
        End If
    End If
    If kegtdr1.contains("d") = True And kegtdadr1.contains("d") = True
    Else If kegtdr1.contains("d") = True Or kegtdadr1.contains("d") = True Then
        If wtzj("问题总结").IsNull Then
            wtzj("问题总结") = kmdr("选项D")
        Else wtzj("问题总结") = wtzj("问题总结") & kmdr("选项D")
        End If
    End If
Next


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:跨表识别、统计和计算.foxdb

[此贴子已经被作者于2016/3/3 14:39:16编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/3 15:30:00 [只看该作者]

Dim kgt1,kgt2,zgt1,zgt2 As Integer
For Each dr As DataRow In DataTables("答题数据1").datarows
    Dim fdr1 As DataRow = DataTables("客观题答案").find("客观题1 = '" & dr("客观题1") & "' And 试卷号 = '" & DataTables("答题数据1").name & "'")
    Dim fdr2 As DataRow = DataTables("客观题答案").find("客观题2 = '" & dr("客观题2") & "' And 试卷号 = '" & DataTables("答题数据1").name & "'")
    Dim ndr As DataRow = DataTables("成绩表").Find("学号 = '" & dr("学号") & "'")
    If ndr Is Nothing Then
        ndr = DataTables("成绩表").AddNew
        ndr("学号") = dr("学号")
    End If
    If fdr1 Is Nothing Then
        kgt1 = 0
    Else
        kgt1= 1
    End If
    If fdr2 Is Nothing Then
        kgt2 = 0
    Else
        kgt2= 1
    End If
    If dr("主观题1") = "t" Then
        zgt1 = 1
    Else
        zgt1=0
    End If
    If dr("主观题2") = "t" Then
        zgt2 = 1
    Else
        zgt2=0
    End If      '给相关列赋值
    ndr("成绩1") = kgt1 + kgt2 + zgt1+ zgt2
    Dim kmdr As DataRow = DataTables("客观题描述").find("试卷号='" & DataTables("答题数据1").Name & "'")  '从这以下是对比客观题答案和答题数据1录入客观题1找出不同选项,并将这些选项对应的内容从客观题描述中提取出来填到问题总结中
    Dim wtzj As DataRow = DataTables("问题总结").find("学号 = '" & dr("学号") & "'")
    If fdr1 IsNot Nothing Then
        Dim kegtdr1 As String = dr("客观题1")
        Dim kegtdadr1 As String = fdr1("客观题1")
       
        If kegtdr1.contains("a") = True And kegtdadr1.contains("a") = True
        Else If kegtdr1.contains("a") = True Or kegtdadr1.contains("a") = True Then
            wtzj("问题总结") = kmdr("选项A")
        End If
        If kegtdr1.contains("b") = True And kegtdadr1.contains("b") = True
        Else If kegtdr1.contains("b") = True Or kegtdadr1.contains("b") = True Then
            If wtzj("问题总结").IsNull Then
                wtzj("问题总结") = kmdr("选项B")
            Else wtzj("问题总结") = wtzj("问题总结") & kmdr("选项B")
            End If
        End If
        If kegtdr1.contains("c") = True And kegtdadr1.contains("c") = True
        Else If kegtdr1.contains("c") = True Or kegtdadr1.contains("c") = True Then
            If wtzj("问题总结").IsNull Then
                wtzj("问题总结") = kmdr("选项C")
            Else wtzj("问题总结") = wtzj("问题总结") & kmdr("选项C")
            End If
        End If
        If kegtdr1.contains("d") = True And kegtdadr1.contains("d") = True
        Else If kegtdr1.contains("d") = True Or kegtdadr1.contains("d") = True Then
            If wtzj("问题总结").IsNull Then
                wtzj("问题总结") = kmdr("选项D")
            Else wtzj("问题总结") = wtzj("问题总结") & kmdr("选项D")
            End If
        End If
    End If
Next

 回到顶部
帅哥哟,离线,有人找我吗?
33chyh
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:124 积分:1202 威望:0 精华:0 注册:2015/12/27 21:01:00
  发帖心情 Post By:2016/3/3 18:37:00 [只看该作者]

大红袍老师:我还想请您帮我看看,由于那个地方代码出现问题,使得问题总结表中无法写入客观题描述表中相应选项的内容。应该怎样改才行呢?例如:在答题数据1表中学号1对应的客观题1处录入ab,根据程序设计意图在客观题描述表中就应该找到选项a和选项c的内容,将这两项内容合并后写入问题总结表中学号1对应的问题总结1处。

Dim kgt1,kgt2,zgt1,zgt2 As Integer
For Each dr As DataRow In DataTables("答题数据1").datarows
    Dim fdr1 As DataRow = DataTables("客观题答案").find("客观题1 = '" & dr("客观题1") & "' And 试卷号 = '" & DataTables("答题数据1").name & "'")
    Dim fdr2 As DataRow = DataTables("客观题答案").find("客观题2 = '" & dr("客观题2") & "' And 试卷号 = '" & DataTables("答题数据1").name & "'")
    Dim ndr As DataRow = DataTables("成绩表").Find("学号 = '" & dr("学号") & "'")
    If ndr Is Nothing Then
        ndr = DataTables("成绩表").AddNew
        ndr("学号") = dr("学号")
    End If
    If fdr1 Is Nothing Then
        kgt1 = 0
    Else
        kgt1= 1
    End If
    If fdr2 Is Nothing Then
        kgt2 = 0
    Else
        kgt2= 1
    End If
    If dr("主观题1") = "t" Then
        zgt1 = 1
    Else
        zgt1=0
    End If
    If dr("主观题2") = "t" Then
        zgt2 = 1
    Else
        zgt2=0
    End If      '给相关列赋值
    ndr("成绩1") = kgt1 + kgt2 + zgt1+ zgt2
    Dim kmdr As DataRow = DataTables("客观题描述").find("试卷号='" & DataTables("答题数据1").Name & "'")  '从这以下是对比客观题答案和答题数据1录入客观题1找出不同选项,并将这些选项对应的内容从客观题描述中提取出来填到问题总结中
    Dim wtzj As DataRow = DataTables("问题总结").find("学号 = '" & dr("学号") & "'")
    If fdr1 IsNot Nothing Then
        Dim kegtdr1 As String = dr("客观题1")
        Dim kegtdadr1 As String = fdr1("客观题1")
       
        If kegtdr1.contains("a") = True And kegtdadr1.contains("a") = True
        Else If kegtdr1.contains("a") = True Or kegtdadr1.contains("a") = True Then
            wtzj("问题总结") = kmdr("选项A")
        End If
        If kegtdr1.contains("b") = True And kegtdadr1.contains("b") = True
        Else If kegtdr1.contains("b") = True Or kegtdadr1.contains("b") = True Then
            If wtzj("问题总结").IsNull Then
                wtzj("问题总结") = kmdr("选项B")
            Else wtzj("问题总结") = wtzj("问题总结") & kmdr("选项B")
            End If
        End If
        If kegtdr1.contains("c") = True And kegtdadr1.contains("c") = True
        Else If kegtdr1.contains("c") = True Or kegtdadr1.contains("c") = True Then
            If wtzj("问题总结").IsNull Then
                wtzj("问题总结") = kmdr("选项C")
            Else wtzj("问题总结") = wtzj("问题总结") & kmdr("选项C")
            End If
        End If
        If kegtdr1.contains("d") = True And kegtdadr1.contains("d") = True
        Else If kegtdr1.contains("d") = True Or kegtdadr1.contains("d") = True Then
            If wtzj("问题总结").IsNull Then
                wtzj("问题总结") = kmdr("选项D")
            Else wtzj("问题总结") = wtzj("问题总结") & kmdr("选项D")
            End If
        End If
    End If
Next

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:跨表识别、统计和计算.foxdb

[此贴子已经被作者于2016/3/3 18:37:13编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/3 19:02:00 [只看该作者]

是不是这里没进去?

 

If fdr1 IsNot Nothing Then

 

你对fdr1的查询,是不是条件错了?要改成这样?

 

Dim fdr1 As DataRow = DataTables("客观题答案").find("试卷号 = '" & DataTables("答题数据1").name & "'")


 回到顶部
帅哥哟,离线,有人找我吗?
33chyh
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:124 积分:1202 威望:0 精华:0 注册:2015/12/27 21:01:00
  发帖心情 Post By:2016/3/3 19:28:00 [只看该作者]

大红袍老师:您提到的两条代码已经用荧光笔标出。是不是这两条。绿色荧光笔标出的部分是这两天新写的,没有这部分内容时,代码运行正常只是不能将相关描述找出。加入这些代码后他们不能完成找出相关描述的要求。

Dim kgt1,kgt2,zgt1,zgt2 As Integer
For Each dr As DataRow In DataTables("答题数据1").datarows
    Dim fdr1 As DataRow = DataTables("客观题答案").find("客观题1 = '" & dr("客观题1") & "' And 试卷号 = '" & DataTables("答题数据1").name & "'")
    Dim fdr2 As DataRow = DataTables("客观题答案").find("客观题2 = '" & dr("客观题2") & "' And 试卷号 = '" & DataTables("答题数据1").name & "'")
    Dim ndr As DataRow = DataTables("成绩表").Find("学号 = '" & dr("学号") & "'")
    If ndr Is Nothing Then
        ndr = DataTables("成绩表").AddNew
        ndr("学号") = dr("学号")
    End If
    If fdr1 Is Nothing Then
        kgt1 = 0
    Else
        kgt1= 1
    End If
    If fdr2 Is Nothing Then
        kgt2 = 0
    Else
        kgt2= 1
    End If
    If dr("主观题1") = "t" Then
        zgt1 = 1
    Else
        zgt1=0
    End If
    If dr("主观题2") = "t" Then
        zgt2 = 1
    Else
        zgt2=0
    End If      '给相关列赋值
    ndr("成绩1") = kgt1 + kgt2 + zgt1+ zgt2
    Dim kmdr As DataRow = DataTables("客观题描述").find("试卷号='" & DataTables("答题数据1").Name & "'")  '从这以下是对比客观题答案和答题数据1录入客观题1找出不同选项,并将这些选项对应的内容从客观题描述中提取出来填到问题总结中
    Dim wtzj As DataRow = DataTables("问题总结").find("学号 = '" & dr("学号") & "'")
    If fdr1 IsNot Nothing Then
        Dim kegtdr1 As String = dr("客观题1")
        Dim kegtdadr1 As String = fdr1("客观题1")
       
        If kegtdr1.contains("a") = True And kegtdadr1.contains("a") = True
        Else If kegtdr1.contains("a") = True Or kegtdadr1.contains("a") = True Then
            wtzj("问题总结") = kmdr("选项A")
        End If
        If kegtdr1.contains("b") = True And kegtdadr1.contains("b") = True
        Else If kegtdr1.contains("b") = True Or kegtdadr1.contains("b") = True Then
            If wtzj("问题总结").IsNull Then
                wtzj("问题总结") = kmdr("选项B")
            Else wtzj("问题总结") = wtzj("问题总结") & kmdr("选项B")
            End If
        End If
        If kegtdr1.contains("c") = True And kegtdadr1.contains("c") = True
        Else If kegtdr1.contains("c") = True Or kegtdadr1.contains("c") = True Then
            If wtzj("问题总结").IsNull Then
                wtzj("问题总结") = kmdr("选项C")
            Else wtzj("问题总结") = wtzj("问题总结") & kmdr("选项C")
            End If
        End If
        If kegtdr1.contains("d") = True And kegtdadr1.contains("d") = True
        Else If kegtdr1.contains("d") = True Or kegtdadr1.contains("d") = True Then
            If wtzj("问题总结").IsNull Then
                wtzj("问题总结") = kmdr("选项D")
            Else wtzj("问题总结") = wtzj("问题总结") & kmdr("选项D")
            End If
        End If
    End If
Next


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/3 19:57:00 [只看该作者]

那就重新查一次

 

fdr1 = DataTables("客观题答案").find("试卷号 = '" & DataTables("答题数据1").name & "'")

If fdr1 IsNot Nothing Then

 

你调试代码的时候,加入msgbox弹出值,可以定位到哪里出错的。


 回到顶部
总数 30 上一页 1 2 3 下一页