在 ms access 中获取第一行到第二行(表)的值

哈尼

我创建了一个包含 Part In 和 Part Out 的备用清单。如下图所示。

在此处输入图片说明

如您所见,有 Part In、Part Out 和 Stock Balance。当我输入 Part In 值=1 时,库存余额值等于 1,当我输入 Part Out 值时,它将扣除库存余额值。问题是如何将第 1 行的 Stock 余额值捕获到第 2 行?输入新值时的想法 Part In :

[Stock Balance row 2 = Stock Balance from row 1 + Part In]

我希望你能理解我的解释并帮助我。谢谢你。

达伦·巴特鲁普-库克

由于评论太长,我将添加此作为答案以充实我的评论

最好在表中包含三个字段 - 交易日期/时间、交易方向(进出)和交易中的零件数量。然后您可以添加所有部分,减去所有部分并在任何时间点获得余额

运行以下 VBA 以创建一个包含三个字段的表并添加一些示例数据:

Sub Test()

    With DoCmd

        .SetWarnings False

        .RunSQL "CREATE TABLE Stock (" & _
            "Date_Time DateTime, Direction CHAR, Unit INTEGER)"

        .RunSQL "INSERT INTO Stock VALUES(#2017/11/20 07:00:00#, 'In', 100)"
        .RunSQL "INSERT INTO Stock VALUES(#2017/11/20 07:00:01#, 'Out', 5)"
        .RunSQL "INSERT INTO Stock VALUES( #2017/11/20 07:00:02#, 'In', 3)"
        .RunSQL "INSERT INTO Stock VALUES(#2017/11/20 07:00:05#, 'In', 2)"
        .RunSQL "INSERT INTO Stock VALUES(#2017/11/20 07:10:00#, 'Out', 15)"

        .SetWarnings True

    End With

End Sub  

此 SQL 将为您提供余额的运行总计:

SELECT        T1.Date_Time
            , T1.Direction
            , T1.Unit
            , (
               SELECT   SUM(Unit)
               FROM     Stock
               WHERE    Direction='IN' AND Date_Time<=T1.Date_Time
               ) -
              NZ((
               SELECT   SUM(Unit)
               FROM     Stock
               WHERE    Direction='OUT' AND Date_Time<=T1.Date_Time
               ),0) AS Balance
FROM        Stock T1

此 SQL 将在特定时间点给出余额:

SELECT      Date_Time AS TimeFrame
            , (
            SELECT  SUM(Unit) AS Stock_In
            FROM    Stock
            WHERE   Direction='In' AND Date_Time<=#2017/11/20  07:00:05#
              )  - 
            (
            SELECT  SUM(Unit) AS Stock_Out
            FROM    Stock
            WHERE   Direction='Out' AND Date_Time<=#2017/11/20  07:00:05#
            ) AS Balance
FROM        Stock
WHERE       Date_Time=#2017/11/20 07:00:05#

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MS Access 获取第一、第二、第三等值

来自分类Dev

MS Access显示的是第一行的副本,而不是正确的值

来自分类Dev

从 MS-Access 的子报表中删除一行

来自分类Dev

Postgres到MS Access

来自分类Dev

Postgres到MS Access

来自分类Dev

MS Access中的格式

来自分类Dev

MS Access中的格式

来自分类Dev

MS Access中的临时表

来自分类Dev

MS Access将可见的选定行移动到当前可见(活动)表中的最后一行

来自分类Dev

更新一行后的MS Access运行代码

来自分类Dev

将.csv导入到MS Access。“ AtEndOfStream”不读最后一行

来自分类Dev

MS ACCESS交叉表数据

来自分类Dev

MS Access表写入冲突

来自分类Dev

MS Access表写入冲突

来自分类Dev

Ms Access 查询以获取总和

来自分类Dev

我如何在不同的列中选择第一,第二和第三值-Ms Access

来自分类Dev

MS Access VBA:如何在没有警告消息的情况下从表中删除一行

来自分类Dev

在查询中查询?(MS Access)

来自分类Dev

MS Access查询中的性能

来自分类Dev

在MS Access中打印报告

来自分类Dev

MS Access中的IIf错误

来自分类Dev

MS Access查询中的性能

来自分类Dev

MS Access 中的总计记录

来自分类Dev

消除两个表中的公共行 - MS Access

来自分类Dev

MS Access:选择表的最大列值

来自分类Dev

INSERT INTO语句以匹配行-MS Access SQL

来自分类Dev

DLookup:MS Access VBA 中的查询与表?

来自分类Dev

返回MS Access中某个范围的值

来自分类Dev

MS Access 参数中的多个值