我以前不太喜欢使用VBA,或者Access或SQL。但我有一点..。我在做一个项目。因此,这里的目标是输入一个名称,取这个名称,并在一个链接表中搜索该名称。我听说我可以用SQL查询来完成这个任务?但是怎么做呢?我需要使用SQL查询吗?
我尝试了很多事情,但我从来没有离我的答案更近。我试过这个..。
'strTable1 = "FAC_List"
'Dim cellFind As Object
'cellFind = Workbooks("FAC List.xlsx").Sheets("Sheet1").Range("A2").Find(what:=txtLDcode)
'Dim rowNum As Integer
'Dim cellFind As Object
'rowNum = 0
'Do
' rowNum = rowNum + 1
' Set cellFind = Workbooks("FAC List.xlsx").Sheets("Sheet1").Range("A" & rowNum)
'
' If InStr(cellFind, txtLDcode) Then
' txtLDcode = True
'
' End If
'Loop Until cellFind = ""
'If Not cellFind Is Nothing Then
' Set txtLDcode = True
'End If
"Set cellFind“部分总是返回工作簿中的一个错误.我也在下面尝试过.
'Dim objRecordset As ADODB.Recordset
'Set objRecordset = New ADODB.Recordset
'Dim i As Integer
'Dim value As Variant
'objRecordset.ActiveConnection = CurrentProject.Connection
'objRecordset.Open "FAC_List"
'While objRecordset.EOF = False
'check for match
' If objRecordset.Fields.Item(0).value = txtLDcode Then
' txtLDcode = True
' Else
'txtLDcode = False
' End If
' objRecordset.MoveNext
'Wend
但最后一部分的问题是它总是返回错误..。我的链接表名是FAC_List。一旦用户输入了一些信息,就应该在表中搜索该信息,并且基本上只返回True/False。我怎样才能做到这一点,我是否朝着正确的方向前进?
发布于 2019-06-20 13:21:41
文本框中的表达式可以执行域聚合函数(DCount、DSum、DLookup) -没有查询,也没有VBA。用实际字段名替换fieldname
。假设字段是文本数据类型;如果不是,则删除撇号分隔符。
=IIf(DCount("*", "FAC_List", "fieldname='" & [txtLDcode] & "'") = 0, "False", "True"))
如果必须使用VBA,则可以执行域聚合。
txtLDcode = IIf(DCount("*", "FAC_List", "fieldname='" & Me.txtLDcode & "'") = 0, "False", "True"))
其他VBA选项将涉及打开记录集。
所有这些都避免循环记录集,这是最不有效的。
https://stackoverflow.com/questions/56693602
复制相似问题