|
各位大侠
混迹论坛一年多了,十分感谢各位大神的帮助,我现在的结构是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
各位大侠,有没有更好的思路办法啊,谢谢啊!
|
|