【问题标题】:Accessing DAO Recordset Values访问 DAO 记录集值
【发布时间】:2020-07-13 19:14:26
【问题描述】:

我将字段名称存储在变量中 - 我想通过 DAO Recordset 访问存储在该字段中的值。

我的语法设置如下,但我的 Debug.Print 语句返回

idea.Value

而不是字段中保存的实际值。例如,假设我有一个名为 Test 的表,其中包含一个名为 idea 的短文本字段,其中包含值

红色
绿色
蓝色

在下面的语法中,我希望 idea.Value 显示这 3 个值,但不是打印实际值,而是打印字段名称。发生这种情况的原因是我错误地设置了什么?

Public fieldname As String

fieldname = "ides"

Do While Not rsSelect.EOF
    rsInsert.AddNew
    Debug.Print ""& fieldnamea & ".Value"
Loop

【问题讨论】:

  • 双引号之间的任何内容都是字符串文字。您的 Debug.Print 语句没有以任何方式访问记录集字段,它只是打印它被告知要打印的内容:两个字符串文字和一个字符串变量,连接在一起。 ""& 完全没用顺便说一句。

标签: ms-access vba ms-access-2013


【解决方案1】:

你的语法错误。

Do While Not rsSelect.EOF
    Debug.Print rsInsert.Fields(fieldname).Value
    rsInsert.MoveNext
Loop

请注意,您最好在网上寻找有关记录集如何工作的教程,而不是反复试验并在出现错误时在 Stack Overflow 上提问。

【讨论】:

  • 那个 Debug.Print 语句也返回一个空值
  • 哦等等 - 表中有一个空值...我需要遍历多个实例。道歉。
  • 请更正代码,记录集的名称是rsSelect,在Do While条件中使用,但rsInsert在循环内部使用。
  • @Md.SumanKabir 我不能,因为我不知道 OP 是否想要遍历 rsSelect 或 rsInsert 记录集。去问问他。
【解决方案2】:

您可以使用以下内容:

Public fieldname As String

fieldname = "idea"

Do While Not rsSelect.EOF
    Debug.Print rsSelect(fieldname).Value
    rsSelect.MoveNext
Loop

或者,您可以简单地执行此操作而无需使用任何变量:

Do While Not rsSelect.EOF
    Debug.Print rsSelect!idea
    rsSelect.MoveNext
Loop

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    • 1970-01-01
    • 2014-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多