设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2095|回复: 4
打印 上一主题 下一主题

[窗体] 关于一个填补空白的问题

[复制链接]
跳转到指定楼层
1#
发表于 2012-11-24 19:37:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大侠
       混迹论坛一年多了,十分感谢各位大神的帮助,我现在的结构是access前台录入+SQL2005数据库后台+asp.net的B/S网站查询,明年想去开发JAVA,可能以后来这个论坛的时间就少了,谢谢大家的帮助,我的系统只差一步就好,我遇到的问题是这样,我的解决方案如下:
现有表X1,X2,X3,其中X1的字段日期,         姓名,              吃饭,         喝水 ,  X2的字段 日期,        姓名,        花钱,      游戏
                            2012-11-16  M3121116N001BXN         早饭           2杯           2012-11-16  M3121116N001BXN      5元         1H
                                          2012-11-16   M3121116N001BXN        午饭           5杯           2012-11-16  M3121116N001BXN      15元        1H
                                          2012-11-16   M3121116N001BXN         晚饭           3杯          2012-11-16  M3121116N001BXN      15元         3H
                        现在还有一人
                            2012-11-16  M3121116N002BXX        0           2杯           2012-11-16  M3121116N001BXN      0元         1H
                                          2012-11-16   M3121116N002BXX        0           5杯           2012-11-16  M3121116N001BXN      0元        1H
                                          2012-11-16   M3121116N002BXX         0           3杯          2012-11-16  M3121116N001BXN      0元         3H
而X3是通过扫描仪得到X1和X2的人的信息的总和
M3121116N001BXN的解释是12116是2012年11月16日,M3的3是车间号,001是入职顺序,BXN是工号
X3里面扫描得到的结果是     2012-11-18    M3121116N001BXN    早饭/午饭/晚饭/    2杯/5杯/3杯 /     5元/15元/15元 /   1H/2H/3H/
这个效果做出来了,比较让人恼火的是如果BXX 的吃饭、喝水、花钱、游戏和BXN是一样的时候就不录入,造成照抄BXN的结果,其中吃饭时照抄当天的,而花钱可能是照抄现在到2天以前的的数据
我的代码在X3数据表窗体如下:
   Public  姓名-beforeupdate()
   Dim rs As New ADODB.Recordset
    Dim ssql As String
    Dim i As Long
    Dim str as string
    Dim str1 as string
    Dim str2 as string
    Dim str3 as string
    Dim str4 as string
    ssql="select * from tbname where 姓名='" & 姓名 & "'"
    rs.Open ssql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    for i=1 to rs.RecordCount
        str=str & rs!吃饭.value & "/"
        str1=str1 & rs!喝水.value & "/"
        str2=str2 & rs!花钱.value & "/"
        str3=str3 & rs!游戏.value & "/"
        rs.movenext
    next i
    If str<>"//" Then
    吃饭=str
    ElseIf  str="//" Then
    吃饭="//"
     Dim rs1 As New ADODB.Recordset
    Dim ssql1 As String
    Dim f As Long
    Dim h As Long
    Dim s As Double   
    Dim strf as string
    Dim strf1 as string
    Dim strf2 as string
    Dim strf3 as string
    Dim strf4 as string
        '由于需要X1、X2各有个数字字段L1=Mid(姓名,2,7) & Mid(姓名,10,3)
   For h=1  to Mid(姓名,10,3)
   s=Mid(姓名,2,7) & Format(Right(Mid(姓名,10,3),3)-h,"000") '这个地方的姓名是X3的姓名
   ssql1="select * from tbname where L1='" & 姓名 & "'"
    rs1.Open ssql1, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
     Do WHILE  吃饭="//"
        strf=strf & rs1!吃饭.value & "/"
        rs1.movenext
    next f
      Loop
    rs1.close
     rs1.Open ssql1, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
  Next h
End If
'下面的字段类似,现在的关键是在同一天工号不同比如 121116001和121116002这么做可以了,关键是如果不在同一天,不如121116002要找到15日或者14日里面
的有数据的吃饭比如121115009,你不知道是008还是010 总之就是倒推有数据的第一个人,
    喝水=str1
    花钱=str2
    游戏=str3
各位大侠,有没有更好的思路办法啊,谢谢啊!
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2012-11-24 19:40:20 | 只看该作者
ssql1="select * from tbname where L1='" & 姓名 & "'"
的姓名是S
3#
发表于 2012-11-25 00:10:58 | 只看该作者
看得头都晕了
4#
发表于 2012-11-26 10:56:30 | 只看该作者
大哥不知道这个能不能帮你


【Access源码示例】-- 根据姓名合并汇总数据
来源:www.accessoft.com  点击数:746  评论数:3 



时 间:2012-11-14 14:05:32
作 者:竹笛   QQ:3059255  
摘 要:【Access源码示例】-- 根据姓名合并汇总数据
正 文:


5#
 楼主| 发表于 2012-11-27 07:43:51 | 只看该作者
非常谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-11 21:44 , Processed in 0.087555 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表