2

我正在更改 Access 2010 报告。报告的一部分从名为“注释”的 SharePoint 字段中读取原始数据,其中包含每条记录的注释。在“注释”字段中,可以有多个句子。我需要找到一种方法将这些句子分成我报告中每个句子的要点。

我试图想出一个聪明的方法来做到这一点。我可以让数据输入人员在原始数据中使用某种符号,表示需要新的子弹。这样,在我的报告表达式中(或者可能通过 VBA),我可以将它分开......但是如何?

有什么想法吗?

4

2 回答 2

2

MS Access 中的备注数据字段可以设置为富文本作为属性,因此:

 UPDATE Table1 
 SET Table1.AMemo = "<ul><li>" & 
     IIf(InStr([AMemo],".")>0,
     Replace(Mid([AMemo],1,Len([AMemo])-1),".","</li>"),[AMemo]) & "</li></ul>"

富文本

于 2014-01-27T16:13:45.827 回答
1

以最基本的形式,您可以执行以下操作。是拆分“.”上的 [Notes] 文本并为每个句子创建一个单独的“点”。

示例数据:[SharePointData]

SlideNumber  Notes                               
-----------  ------------------------------------
          1  Title slide.                        
          2  Brief overview. Just the highlights.
          3  More stuff.

VBA代码:

Option Compare Database
Option Explicit

Public Function SplitNoteText(RawText As Variant) As Variant
    Dim rtn As Variant, StringArray() As String, Point As Variant
    Const BulletChar = "-"
    rtn = Null
    If Not IsNull(RawText) Then
        rtn = ""
        StringArray = Split(RawText, ". ", -1, vbBinaryCompare)
        For Each Point In StringArray
            If Len(Point) > 0 Then
                If Len(rtn) > 0 Then
                    rtn = rtn & vbCrLf & vbCrLf
                End If
                rtn = rtn & BulletChar & " " & Point
                If Right(Point, 1) <> "." Then
                    ' add back the period that got "consumed" in the Split
                    rtn = rtn & "."
                End If
            End If
        Next
    End If
    SplitNoteText = rtn
End Function

测试查询:

SELECT SlideNumber, Notes, SplitNoteText(Notes) AS Points FROM SharePointData;

结果:

SlideNumber  Notes                                 Points                                     
-----------  ------------------------------------  ----------------------
          1  Title slide.                          - Title slide.                             
          2  Brief overview. Just the highlights.  - Brief overview.

                                                   - Just the highlights.
          3  More stuff.                           - More stuff.                              
于 2014-01-27T16:18:21.990 回答