通过与字段

时间:2015-07-29 03:00:54

标签: ms-access

我有这个2列,命名为A和B. 我需要用支付元素ID填写B列。含义员工1-3需要填写0001,员工4-6需要填写0002.

我的算法是,如果当前值为空,请将其插入前一行的值。但它不起作用,因为执行不按行顺序执行,而是独立行动

支付元素ID | 0001

员工1 |

员工2 |

员工3 |

支付元素ID | 0002

员工4 |

员工5 |

员工6 |

编辑:我实际上不必比较任何值。我只需要用最后找到的非空值填充B列。

1 个答案:

答案 0 :(得分:1)

我的表格设置如下:

table structure

我使employee_id成为短文字段;如果它是一个数字字段,那么一些代码将不得不稍微改变。

请注意,您需要某种ID字段才能按所需顺序对表进行排序。

制作表格的副本,以防出现问题,然后将其放入新模块并运行它:

Private Sub FillDown()

    Dim rs As DAO.Recordset
    Dim strSQL As String
    Dim strLastID As String

    strSQL = "SELECT * FROM tblEmployees ORDER BY ID"
    Set rs = CurrentDb.OpenRecordset(strSQL)

    strLastID = ""

    rs.MoveFirst

    Do While Not rs.EOF
        If Not Nz(rs![employee_id]) = "" Then
            strLastID = rs![employee_id]
        Else
            rs.Edit
            rs![employee_id] = strLastID
            rs.Update
        End If

        rs.MoveNext
    Loop

    rs.Close
    Set rs = Nothing

End Sub