Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 为什么将值赋给ADORecordset中的字段会引发错误?_Ms Access_Vba_Ms Access 2003 - Fatal编程技术网

Ms access 为什么将值赋给ADORecordset中的字段会引发错误?

Ms access 为什么将值赋给ADORecordset中的字段会引发错误?,ms-access,vba,ms-access-2003,Ms Access,Vba,Ms Access 2003,所以我正在测试示例代码,我将一些在线文本粘贴到一个字段中,但我得到了一个错误,我不知道为什么。以下是引发错误的整个方法: 编辑来自分配的错误。然而,这是不可能的 对任意数量的其他输入字符串抛出错误 以下是传递到方法中的字符串: DoCmd对象的大多数方法都有参数?有些是 必需,而其他是可选的。如果省略可选参数, 参数假定特定方法的默认值。对于 例如,OpenForm方法使用七个参数,但只使用第一个参数 参数FormName是必需的。下面的示例显示了如何 可以在当前数据库中打开员工窗体。只有员工

所以我正在测试示例代码,我将一些在线文本粘贴到一个字段中,但我得到了一个错误,我不知道为什么。以下是引发错误的整个方法:

编辑来自分配的错误。然而,这是不可能的 对任意数量的其他输入字符串抛出错误

以下是传递到方法中的字符串:

DoCmd对象的大多数方法都有参数?有些是 必需,而其他是可选的。如果省略可选参数, 参数假定特定方法的默认值。对于 例如,OpenForm方法使用七个参数,但只使用第一个参数 参数FormName是必需的。下面的示例显示了如何 可以在当前数据库中打开员工窗体。只有员工 有头衔的销售代表也包括在内

以下是准确的错误描述:

多步骤操作生成错误。检查每个状态值


事情就是这样,我就是不明白。您能告诉我发生此错误的原因吗?

您是否检查了类型的
curNodeName
?如果您传递了要追加的数字类型,则在命名字段时可能会将其隐式转换为字符串,以避免索引错误,如果是这种情况,(并且您无意中尝试将该字符串分配给索引当前不在集合中的字段的值,)您可能会抛出该多重错误,因为您试图将长度大于默认长度的字符串分配给索引方式位于当前集合之外的字段(其中任何一个错误都可能引发特定的异常,但取决于解析器处理这些术语的方式,它可能会在尝试分配错误代码之前评估分配的每一方的有效性。)

我想知道的是,您是否已将debug.print(或只是计数,取决于集合大小)字段名和索引作为匹配对,并尝试按索引而不是名称将字符串分配给字段?

(从注释到另一个答案:)

adVarChar类型和adVarWChar之间肯定存在一些关键的差异,而设置的文本对这些差异的响应是不同的

Access中的
Text
Memo
字段在许多版本之前(Access 2000和Jet 4.0发行版)被升级为处理Unicode。从那时起,
Text
字段和参数需要被引用为
adVarWChar
(最大长度为255),而
Memo
字段和参数需要引用为
adVarWChar
adLongVarWChar
(理论大小限制约为10亿个字符)


不清楚为什么问题中的代码适用于某些字符串而不适用于其他字符串,但肯定使用了正确的(“W”)数据类型是一个先决条件。

多步操作通常指向将值加载到无法接受它的变量中。但我认为您所做的操作没有问题。它对我有效。可能问题特定于2003版Access。请尝试对文本变量进行所有替换。最后设置XMLValueDecode=TextDoes
 Call Prompt()
compile in Access 2003 VBA?Access 2010投诉“Sub or Function not defined”(子函数或函数未定义)。如何调用该函数?为了隔离错误,有很多工作要做:减少和简化该函数。此外,在尝试应用
RTrim()的同时,从函数中设置
.Value
肯定是出了问题。如果第一件事发生了,您应该能够使用
CStr(curNodeName)分配它
在追加行和赋值行中。我觉得这不太可能,因为XML的规则之一是,任何标记都不能以数字开头。但是,如果标记类型为variant或其他类型,则可能需要显式转换。CurNodeName值是潜文本。adVarChar和键入和adVarWChar,设置的文本对其作出不同的响应。
   CurNodeName = RTrim(CurNodeName)

   ADORecordset.Fields.Append CurNodeName, adVarChar, 500, adFldMayBeNull

    tempString = XMLValueDecode(CurNodeValue)
    ADORecordset.Fields(CurNodeName).Value = tempString