sql - VBA、Access 和 SQL 的新手。我如何编写一个 SQL 查询来搜索我的 AccessDB 中的一个表并在找到它时给我一个 True/False?
问题描述
我之前没有过多地使用 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
但最后一部分的问题是它总是返回 False……我的链接表名称是 FAC_List。一旦用户输入了一些信息,该信息就会在表格中进行搜索,并且基本上只返回 True/False。我怎样才能做到这一点,我是否朝着正确的方向前进?
解决方案
文本框中的表达式可以执行域聚合函数(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 选项将涉及打开记录集。
1. 打开按输入过滤的记录集并检查 RecordCount
2. 打开未过滤的 DAO 记录集并使用 FindFirst 方法
所有这些都避免了循环效率最低的记录集。
推荐阅读
- python - python win32com 批量阅读outlook邮件——打开的项目太多
- sql - SQL Server:对查询的每一行运行查询以在另一个表中查找匹配项
- java - 无法在 JRE 9 上运行 java 飞行记录器
- python - 如何将熊猫列转换为日期时间
- suricata - suricata 自定义规则来存储和提醒所有 pdf 文件
- python - 如何在 Pycharm 2018.2 的类方法声明中添加带有类型提示的文档?
- visual-studio - NUnitTestAdapter 2.1.1 中的测试名称 NUnit 2.6.4
- python - 从 DataFrame 中删除零值头尾行
- javascript - 带有路由错误的 React-semantic-ui
- macos - Bobthefish 不再为 Mercurial 正确显示(适用于 git)