最初我的问题是我得到一个过流,因为前两个字段(ID)中的值的长度更长,然后我使用Clng(长)。我不得不把它改成Cstr(字符串)。
我还更新了@Text(fieldname)视图中的前两列,它仍按升序排序。
我有4个键,前两个来自父表单(但我也在对话框表单中使用),第三个和第四个键来自对话框表单。
可以在下面找到代码段:
Set lookupdb = session.GetDatabase(lserver$,ldb$)
Set lookupview = lookupdb.GetView(lview$)
Set dateRange = session.CreateDateRange()
Set dateRange.StartDateTime = dateTime1
Set dateRange.EndDateTime = dateTime2
'Variant because of the daterange in keys (4)
Dim keys( 1 To 4 ) As Variant
keys(1) = Cstr(uidoc.FieldGetText("FirstID"))
keys(2) = Cstr(uidoc.FieldGetText("SecondID"))
keys(3) = Trim(uidoc.FieldGetText("Station"))
Set keys(4) = daterange
'Test. This has output. For daterange I used .text so I can see output.
Msgbox keys(1)
Msgbox keys (2)
Msgbox keys (3)
Msgbox daterange.text
Set lookupcoll = lookupview.GetAllDocumentsByKey(keys,True)
If lookupcoll.Count <> 0 Then
Print "Criteria Selection Count : " + Cstr(lookupcoll.count)
Set lookupdoc = lookupcoll.GetFirstDocument
ctr = 0
Do While Not lookupdoc Is Nothing
<code here>
Loop
Print "Ended : " + Now()
Else
Messagebox "No Document Retrieved."
End If
Exit Sub
我正在获取&#34;没有检索到文件&#34;当我检查了文档集时,它中有0。
请让我知道为什么我会变空。非常感谢你。
答案 0 :(得分:1)
GetAllDocumentsByKey方法要求您的视图lookupview
按照您用来搜索它的键对前几列进行分类和排序。
来自docs:
GetAllDocumentsByKey方法
根据视图中的列值查找文档。你创造 一个字符串(键)数组,其中每个键对应一个a中的值 视图中的排序和分类列。该方法返回all 列值与数组中每个键匹配的文档。
您可能需要更改视图的设计以适应您正在执行的搜索。