Ms access VBA显示Access中搜索旁边的相邻数据

Ms access VBA显示Access中搜索旁边的相邻数据,ms-access,vba,ms-access-2016,Ms Access,Vba,Ms Access 2016,长话短说,我已经搜索了三天的解决方案,只是找不到一个网站或张贴在这里,像我的情况 我想有一个文本框搜索一个数字,如“003.30”,下面有另一个文本框显示单元格相关信息的形式。我的表格(标题为icd9_代码)有两列,“更好的_代码”和“长描述”。在一个表单中(或者什么更好?),我在一个文本框中输入我的ICD代码,然后ICD代码的长描述将出现在下面的另一个文本框中 我还是vba新手,我在excel中学到的并不是转换到Access。以下是如何使用DLookup功能vba实现这一点。您可以将此代码放在

长话短说,我已经搜索了三天的解决方案,只是找不到一个网站或张贴在这里,像我的情况

我想有一个文本框搜索一个数字,如“003.30”,下面有另一个文本框显示单元格相关信息的形式。我的表格(标题为icd9_代码)有两列,“更好的_代码”和“长描述”。在一个表单中(或者什么更好?),我在一个文本框中输入我的ICD代码,然后ICD代码的长描述将出现在下面的另一个文本框中


我还是vba新手,我在excel中学到的并不是转换到Access。

以下是如何使用DLookup功能vba实现这一点。您可以将此代码放在输入搜索代码的文本框的表单按钮回调或按键回调中

Me.TextboxToDisplayDescription = Nz(DLookup("LONG_DESCRIPTION", "icd9_codes", "[BETTER_CODES] = '" & Me.TextboxToSearchWith & "'"), "Invalid Code")

DLookup函数周围的“Nz”函数不是必需的,但是,如果用户碰巧输入了icd9_代码表中不存在的代码,它将防止出现“无效使用Null”错误。

以下是如何使用DLookup函数VBA实现这一点。您可以将此代码放在输入搜索代码的文本框的表单按钮回调或按键回调中

Me.TextboxToDisplayDescription = Nz(DLookup("LONG_DESCRIPTION", "icd9_codes", "[BETTER_CODES] = '" & Me.TextboxToSearchWith & "'"), "Invalid Code")

DLookup函数周围的“Nz”函数不是必需的,但是,如果用户碰巧输入了icd9_代码表中不存在的代码,它将防止出现“无效使用Null”错误。

是的,使用表单很好。更好的_代码列是否是icd9_代码表中的主键列?这意味着每一个更好的代码都是唯一的?没错,更好的代码是表icd9\U代码的主键。是的,一个表单很适合这样做。更好的_代码列是否是icd9_代码表中的主键列?这意味着每一个更好的代码都是唯一的?没错,更好的代码是表icd9\U代码的主键。我无法让它工作,但它确实为我指明了正确的方向。巧合的是,我有一个朋友路过,他最终帮助了我。最后,我们将这个
Dim db作为数据库,rs作为记录集,strSQL作为字符串集db=CurrentDb strSQL=“从icd9_代码中选择icd9_code.LONG_描述,其中更好的_代码='001.0'”MsgBox(strSQL)集rs=db.OpenRecordset(strSQL)Me.display_box.Value=rs!LONG_DESCRIPTION
我已经能够让它工作,但我想知道您对这个版本的想法!啊,是的,我错了!我没有意识到更好的代码字段是字符串。我在DLookup函数中的“Me.TextboxToSearchWith”周围加了单引号,现在应该可以使用了。但是,如果你的同事给出的版本有效,那就太好了。看起来这两种方法都可行,但我的版本只有一行代码,这将有助于保持事情的整洁。@Sambartlebeck的建议很好,因为它只涉及一个公式,不依赖于打开数据库和记录集。您也可以直接将dlookup放入表单上的控制框中,并避免使用任何VBA。(省略“我”这个词)是的,很好。因此,我重新考虑了Sam的建议,并使其生效,因此我将其标记为解决方案。不幸的是,我被迫放弃了这项努力,现在有了一个新的问题,我无法解决,可能很快就会发布出来……我没能让它发挥作用,但它确实为我指明了正确的方向。巧合的是,我有一个朋友路过,他最终帮助了我。最后,我们将这个
Dim db作为数据库,rs作为记录集,strSQL作为字符串集db=CurrentDb strSQL=“从icd9_代码中选择icd9_code.LONG_描述,其中更好的_代码='001.0'”MsgBox(strSQL)集rs=db.OpenRecordset(strSQL)Me.display_box.Value=rs!LONG_DESCRIPTION
我已经能够让它工作,但我想知道您对这个版本的想法!啊,是的,我错了!我没有意识到更好的代码字段是字符串。我在DLookup函数中的“Me.TextboxToSearchWith”周围加了单引号,现在应该可以使用了。但是,如果你的同事给出的版本有效,那就太好了。看起来这两种方法都可行,但我的版本只有一行代码,这将有助于保持事情的整洁。@Sambartlebeck的建议很好,因为它只涉及一个公式,不依赖于打开数据库和记录集。您也可以直接将dlookup放入表单上的控制框中,并避免使用任何VBA。(省略“我”这个词)是的,很好。因此,我重新考虑了Sam的建议,并使其生效,因此我将其标记为解决方案。不幸的是,我被迫放弃了这一努力,现在有了一个新的问题,我无法解决,可能很快就会发布。。。。