我正在使用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