我在MS-Access中使用ODBC表创建了一个交叉表查询。查询看起来像这样,包含4个包含Date的字段。此查询每天更新,空字段可能填写也可能不填写
ANTRAGSNUMMER Eingangdata esigniertdok Ausgangdata Policierung
111 3.10.2016
222 3.10.2016 3.10.2016
333 4.10.2016 5.10.2016 5.10.2016
现在我要解决的是根据以下条件识别具有空字段的记录
如果记录的字段esigniertdok为空,则必须将记录移动到新的表/查询。它必须在Eingangdata(3.10.2016)字段中检查日期并等待该日期后的3天,如果Field esigniertdok仍为空,则必须移动记录。
如果Field Ausgangdata为记录为空,则必须将记录移动到新的表/查询。它必须在字段esigniertdok(3.10.2016)中检查日期并等待该日期后的2天,如果Field Ausgangdata仍为空,则必须移动记录。
如果记录中的Field Policierung为空,则必须将记录移动到新的表/查询。它必须在Ausgangdata(5.10.2016)字段中检查日期并等待该日期后的5天,如果Field Policierung仍为空,则必须移动记录。
我该怎么做?是否可以在VBA中创建程序并使所有记录通过它并验证上述条件,或者是否可以创建SQL查询来执行此操作?
不同字段的等待时间不同,因为每个字段由不同的部门处理。上述模式中大约有1000条记录每天都会更新。
有人可以指导我如何实现这个目标吗?
答案 0 :(得分:0)
记录集中有1000个记录集或1000条记录吗?
让我们首先尝试了解您的问题。你说比如说:
如果记录集的字段esigniertdok为空,则必须将记录集移动到新的表/查询。它必须在Eingangdata(3.10.2016)字段中检查日期并等待该日期后的3天,如果Field esigniertdok仍为空,则必须移动记录集。
如果Field esigniertdok为空,你的意思是记录应该转移到新表吗?如果在Eingangsdata之后3天(让我们说7.10.2016)这个领域" esigniertdok"它仍然是空的,应该在哪里移动?你的意思是删除' ?
更新:
根据您的评论,您可以使用以下代码将数据复制到新表格(让我们将其命名为:ESIGN):
Dim rs As DAO.Recordset
' CLEAR ALL ENTRIES FIRST
CurrentDb.Execute ("DELETE * FROM ESIGN")
Set rs = CurrentDb.OpenRecordset("SELECT * FROM [YOUR TABLE]")
Do Until rs.EOF
If rs![esigniertdok] = "" Or IsNull(rs![esigniertdok]) Then
If rs![Eingangdata] <= Date - 3 Then
CurrentDb.Execute ("INSERT INTO ESIGN (ANTRAGSNUMMER) VALUES (" & rs!ANTRAGSNUMMER & ")")
End If
End If
rs.MoveNext
Loop