問題の説明: 次のコードを使用して、Wordのテーブルにクエリの結果をエクスポートするMicrosoft Access Plus 2010を使用しています。ただし、レコードが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'はWoですrdテーブルオブジェクトで、 'fieldname'はWordテーブルにエクスポートされるフィールドの名前です。 このVBAは、fldsの長さが255未満の場合は一般的に問題ありませんが、長さが255を超えると、表のセルに多くの特殊文字がスローされます。
Word表のセルにエクスポートされた特殊文字の例:
退D瞻껙皿 Ƭ" " ᬈ௩Hȷ⫗ 鋨Dィ௨瞻껥皿௲Ǭ" "Tೕ ŮԱ ซ鐌D
私はMSアクセスの制限をlink hereから確認しました。それはクエリのレコードセットが私のデータが少ない(〜255文字)1GBであることを言及します。どんな助けもありがとうございます。
確認事項:1)データシートビューでクエリを開くと、影響を受けるレコードのテキストは正しく表示されますか? 2)それを設定した後に 'Debug.Print flds'を追加し、直接ウィンドウ(Ctrl + G)で出力を確認してください。 – Andre
そして、 'flds'のデータ型は?文字列でなければならない – Andre
fldsの型は文字列です。私はDebug.Printを行い、文字列が "結果の設定= qdf.OpenRecordset()"によって切り捨てられていることを発見しました – dellair