我有这个2列,命名为A和B. 我需要用支付元素ID填写B列。含义员工1-3需要填写0001,员工4-6需要填写0002.
我的算法是,如果当前值为空,请将其插入前一行的值。但它不起作用,因为执行不按行顺序执行,而是独立行动
支付元素ID | 0001
员工1 |
员工2 |
员工3 |
支付元素ID | 0002
员工4 |
员工5 |
员工6 |
编辑:我实际上不必比较任何值。我只需要用最后找到的非空值填充B列。
答案 0 :(得分:1)
我的表格设置如下:
我使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