【问题标题】:How can i properly use DLookup function to return strings?如何正确使用 DLookup 函数返回字符串?
【发布时间】:2021-05-25 20:15:58
【问题描述】:

Dim gen as String

gen = DLookup("gender", "Patient", "ID_patient='" & Me.ComboPatients.Value & "'")

我得到错误匹配类型数据的错误运行时 3464,我不知道为什么?

【问题讨论】:

  • 患者编号是数字吗?如果是这样,请不要将其放在引号之间。
  • ID_patient 是一个整数,我要写什么?
  • 删除 Me.ComboPatients.Value 周围的单引号。我不知道将字符串连接在一起的 vba 语法,但您希望运行时值评估为(例如,患者 ID 为 10):“ID_patient = 10”。注意 10 周围没有单引号。
  • 谢谢!我解决了它,正确的符号是: gen = DLookup("gender", "Patient", "ID_patient = " & Me.ComboPatients.Value) 没有你建议的单引号
  • 另外,我还有一个问题,我在多个标准方面遇到了一些问题,例如这个:lower_limit = DLookup("lower_limit", "Threshold", "age= 'young (0-30 )'" 和 "ID_par= " & Me.ComboPatients.Value 和 "gender= 'male'")。符号对吗?

标签: sql vba ms-access


【解决方案1】:

如果 ID_patient 是数字类型字段,则会发生数据不匹配错误。不要将撇号分隔符用于数字类型,仅使用文本类型字段。使用 # 作为日期/时间类型字段参数。

根据您的评论(应该已编辑问题或开始新问题),连接不正确。 AND 必须包含在文字字符串部分中 - 不会被涂成蓝色。考虑:

"age='young (0-30)' AND ID_par=" & Me.ComboPatients & " AND gender='male'"

或重新排列:

"age='young (0-30)' AND gender='male' AND ID_par=" & Me.ComboPatients

【讨论】:

  • 谢谢!我用你的符号解决了这个问题;)。下次我将编辑问题或开始一个新问题。
  • 如果年龄和性别等于变量呢?例如: lower_limit = DLookup ("lower_limit", "Threshold", "age = '" & rangeagein & "' And ID_par = " & ME.ComboPatients & " And gender = '" & gender & "'")
  • 看起来不错。它有效吗?我看到你提出了一个新问题。
猜你喜欢
  • 2020-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-14
  • 2014-06-14
  • 1970-01-01
  • 2020-10-10
  • 1970-01-01
相关资源
最近更新 更多