例如,在给定日期的某个事件中同时观察到 4 个不同的 Person_ID。我希望用户能够输入所有相关人员的列表,以及日期和其他属性;
人员 |链接类型 |日期
人员1 |链接类型 |人物2 |日期
仍在努力学习基本的 VBA,但具有 Access 原则的坚实基础
假设输出表名称为
Observation
,字段为:Observer、Observed 和 ObservationDate,以下例程可能会有所帮助:
SUB Calc(ObservationDate AS DATE)
DIM dbs AS DATABASE
DIM rs1 AS RECORDSET
DIM rs2 AS RECORDSET
DIM rsOut AS RECORDSET
SET dbs = CURRENTDB
SET rs1 = dbs.OPENRECORDSET("Persons")
SET rs2 = rs1.CLONE
SET rsOut = dbs.OPENRECORDSET("Observations")
DO UNTIL rs1.EOF
rs2.MOVEFIRST
DO UNTIL rs2.EOF
IF rs1("PersonID") <> rs2("PersonID") Then
WITH rsOut
.ADDNEW
!Observer = rs1("PersonID")
!Observed = rs2("PersonID")
.UPDATE
END WITH
END IF
rs2.MOVENEXT
Loop
rs1.MOVENEXT
LOOP
rsOut.CLOSE
SET rsOut = NOTHING
rs2.CLOSE
SET rs2 = NOTHING
rs1.CLOSE
SET rs1 = NOTHING
SET dbs = NOTHING
END SUB