我们有 2 个应该有匹配表的数据库。我有一个(生产中)报告,它比较这些字段并以 MS-Access 表单(连续表单样式)向用户显示它们以进行更正。
这一切都很好,只是很难找到差异。如何格式化这些字段以将差异加粗/斜体/着色?

(一旦它们以某种方式突出显示,就更容易看到 2 个相似文本字段之间的差异)

由于我们讨论的是 MS Access 中的表单,因此我不抱太大希望。但我知道我不是第一个遇到这个问题的人。建议?

编辑
我已经使用了 Remou 的解决方案。这不是我理想的解决方案,但它“足够好”,尤其是因为我没有任何富文本选项。在构建源表的查询中,我使用 space() 添加尾随空格以使两个字段的长度相等。然后我将此代码添加到两个字段的 Click 事件中(另一个字段的 TextA 和 TextB 反转):

    Dim i As Integer
    For i = 1 To Len(Me.TextA.Text)
        If Right(Left(Me.TextA.Value, i), 1) <> _
        Right(Left(Me.TextB.Value, i), 1) Then
            Me.TextA.SelStart = i - 1
            Me.TextA.SelLength = Len(Me.TextA.Text)
            Exit For
        End If
    Next i
结果是当您单击每个字段时,会选择字符串末尾的第一个“不同字母”。我能够快速地进行实验、编码和文本,所以我选择了它。但我迟早会重新审视这个想法,因为这个概念在几个项目中都很有用。

最佳答案

您可以设置 selstart 和 sellength,这将选择文本框的一部分。存在一些危险,因为用户可能靠在一个键上并清除选择。

关于vba - 逐个字母比较 2 个相似的字符串并突出显示差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2858125/

10-13 03:29