Foxtable(狐表)用户栏目专家坐堂 → 数据转换问题?


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

主题:数据转换问题?

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


加好友 发短信
等级:小狐 帖子:334 积分:2370 威望:0 精华:0 注册:2014/3/15 16:25:00
数据转换问题?  发帖心情 Post By:2014/5/30 0:05:00 [只看该作者]

我想从化验检查表里的数据转到 生化表里,如何转换?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.foxdb




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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/30 8:54:00 [只看该作者]

For Each dr As DataRow In DataTables("化验检查").DataRows
    Dim drr As DataRow = DataTables("生化").Find("住院号='" & dr("住院号") & "' and 姓名='" & dr("姓名") & "' and 性别='" & dr("性别") & "' and 年龄='" & dr("年龄") & "' and 检查时间=#" & dr("检验时间") & "#")
    If drr Is Nothing Then
           drr=DataTables("生化").AddNew
           drr("住院号")=dr("住院号")
           drr("姓名")=dr("姓名")
           drr("性别")=dr("性别")
           drr("年龄")=dr("年龄")
           drr("检查时间")=dr("检验时间")
    Else
          drr(dr("检验项目"))=dr("检验结果")
    End If
Next


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


加好友 发短信
等级:小狐 帖子:334 积分:2370 威望:0 精华:0 注册:2014/3/15 16:25:00
  发帖心情 Post By:2014/5/30 14:35:00 [只看该作者]

经测试通过,但是有2个问题,
1、代码要执行2次数据才能完全,第一次执行后只有部分数据;
2、如果化验检查表中的检验项目有生化中没有的列会出错;
能不能将化验检查表中检验项目的值自动增加列。谢谢

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/30 14:37:00 [只看该作者]

动态增加列会需要重启项目,增加临时列并不会保存数据.
所以最好自己设计好表结构.


至于执行2次才能完全,这样改一下

For Each dr As DataRow In DataTables("化验检查").DataRows
    Dim drr As DataRow = DataTables("生化").Find("住院号='" & dr("住院号") & "' and 姓名='" & dr("姓名") & "' and 性别='" & dr("性别") & "' and 年龄='" & dr("年龄") & "' and 检查时间=#" & dr("检验时间") & "#")
    If drr Is Nothing Then
           drr=DataTables("生化").AddNew
           drr("住院号")=dr("住院号")
           drr("姓名")=dr("姓名")
           drr("性别")=dr("性别")
           drr("年龄")=dr("年龄")
           drr("检查时间")=dr("检验时间")
           drr(dr("检验项目"))=dr("检验结果")
    Else
          drr(dr("检验项目"))=dr("检验结果")
    End If
Next

 回到顶部