MS Access 报告 - 字符处换行?

Posted

技术标签:

【中文标题】MS Access 报告 - 字符处换行?【英文标题】:MS Access report- line break at character? 【发布时间】:2011-04-07 15:57:35 【问题描述】:

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

因为该字段在报告上的水平空间有限,而且网址可能很长,而不是让网址溢出到文本长度迫使它到达的地方,例如:

http://***.com/que
stions/ask

我想知道是否有办法强制文本字符串在最后一个适当的字符处自动换行,在这种情况下是“/”字符。结果将是看起来更具可读性的内容,例如:

http://***.com/
questions/ask

这可以吗?有关如何处理此任务的任何建议?

【问题讨论】:

【参考方案1】:

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

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

使用中:

?prettybreak("http://***.com/questions/5583986/ms-access-report-line-break-at-character", 30)
http://***.com/
questions/5583986/ms-access-
report-line-break-at-character

【讨论】:

+1 但请考虑为第一个参数取一个不同的名称,因为 Text 是 Jet 中的保留作品。见allenbrowne.com/AppIssueBadWord.html#T 好点。我只是马虎/懒惰。我相应地更新了我的答案。 对您的评论 +1。我有那个网站书签自己。这是一个很好的参考。

以上是关于MS Access 报告 - 字符处换行?的主要内容,如果未能解决你的问题,请参考以下文章

Ms Access - 无法从 Word RTF 报告导出中删除换行符

MS Access 报告中的换行符

MS Access 报告:如何根据显示的文本在文本框中添加换行符

Textarea 仅在换行符处换行

JSLint 错误:“预期在 EOF 处换行”,与 Beautify 插件冲突

MS Access 按字符串开头对访问报告进行排序