【问题标题】:Error 2427 "You entered an expression that has no value." in Access form (VBA)错误 2427 “您输入的表达式没有值。”以访问形式 (VBA)
【发布时间】:2015-04-25 03:44:39
【问题描述】:

我正在使用 Access VBA,我有两个表单(form1 和 form2),在表单 1 中我有一个列表框控件(form1.modifiable49)。我选择一个列表项并使用按钮控件单击打开第二个表单(form2),

在第二种形式中,我有一些表格列,并且我有一个文本框来存储我的变量,我想用等于 modifiable49 值的元素打开 form2

我有:

Private Sub Form_Load()
    Me.Texte = [Forms]![Form1]![Modifiable49]
    Me.Filter = "[id_parcelle]=" & Texte
    Me.FilterOn = True
End Sub

但是当我在列表框中选择值并执行时,我得到错误 2427:

您输入的表达式没有值。

表达式可能引用没有值的对象,例如表单、报表或标签控件。

【问题讨论】:

  • 你没有提到哪一行得到了错误。此外,列表框条目是数字还是字母?如果是字母数字,那么你的过滤器需要像:Me.Filter = "[id_parcelle]='" & Me.Texte & "'",但是,最大的问题是你对列表框的引用——它需要引用一个特定的列表框中的条目:即 [Forms]![Form1]![Modifiable49].ItemsSelected(0)。更简单的方法是在单击按钮时在表单打开事件中传递值..
  • 我在这一行有错误 Me.Filter = "[id_parcelle]=" & Texte
  • 您需要更多报价。过滤器是一个字符串。
  • 我在这一行有错误 Me.Filter = "[id_parcelle]=" & Texte 并且我的文本框包含值(我验证购买了一个消息框并且我有一个值)列表框条目是数字
  • “Texte”是什么/在哪里?我不相信“Texte”包含您认为的内容。作为测试,在设置过滤器之前添加以下代码行,然后将结果粘贴回该线程。 Debug.Print "My Text: >" & Texte & "" & [Forms]![Form1]![Modifiable49] & "

标签: forms ms-access vba ms-access-2010


【解决方案1】:

这不会失败,会列出Texte的值供你调查:

Private Sub Form_Load()
    Me!Texte.Value = [Forms]![Form1]![Modifiable49].Value
    Debug.Print "Texte:", Me!Texte.Value
    Me.Filter = "[id_parcelle]=" & Me!Texte.Value & ""
    ' or, if Texte is a string:
    ' Me.Filter = "[id_parcelle]='" & Me!Texte.Value & "'"
    Me.FilterOn = Not IsNull(Me!Texte.Value) 
End Sub

【讨论】:

  • 没关系,问题出在我的表之间的关系上,我的代码是正确的。
  • 好的。周末愉快。
猜你喜欢
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 2021-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多