Ms access MS Access报告-字符处换行?

Ms access MS Access报告-字符处换行?,ms-access,report,Ms Access,Report,我在MS Access中构建了一个报告,其中包括一个包含web地址的短文本框。文本框的“CanGrow”选项设置为“是” 因为此字段的报告上的水平空间有限,并且web地址可能非常长,而不仅仅是在文本长度迫使其溢出的地方,例如: http://stackoverflow.com/que stions/ask 我想知道是否有办法强制文本字符串在最后一个合适的字符处换行,在本例中是“/”字符。结果将是更具可读性的内容,例如: http://stackoverflow.com/ questions/a

我在MS Access中构建了一个报告,其中包括一个包含web地址的短文本框。文本框的“CanGrow”选项设置为“是”

因为此字段的报告上的水平空间有限,并且web地址可能非常长,而不仅仅是在文本长度迫使其溢出的地方,例如:

http://stackoverflow.com/que
stions/ask
我想知道是否有办法强制文本字符串在最后一个合适的字符处换行,在本例中是“/”字符。结果将是更具可读性的内容,例如:

http://stackoverflow.com/
questions/ask

这能做到吗?有关如何执行此任务的任何建议?

以下递归函数将根据用户定义的字符和最大行长插入回车符/换行符。这在固定宽度字体中效果最好,但在一些实验中,可变宽度字体也可以接受:

Function PrettyBreak(Txt As String, MaxCharsPerLine As Long, _
                     Optional BreakAfterChars As String = ":=-+&?./ ") As String
Dim t As String, i As Integer, Pos As Integer

    If Len(Txt) > MaxCharsPerLine Then
        t = Left(Txt, MaxCharsPerLine)
        For i = MaxCharsPerLine To 1 Step -1
            If InStr(BreakAfterChars, Mid(t, i, 1)) <> 0 Then
                Pos = i
                Exit For
            End If
        Next i
        If Pos = 0 Then
            PrettyBreak = t & vbCrLf & _
                          PrettyBreak(Mid(Txt, MaxCharsPerLine + 1), _
                                      MaxCharsPerLine, BreakAfterChars)
        Else
            PrettyBreak = Left(t, Pos) & vbCrLf & _
                          PrettyBreak(Mid(Txt, Pos + 1), _
                                      MaxCharsPerLine, BreakAfterChars)
        End If
    Else
        PrettyBreak = Txt
    End If
End Function

+ 1,但是考虑第一个参数的不同名称,因为文本是JET中的保留工作。明白了吗。我只是太懒散了。我相应地更新了我的答案。和你的评论+1。我已经把那个网站的书签给我自己了。这是一个很好的参考。
?prettybreak("http://stackoverflow.com/questions/5583986/ms-access-report-line-break-at-character", 30)
http://stackoverflow.com/
questions/5583986/ms-access-
report-line-break-at-character