Замена Chr (10) на Chr (13) + Chr (10) в Excel для импорта в Access - PullRequest
0 голосов
/ 15 мая 2019

Проблема в том, что в Excel разрывы строк используют Char(10), но в Access они используют Char(13) & Char(10).Таким образом, когда вы импортируете в Access из Excel, все разрывы строк в Excel находятся на одной и той же строке в Access.

У меня импорт выполняется автоматически с помощью нажатия кнопки, так что некоторые данные можно очиститьдо ввода.Я хочу добавить это к сенсибилизации, но у меня возникли проблемы с этим:

' Remove blank cells that aren't blank (i.e., pasting values of formulas with no value)
xl.ActiveSheet.UsedRange.Select
xl.Selection.Value = xl.Selection.Value

' Replace line breaks and carriage returns with something Access recognizes
xl.Selection.Value = Replace(xl.Selection.Value, Chr(10), Chr(13) + Chr(10))

' OR this....

xl.ActiveSheet.Selection.Replace _
  What:=Chr(10), Replacement:=Chr(13) + Chr(10), _
  SearchOrder:=xlByColumns, MatchCase:=False

Первый подход генерирует:

Run-time error '13': Type mismatch

Второй подход генерирует:

Run-time error '438': Object doesn't support this property or method

Где я здесь ошибаюсь и что может быть лучше?

Ответы [ 2 ]

1 голос
/ 15 мая 2019

Неважно, разобрался через несколько минут после публикации:

xl.Selection.Replace What:="" & Chr(10) & "", Replacement:="" & Chr(13) & Chr(10) & "", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
0 голосов
/ 15 мая 2019

Чтобы сохранить данные Excel, вы можете запустить следующий запрос после импорта в MS Access:

update 
    YourTable t 
set 
    t.YourField = Replace(t.YourField, Chr(10), Chr(13) & Chr(10))
where 
    t.YourField like "*" & Chr(10) & "*" and
    t.YourField not like "*" & Chr(13) & Chr(10) & "*"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...