使用 VBA 从主菜单打开一个表单,其中一个字段为空/空白

     2023-04-19     146

关键词:

【中文标题】使用 VBA 从主菜单打开一个表单,其中一个字段为空/空白【英文标题】:Use VBA to open a form from a main menu where one of the fields is null/blank 【发布时间】:2019-08-27 00:30:07 【问题描述】:

我是 VBA 新手并开始了解基础知识,但是,我无法从主菜单打开一个表单(这只是一个没有记录源的表单),其中一个字段为空/空白.我正在使用一个带有点击事件的按钮来实现这一点。

我可以通过将字段设置为特定值来打开表单,以打开具有该值的所有记录。例如,以下代码有效:

DoCmd.OpenForm "frm_Projects" , , , "Status='Active'"

但是,我在表单中有一个注释字段,当该字段为空/空时,我希望它只显示那些记录。其他字段可以填写。

我尝试了以下方法:

(1) 加载一个空白表单,就像我正在尝试添加新记录一样

DoCmd.OpenForm "frm_Project", , ,"txt_Notes='Is Null"

(2) 给我一个“运行时错误'2450':”

If IsNull([Forms]![frm_Project]![txt_Notes]) Then
   DoCmd.OpenForm "frm_Project"
Else
   MsgBox "Some text"
End If

【问题讨论】:

【参考方案1】:

不要在Is Null 中使用等号。另外,单撇号也不合适。

DoCmd.OpenForm "frm_Project", , , "txt_Notes Is Null"

第二个代码缺少右括号。

If IsNull([Forms]![frm_Project]![txt_Notes]) Then

但是,不能引用尚未打开的表单字段。需要在主表单(或打开“搜索”表单)上为用户选择他们想要用于打开表单或报告的标准。或者如果您不希望用户有任何输入,代码需要查询数据源以查看是否有任何记录符合要求。 DCount 或 DLookup 域聚合函数可以做到这一点。

If DCount("*", "your table or query name", "txt_Notes Is Null") > 0 Then
    DoCmd.OpenForm "frm_Project", , , "txt_Notes Is Null"
Else
    DoCmd.OpenForm "frm_Project"
End If

这假定字段中不允许出现空字符串。我从不允许文本字段中出现空字符串。 Null 和空字符串不是一回事。如果可能出现空字符串,则必须调整代码。处理 Null 和空字符串:"Nz(txt_Notes,'')=''"

【讨论】:

对于DoCmd.OpenForm "frm_Project", , , "txt_Notes Is Null",我得到一个“输入参数值”的弹出窗口,就好像我在进行查询搜索一样。如果我点击 OK 或输入文本,它会加载一个空白表单。我收到与If IsNull([Forms]![frm_Project]![txt_Notes]) Then 相同的错误 我尝试了使用 DCount 和 DLookup 的 If 语句,我得到“运行时错误 '3075':查询表达式 '*' 中的语法错误(缺少运算符)。”我会在哪里添加您对使用 "Nz(txt_Notes,'')=''" 处理 Null 和空字符串的建议? (对不起,我不知道两者之间的区别)。提前感谢您的帮助! 用它代替"txt_Notes Is Null"。两个版本都适合我。编辑问题以显示尝试的新代码。 Null 表示什么都没有,zilch,nada;一个空字符串是什么。 Null 不能与任何东西进行比较,因为没有什么可比较的,即使是 Null。这就是为什么在测试 Null 时必须使用 Is NullIsNull()Nz() 的原因。 allenbrowne.com/casu-12.html

从一个未绑定的表单 vba 访问添加多条记录

...绑定的表单,我可以在其中输入Order1、Order2、Order3的值。使用一个名为“SAVE_LOAD”的按钮,我想将它输入到一个表“LOADDATAENTRY”中,Order1将创建一个记录行,Order2将 查看详情

访问 VBA 拼写检查子表单的一个字段

...能准确且无错误。在主表单中,一旦您离开该字段,我已使用此代码对标题字段进行拼写检查。PrivateSubDeta 查看详情

oMail - 将更改的合并字段从数据库表单添加到 vba 代码

...abaseform【发布时间】:2014-03-1011:55:53【问题描述】:我是一个基本用户,我设置了一个命令按钮,点击发送电子邮件。到目前为止,我已经设法让它工作到可以向特定电子邮件地址发送电子邮件的地步,但在我的数据库中,我有... 查看详情

从 React 中的同一个选择下拉表单字段中获取多个值

】从React中的同一个选择下拉表单字段中获取多个值【英文标题】:GetmultiplevaluesfromthesameselectdropdownformfieldinReact【发布时间】:2020-07-0917:02:55【问题描述】:我目前有一个带有选择下拉列表的ReactMaterial表单,我在其中映射一组... 查看详情

为一个属性使用多个输入字段

】为一个属性使用多个输入字段【英文标题】:Usingmultipleinputfieldsforoneattribute【发布时间】:2012-06-2400:49:21【问题描述】:我是Rails新手,如果这个太简单了,请见谅。我的模型中有一个datetime属性,我尝试将值与3个表单元素一... 查看详情

访问 VBA - 使用组合框(多值字段)时类型不匹配

】访问VBA-使用组合框(多值字段)时类型不匹配【英文标题】:AccessVBA-TypeMismatchwhenworkingwithComboBoxes(MultiValuedFields)【发布时间】:2020-08-3120:50:01【问题描述】:我有一个表单,它一次显示一条记录,并允许通过在文本框和组合... 查看详情

使用 vba 在 Access 2010 中使用不同表单的 ID 打开表单

】使用vba在Access2010中使用不同表单的ID打开表单【英文标题】:OpenaformusingIDfromadifferentforminAccess2010usingvba【发布时间】:2013-06-1114:18:45【问题描述】:我正在尝试从另一个表单的按钮打开一个表单。带有按钮contracts_all表单的表... 查看详情

从 Excel VBA 生成包含表单域的 PDF

...】:2021-07-0314:19:05【问题描述】:我有一个Excel表格,我使用VBA代码可以将其转换为PDF页面/文件。我的问题是:可以在Excel表上选择一个区域/单元格作为“表单域”(通过VBA),然后生成pdf,然后能够打开此pdf并使用我想要的数... 查看详情

开放式ERP。从树打开一个表单,但从其他相关字段

】开放式ERP。从树打开一个表单,但从其他相关字段【英文标题】:OpenERP.Openfromtreeaformbutfromotherrelatedfield【发布时间】:2015-08-2711:27:02【问题描述】:我正在为event.event构建一个自定义视图,其中包含一个用于registration_ids字段... 查看详情

从 VBA 设置为 SQL 的子表单记录源上的访问挂起

...布时间】:2012-10-2620:16:34【问题描述】:我的数据库中有一个“搜索”表单,它接收一个字符串,将其分解为一个数组,并根据选定的连接类型(“Or”、“And”或“ExactPhrase”单选)构建一个SQL字符串纽扣)。我的代码在95%的... 查看详情

如何使用 VBA 代码填充表单上的 Access 2010 文本框

】如何使用VBA代码填充表单上的Access2010文本框【英文标题】:HowtopopulateAccess2010textboxesonaFormusingVBAcode【发布时间】:2015-08-1415:40:09【问题描述】:我有一个Access2010表单,其中包含Year、PolicyNumber和Type_Code的三个组合框。在这些旁... 查看详情

使用 VBA 未打开表单时在访问中更新表单

】使用VBA未打开表单时在访问中更新表单【英文标题】:UpdateforminaccesswhenformisnotopenusingVBA【发布时间】:2017-05-0920:30:59【问题描述】:我在Access中开发了一个表单,允许用户搜索与其参数匹配的记录。该表单有大约五个组合框... 查看详情

根据使用 Javascript 选择的组合框动态添加表单字段

】根据使用Javascript选择的组合框动态添加表单字段【英文标题】:AddingdynamicallyformfieldsdependingonselectionofcomboboxwithJavascript【发布时间】:2012-03-0218:59:54【问题描述】:我要为一个网站做一个信息提交页面,其中会有一些字段应该... 查看详情

提交表单时VBA访问新记录

...。我没有加载每个字段硬编码以显示为空白的表单,而是使用:PrivateSubForm_Load()DoCmd.GoToRecord,,acNewRecMe.Username=Crea 查看详情

Django 1.3 CreateView/ModelForm:unique_together 验证,其中一个字段从表单中排除

】Django1.3CreateView/ModelForm:unique_together验证,其中一个字段从表单中排除【英文标题】:Django1.3CreateView/ModelForm:unique_togethervalidationwithonefieldexcludedfromform【发布时间】:2011-10-1701:20:34【问题描述】:我正在寻找这个常见问题的简... 查看详情

使用从 VBA 代码派生的值填充表中的字段

】使用从VBA代码派生的值填充表中的字段【英文标题】:Populatingfield(s)inatablewithvaluesderivedoutofVBAcode【发布时间】:2013-04-1912:36:41【问题描述】:我找到了一些neatcode(实际上是通过here)来获取当前登录到Windows的用户的用户名。... 查看详情

如何从表单中排除字段?

...几个字段的模型表单。在一个模板中,我想在一个模板中使用所有这些字段,并在另一个模板中排除某个字段。是否可以不编写新表单而只在views.py中排除该字段?【问题讨论】:【参考方案1】:不完全是,但您不必重复自己。... 查看详情

java示例代码_当其中一个字段不是字符串而是另一个对象时,使用Spring MVC提交表单

java示例代码_当其中一个字段不是字符串而是另一个对象时,使用Spring MVC提交表单 查看详情