访问VBA Recordset截断

时间:2017-04-29 07:28:51

标签: vba ms-access truncation

我正在使用Access 2016.我创建了一个我已经传递给查询的函数 - 该函数的作用是从3-4k解析备忘录(长文本)字段字符(在2个标记之间解析字符串)到我可以使用的长度。这是功能:

Function getBASE(sStrx)
Dim sTemp, iBEG As Integer, iEND As Integer, sBEG As String, sEND As String
'

If InStr(UCase(sStrx), "FROM ") > 1 And InStr(sStrx, "{") > 1 Then
      iBEG = InStr(sStrx, "{") + 1
      iEND = InStr(sStrx, "}") - iBEG
      getBASE = Mid(sStrx, iBEG, iEND)
End If
'
End Function

结果长度约为700个字符。当我在结果上创建LEN时,我得到700个字符。然后我运行包含Split函数的sub(下面的代码),但拆分的结果是255个字符。但是,我有几个msgbox弹出来检查记录集值的长度和它的700(正确长度),但由于某种原因,它会截断。我不知道这是由于函数,子函数还是其他东西。另一件事:我可以将原始值(3-4k字符)传递给子,它工作正常。我非常沮丧......请求帮助。

Sub Break_String()
  Dim db As DAO.Database, rsSource As DAO.Recordset, rsDest As DAO.Recordset
  Set db = CurrentDb()
  Set rsSource = db.OpenRecordset("qTEST")
  Set rsDest = db.OpenRecordset("tblParsed")
  Dim WrdArray() As String
  rsSource.MoveFirst
  WrdArray() = Split(UCase(rsSource("[getBASE]")), "FROM ")
  '
  MsgBox Len(rsSource("[getBASE]")) <---- 700 chars

  For i = LBound(WrdArray) To UBound(WrdArray)
   strg = strg & vbNewLine & WrdArray(i)
  Next i
  '
  MsgBox strg    <----- 255 chars
End Sub

0 个答案:

没有答案