Access交流中心

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

小白求解,更新查询出错!!求大神指点!

蘑菇  发表于:2015-01-15 15:54:09  
复制

初学access,没有分,所以十分抱歉!求帮助!


有三张表,库存表,入库表,出库表。

入库表是点击保存按钮后,入库单保留一条入库数据,同时更新库存表的库存数量(库存数量+入库数量)。

出库表是点击保存后,出库单记录一条出库数据,但不是马上更新库存数量(也就是说原保存按钮功能不变),当再次点击确认出库按钮的时候才更新库存数量(库存数量-出库数量)。同时入库单记录不删除,保留不变(目的是以后统计某时段的出库数量的)。


三个表的共同字段如下:货位编码,货物名称,类别,规格,(出库数量,入库数量,库存数量),计量单位,(出库时间,入库时间),供应商。


更新查询代码如下:以货位编码建立关系。货位编码示例:1-1-1,1-1-2,1-1-3,1-1-*


查询条件是货位编码相同,对应出入库数量和库存数量。


UPDATE 库存表 INNER JOIN 出库表 ON 库存表.货位编码 = 出库表.货位编码 SET 库存表.库存数量 = [库存表]![库存数量]-[出库表]![出库数量]
WHERE ((([库存表]![货位编码])=[出库表]![货位编码]) AND (([库存表]![货物名称])=[出库表]![货物名称]));


Private Sub Cmdck_Click() '确认出库按钮

'相当于双击查询执行运行命令
    DoCmd.OpenQuery "出库" '查询名称
    MsgBox "库存数据已更新", vbInformation + vbOKOnly
End Sub



出错现象:

点击确认出库按钮后,执行更新查询,但是库存数字变化的很离谱,根本不是应该得到的数字,不知道怎么回事!!!!!求解!

截图:1


截图2


截图3


 

Top
易勋 发表于:2015-01-15 16:55:44
最好是使用非绑定控件+ADO方式,在保存的代码里面进行处理

蘑菇 发表于:2015-01-15 19:32:30
楼上说的我暂时理解不了!难道没人能说的详细一点嘛???

煮江品茶 发表于:2015-01-15 19:49:46
蘑菇 发表于:2015-01-15 23:48:19
我知道错误所在了,应该是没有获得当前窗口的焦点,减库存数量的时候把出库表中所有同一个类别的数量都减掉了,应该怎么做呢?

zhaoyoulong 发表于:2015-01-16 10:04:16

你做的是一个批量的更新查询

按常规应该是考虑对和当前窗体内货位编码相同的货物进行更新

UPDATE 库存表

SET 库存表.库存数量 = 库存表.库存数量-forms![窗体名称]![出库数量]

WHERE ([库存表]![货位编码]=forms![窗体名称]![货位编码]) AND ([库存表].[货物名称])=forms![窗体名称]![货物名称])

试试看



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