Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

求救,追加记录

尚智天涯  发表于:2012-10-06 17:31:40  
复制

各位高手,有两个表,"工艺表"和"DATA"表,当"工艺表"中一条记录任意一个字段的值(不指定字段)不同于"DATA"表中的记录,就在"DATA"表中追加此条记录.该如何操作.谢谢!

 

Top
煮江品茶 发表于:2012-10-06 20:00:08

dim ssql as string
ssql="delete * from DATA"
CurrentDb.Execute ssql
ssql="insert into DATA (工艺名称,温度,速度,时间,次数) "
ssql=ssql & "select 工艺名称1,温度1,速率1,时间1,sum(次数1) as 次数 from 工艺表 "
ssql=ssql & "group by 工艺名称1,温度1,速率1,时间1"
CurrentDb.Execute ssql

实际上DATA数据表是多余的,直接做一个分组查询就可以得到结果了。



沈军 发表于:2012-10-08 20:21:35

点击下载此附件

 

Option Compare Database

Private Sub 次数_AfterUpdate()
    Call 确认追加
End Sub
Private Sub 工艺代码_AfterUpdate()
    Call 确认追加
End Sub
Private Sub 工艺名称_AfterUpdate()
    Call 确认追加
End Sub
Private Sub 其他字段_AfterUpdate()
    Call 确认追加
End Sub
Private Sub 时间_AfterUpdate()
    Call 确认追加
End Sub
Private Sub 速率_AfterUpdate()
    Call 确认追加
End Sub
Private Sub 温度_AfterUpdate()
    Call 确认追加
End Sub
Public Sub 确认追加()
    If Not IsNull(工艺代码) And Not IsNull(工艺名称) And Not IsNull(温度) And Not IsNull(速率) And Not IsNull(时间) And Not IsNull(次数) Then
        If Nz(DCount("ID", "DATA", "工艺代码=FORMS!工艺表窗体!工艺代码 AND 工艺名称=FORMS!工艺表窗体!工艺名称 AND 温度=FORMS!工艺表窗体!温度 AND 速率=FORMS!工艺表窗体!速率 AND 时间=FORMS!工艺表窗体!时间 AND 次数=FORMS!工艺表窗体!次数")) = 0 Then
        DoCmd.RunSQL "Insert into DATA(工艺代码,工艺名称,温度,速率,时间,次数) values (FORMS!工艺表窗体!工艺代码,FORMS!工艺表窗体!工艺名称,FORMS!工艺表窗体!温度,FORMS!工艺表窗体!速率,FORMS!工艺表窗体!时间,FORMS!工艺表窗体!次数)"
        End If
    End If
End Sub



总记录:2篇  页次:1/1 9 1 :