我有一张表格,上面列出了申请号,序列和日期。当要为应用程序添加新的序列号时,我需要检查上一个序列的日期和之后的序列日期(如果存在)。
表格示例:
APPNO SEQUENCE DATE
17638 1 08/10/2019
17638 2 08/12/2019
17638 4 08/20/2019
如果我要添加序列= 3的同一应用程序,则必须检查前一个序列的日期和后一个序列的日期。如果我要添加序列= 5的同一应用程序,则只检查最后添加的序列的日期。
使用记录集该如何完成?如何遍历记录集并在Access VBA中获得所需的信息?
我已经创建了一个记录集并设置了循环,但是我不知道从这里开始。我是Access新手。
开始于
strSql = "SELECT ST_APPNO_TX, ST_SEQUENCE_TXT, ST_DATE_DT FROM SUBMISSIONS_TBL where ST_APPNO_TXT= = '" & appno & "' ORDER ST_SEQUENCE_TXT;"
maxVal = DLookup("[MaxVal]", "[MaxSequence_qry]", "[ST_APPNO_TXT]=" & appno)
Set cnnLocalConnection = CurrentProject.AccessConnection
Set rstSequence = New ADODB.Recordset
rstSequence.Open strSql, cnnLocalConnection, adOpenForwardOnly, adLockReadOnly
preSeq = ""
For N = 1 To rstSequence.RecordCount
我想获取前一个序列和后一个序列(如果存在)的值
答案 0 :(得分:0)
有很多方法可以获取所需的信息-您可以使用以下SQL查询获取给定应用程序和序列的前面的后续序列记录:
先前的顺序记录:
select top 1 t.*
from submissions_tbl t
where
t.st_appno_txt = [YourAppNo] and
t.st_sequence_txt < [YourSequenceNo]
order by
t.st_sequence_txt desc
成功顺序记录:
select top 1 t.*
from submissions_tbl t
where
t.st_appno_txt = [YourAppNo] and
t.st_sequence_txt > [YourSequenceNo]
order by
t.st_sequence_txt
或者,您可以分别使用DMax
或DMin
函数来获取前面或后面的序列号:
之前的序列号:
DMax("st_sequence_txt", "submissions_tbl", "st_appno_txt = '17638' and st_sequence_txt < '3'")
成功序列号:
DMin("st_sequence_txt", "submissions_tbl", "st_appno_txt = '17638' and st_sequence_txt > '3'")