0

我们如何检查表格备注字段中的值,我已经尝试过下面提到的代码,请仔细阅读代码并建议我使用适当的代码,提前谢谢!

Local nCount
Create Cursor mycursor(RecordS c(50))
IFExists=.F.
For nCount = 0 To Thisform.list3.ListCount
    Append Blank
    Replace RecordS With Alltrim(Thisform.list3.List(nCount))
    IFExists=.T.
Endfor
Delete From mycursor Where RecordS==""


If Alltrim(RecordS) == Alltrim(inv.tags)
    Messagebox("Succeeded")
Else
    Messagebox("Failed")
Endif
4

1 回答 1

1

看起来您正在尝试查看列表框“list3”中的任何项目是否存在于表“inv”的“标签”字段中。

所以你让它变得比它需要的更复杂。

select inv
llFound = .f.
for lnItem = 1 to thisform.list3.ListCount
    locate for alltrim(tags) == alltrim(thisform.list3.List(lnItem))
    if found()
        llFound = .t.
        exit
    endif
endfor

wait window iif(llFound, "Found.", "Not found.")

如果要检查该值是否包含在“标签”中的任何位置而不是完全匹配,请按如下方式替换“定位”行:

locate for thisform.list3.List(lnItem) $ tags

注意:

  1. 以上均未考虑大小写,因此您可能需要将字符串包装在 Lower() 或 Upper()
  2. 您正在搜索备注字段,因此这些都不会使用索引进行优化,并且可能会非常慢,具体取决于“invs”表的大小。
于 2019-12-09T10:03:06.717 回答