Ms access word的Access查询记录集结果输出显示特殊字符

Ms access word的Access查询记录集结果输出显示特殊字符,ms-access,ms-word,vba,ms-access-2010,Ms Access,Ms Word,Vba,Ms Access 2010,问题描述: 我正在使用MicrosoftAccessPlus 2010,使用下面的代码将查询结果导出到Word表。但是,如果记录超过255个字符,则会导出各种特殊字符 下面是查询、VBA等 查询名称:Qa 查询功能:从Ta中选择字段 VBA: Dim qbf As QueryDef Dim dabase As Database Set dabase = CurrentDb Set qdf = dbase.QueryDefs(Qa) Dim results As Recordset Dim fld

问题描述: 我正在使用MicrosoftAccessPlus 2010,使用下面的代码将查询结果导出到Word表。但是,如果记录超过255个字符,则会导出各种特殊字符

下面是查询、VBA等

查询名称:Qa

查询功能:从Ta中选择字段

VBA

Dim qbf As QueryDef
Dim dabase As Database
Set dabase = CurrentDb
Set qdf = dbase.QueryDefs(Qa)
Dim results As Recordset
Dim flds As String
Set results = qdf.OpenRecordset()
While (Not results.EOF)
    doc.addRecord results
    results.MoveNext
Wend
qdf.Close

Public Sub addRecord(pubRecordSet As Recordset)
flds = pubRecordSet.Fields("fieldname")
    mTable.cell(1, 1).range.InsertAfter (flds)
...
End Sub
其中“mTable”是Word表对象,“fieldname”是要导出到Word表的字段的名称。 当FLD的长度小于255时,此VBA通常可以正常工作,但是,如果长度超过255,它会在表格单元格中抛出许多特殊字符

导出到Word表格单元格的特殊字符示例:

 退D瞻껙皿  Ƭ" "  ᬈ௩Hȷ⫗ 鋨D૝૝ィ௨瞻껥皿௲Ǭ" "Tೕ ŮԱ ࿨ซ鐌D

我从中检查了MS访问的限制。它提到查询的记录集是1GB,我的数据要少得多(~255个字符)。非常感谢您的帮助。

我认为它们被截断或损坏几乎肯定与下列原因之一有关:


根据定义,如果长度超过255个字符,它们将被解释为备注或长文本(相同的定义-备注是数据类型的旧名称)。

要检查的事项:1)如果在数据表视图中打开查询,受影响记录的文本是否正确显示?2) 设置后添加
Debug.Print flds
,并在直接窗口(Ctrl+G)中检查输出。以及:flds的数据类型是什么?应为字符串FLD的类型为字符串。我做了Debug.Print,发现字符串被“Set results=qdf.OpenRecordset()”截断。是的,我遇到了这个错误“连接字段在记录集中产生垃圾”。它适用于“union all StructureOnly表”工作环境。非常感谢你!