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

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,它工作正常 . 我非常沮丧......请求帮助 .

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