我有这2列,命名为A和B,我需要用Pay元素ID填写B列,这意味着员工1-3需要填写0001,员工4-6需要填写0002。
我的算法是,如果当前值为空,则将其与上一行的值一起插入。但是它不能工作,因为执行不是按行顺序排列的,而是独立运行的。
Pay元素ID \ 0001
雇员1
雇员2
雇员3
支付元素ID \ 0002
雇员4
雇员5
雇员6
编辑:我实际上不需要比较任何值。我只需要使用最后找到的非空值填充列B。
发布于 2015-07-30 09:59:15
我的桌子是这样布置的:

我将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 Subhttps://stackoverflow.com/questions/31690549
复制相似问题