设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

123下一页
返回列表 发新帖
查看: 4280|回复: 29
打印 上一主题 下一主题

[表] 如何获取子窗体中的某一字段值

[复制链接]
跳转到指定楼层
1#
发表于 2009-8-5 15:17:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
写了一个库存系统,现有一问题未能解决,请先看下图
,如何可以通过保存按键,对订单明细子窗体中的入库数量字段值,进行入库处理?入库代码我已写好!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-8-5 17:31:16 | 只看该作者
将子窗体修改后的数据生成到一个新查询中,然后将新查询追加到入库表中。
3#
 楼主| 发表于 2009-8-5 19:11:16 | 只看该作者
将子窗体修改后的数据生成到一个新查询中,然后将新查询追加到入库表中。
nxjswt 发表于 2009-8-5 17:31


但我目的不是这样,请先看我计算库存的代码!现时,我只能一条记录入完,按一下保存,触发以下事件,所以我想问,如何让子窗体中同一记录的物料编号字段值与入库数量批量入库!
On Error GoTo Err_Save_Click
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
sNum = Me.订单明细子窗体Form.物料编号
cnt = Me.订单明细子窗体.Form.入库数量
Call 更新物料入库存(cnt, sNum)
------------------------------------------- 以下是定义的模块
Public Sub 更新物料入库存(ByVal x#, ByVal y$)
Dim curdb As Database
Dim curRS As DAO.Recordset
Dim X0#, X1#, Sdate As Date
Sdate = Date
Set curdb = CurrentDb
Set curRS = curdb.OpenRecordset("select * from 库存 where 物料编号='" & y & "'") '物料编号.Value
If Not curRS.EOF Then
   X0 = curRS.Fields("现有库存")
   'X1 = X0 + CInt(x)
   X1 = X0 + x
   curdb.Execute "update 库存 set 原有库存=" & X0 & ",现有库存=" & X1 & ",库存变动=" & x & ",库存变动日期=#" & Sdate & "# where 物料编号='" & y & "'"
End If
End Sub
4#
 楼主| 发表于 2009-8-6 08:37:28 | 只看该作者
顶顶顶
5#
发表于 2009-8-6 10:03:28 | 只看该作者
不明白:1、同一订单会有同一物品的多条记录?2、入库是单独的表?3、你是想在按【保存】的时候才统一更新库存,而不是在保存子窗体的每一条记录时更新库存?
如果2、3的回答是肯定的,
curdb.Execute "update 库存 set 原有库存=" & X0 & ",现有库存=" & X1 & ",库存变动=" & x & ",库存变动日期=#" & Sdate & "# where 物料编号='" & y & "'
其中x就不是子窗体当前记录的数值,而是从同一入库单ID的入库记录中,相同的物料编号的入库统计中出来:
x=dsum("入库数量","入库明细表","入库单ID=’” & 入库单ID &”‘”)
x1=x0+x
6#
发表于 2009-8-6 10:05:29 | 只看该作者
x=dsum("入库数量","入库明细表","入库单ID=’” & 入库单ID &”‘ and  物料编号='" & y &"'”)
7#
 楼主| 发表于 2009-8-6 10:53:55 | 只看该作者
不明白:1、同一订单会有同一物品的多条记录?2、入库是单独的表?3、你是想在按【保存】的时候才统一更新库存,而不是在保存子窗体的每一条记录时更新库存?
如果2、3的回答是肯定的,
curdb.Execute "update 库存 ...
aslxt 发表于 2009-8-6 10:03


首先1,一订单里,分有很多细项,当然不存在同一物品的多条记录
      2,入库表是单独的表,系统还设有出库表,库存表
      3,是的,我是想按“保存”的时候,可以统一进行更新库存
8#
 楼主| 发表于 2009-8-6 10:58:51 | 只看该作者
x=dsum("入库数量","入库明细表","入库单ID=’” & 入库单ID &”‘ and  物料编号='" & y &"'”)
aslxt 发表于 2009-8-6 10:05

这里的X,即我在窗体中的“入库数量”,其实说明白,就是想用数组方式,先将入库明细子窗体中的“物料编号”“入库数量”先存起来,再分别进行更新库存而取代现时的,一条一条更新!不知道,我理解是否正确!
9#
发表于 2009-8-6 11:09:09 | 只看该作者
你可以这样:在入库表中选择唯一的“物料编号”,如:select distinct  物料编号 from 入库 where 入库单ID=‘****';然后循环不同的物料编号进行update
10#
发表于 2009-8-6 11:19:03 | 只看该作者
例如:
    Set rec = New ADODB.Recordset
    rec.Open "select distinct  物料编号 from 入库 where 入库单ID='" & 入库单ID & "'", CurrentProject.Connection, adOpenKeyset, adLockOptimistic, adCmdTableDirect
    For I = 1 To rec.RecordCount
         ‘逐个更新不同物料编码的库存数量
    next i
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-19 22:29 , Processed in 0.119302 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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