我有一个MS Access表单,其中包含文本字段,用户可以在其中输入文本以及复制/粘贴文本。我要确保存储的所有文本都没有换行符,因为我将使用ArcGIS处理这些文本字段,这会在文本字段中出现换行符后将所有内容剪切掉。理想情况下,我希望用户看到他们得到的东西,也就是他们在输入文本时看到如何存储文本。
我已经尝试过此解决方案:Disabling multi-line fields in MS Access我收集到,对于文本框,我将需要一个击键事件,该事件将换行符转换为空格(或理想的是在分号后加一个空格),以及另一个事件,该事件将所有换行符从粘贴的文本中剥离出来。 >
但是,使用BIBD的上述线程中的此事件,会产生一些意外的副作用。
的更改,焦点将跳到文本字段,并且事件触发,删除所有先前输入的文本,并将其替换为空格(或以分号替换为以我为例)。但是,我必须保留先前输入的文本。而且,我不知道如何获得第二个事件以消除所有换行符的工作。Private Sub SingleLineTextBox_ KeyPress(ByRef KeyAscii As Integer) If KeyAscii = 10 _ or KeyAscii = 13 Then '10 -> Ctrl-Enter. AKA ^J or ctrl-j '13 -> Enter. AKA ^M or ctrl-m KeyAscii = 0 'clear the the KeyPress End If End Sub
如果我通过按Enter接受对此文本字段的字段[[before
If InStr(Me!MyMemoControl, vbCrLf) Then
Me!MyMemoControl = Replace(Me!MyMemoControl, vbCrLf, vbNullString)
End If
很抱歉,答案很明显,但是很遗憾,我的VBA技能很少。如果您看到比使用这两个事件更方便的解决此问题的方法,那么,我很高兴。感谢您的帮助。
我有一个MS Access表单,其中包含文本字段,用户可以在其中输入文本以及复制/粘贴文本。我要确保所有存储的文本都没有换行符,因为我将处理这些文本...
After Update
事件中进行替换。