Я пробовал ряд методов для введения сложного возврата, включая chr (10) и chr (13), vbnewline, vbcr, vblf, vblfcr
Это прекрасно работает, если я вставляю в текстовое поле на форма, но не тогда, когда я использую набор записей для записи данных непосредственно в таблицу
Вот пример строки, которую я пытаюсь записать, включая сложные возвраты:
МОНТАЖНЫЕ СТАНЦИИ МФК DENNIS
УРОВЕНЬ КОНКУРСА ПЛАНА ЧАСТИЧНОГО ЭТАЖА
RTI-ECL801_A2004_Rev06
После записи в таблицу данные выглядят так, что данные не возвращаются показано:
ЕСЛИ C НЕМЕЖЕВЫЕ СТАНЦИИ МОНТАЖ ДЕННИСА ЧАСТИЧНЫЙ УРОВЕНЬ КОНТУРНОГО ПЛАНА RTI-ECL801_A2004_Rev06
после большого количества экспериментов это похоже на символы для жесткого возврата встроены в текст, но он не отображается правильно в таблице. Когда я вырезаю и вставляю текст в другое приложение (например, в Excel или блокноте), оно отображается с показанными жесткими возвратами, но доступная форма не отображается с жесткими возвратами. Я сбит с толку и провел большую часть сегодняшнего дня, пытаясь понять, что должно быть простой операцией. Вот некоторые выдержки из кода
'set sheet in Excel
xl.Worksheets("Drawings").Activate
...
'open recordset
rstData.Open "Drawings", CurrentProject.Connection, adOpenDynamic,
adLockOptimistic
...
'write data from Excel cell into table field
rstData.AddNew
rstData.Fields("Drawing") = PreserveHardReturns(Trim(xl.Range(drawingCol & currRow)))
Public Function PreserveHardReturns(inputString As String) As String
Dim stringParts() As String
Dim i As Long
stringParts = Split(inputString, vbCrLf)
i = LBound(stringParts)
PreserveHardReturns = ""
While i < UBound(stringParts) + 1
If i = UBound(stringParts) Then
PreserveHardReturns = PreserveHardReturns & _
stringParts(i)
Else
PreserveHardReturns = PreserveHardReturns & _
stringParts(i) & vbNewLine
End If
i = i + 1
Wend
End Function