|
Удалить верхний апостроф
|
|||
---|---|---|---|
#18+
Парни всем привет, есть вопрос: Импортирую данные из Экселя в dbf в Аксесе, вобщем получаю такие данные во всех полях перед данными стоит пробел, нашел функцию по удалению пробела вот такую: Function TrimAll(ByVal strText As String) As String Dim strTemp As String Dim strOut As String Dim intI As Integer Dim strCh As String * 1 ' Удаление пробелов вначале и в конце строки. strTemp = Trim(strText) For intI = 1 To Len(strTemp) ' Поочередный просмотр каждого символа. strCh = Mid$(strTemp, intI, 1) If Not strCh = " " Then strOut = strOut & strCh End If Next intI TrimAll = strOut End Function А запрос соответственно переделываешь на: UPDATE tbl2 SET tbl2.License = TrimAll([License]); Но после исполнения запроса все осталось как было, вобщем просмотрел данные в Экселе оказывается во всех полях, столбцах идет не пробел первым а вот такой символ:' Иванов. Причем в аксесе верхний апостроф визуально не отображается виден только пробел. Подскажите как его удалить вместе с пробелом? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2009, 11:55 |
|
Удалить верхний апостроф
|
|||
---|---|---|---|
#18+
Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2009, 11:59 |
|
Удалить верхний апостроф
|
|||
---|---|---|---|
#18+
............................... Код: plaintext 1.
Неа не проходит, предлогает обновить записи обновляем, а на деле как было так и осталось! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2009, 12:02 |
|
Удалить верхний апостроф
|
|||
---|---|---|---|
#18+
Ёклмн............................... Код: plaintext 1.
Неа не проходит, предлогает обновить записи обновляем, а на деле как было так и осталось! вот это сделай Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2009, 12:07 |
|
Удалить верхний апостроф
|
|||
---|---|---|---|
#18+
...............................Ёклмн............................... Код: plaintext 1.
Неа не проходит, предлогает обновить записи обновляем, а на деле как было так и осталось! вот это сделай Код: plaintext 1.
Вывел таблицу с двумя полями: p1 p2 209 235 207 240 160 193 160 202 Это что? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2009, 12:11 |
|
Удалить верхний апостроф
|
|||
---|---|---|---|
#18+
Ёклмн, Похоже, это мусор! Вопрос, как он туда попал. А как ты "импортируешь данные из Экселя в dbf в Аксесе"? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2009, 12:19 |
|
Удалить верхний апостроф
|
|||
---|---|---|---|
#18+
Ёклмн... Это что? это ASCI-кода первых 2-х символов Код: plaintext 1. 2. 3. 4.
другое дело что вот это Код: plaintext 1. 2.
вот так попробуй Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2009, 12:21 |
|
Удалить верхний апостроф
|
|||
---|---|---|---|
#18+
...............................Ёклмн... Это что? это ASCI-кода первых 2-х символов Код: plaintext 1. 2. 3. 4.
другое дело что вот это Код: plaintext 1. 2.
вот так попробуй Код: plaintext 1.
Ок спасибо, я так вначале и подумал что мусор какой то! Теперь все нормально ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2009, 12:29 |
|
Удалить верхний апостроф
|
|||
---|---|---|---|
#18+
..............................., А вдруг с мусором придет какой-нибудь еще символ? Желательно понять источник мусора... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2009, 12:34 |
|
Удалить верхний апостроф
|
|||
---|---|---|---|
#18+
Ёклмн, или я чего-то не понимаю, или тут всё просто. Во-первых, данные в Экселе хранятся так, видимо, в целях правильности написания текста. Т.е. в Экселе если в начале ячейки стоит апостроф, то дальше понимается как текст. Во-вторых, импорт из Экселя можно было сделать сразу с учётом этой особенности. В-третьих, даже если импорт проведён стандартными средствами, а требуется лишь написать обновление таблицы, то непонятно, зачем вы пишете такую функцию TrimAll. Если вы хотите все пробелы удалить из исходных записей, то есть проще: Replace([License], " ", ""). В-четвёртых, что касается апострофа. Если даже допустить, что он не всегда присутствует в каждой записи, то чем вам не нравится сочетание Replace, InStr и Mid или Replace, IIf, Mid? InStr определит, где находится апостроф (если в первом символе, то работать дальше нужно). А вернее, надо так: [License] = IIf(InStr([License], "'", 1) = 1; Mid([License], 2), [License]), в кавычках написан апостроф. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2009, 12:36 |
|
Удалить верхний апостроф
|
|||
---|---|---|---|
#18+
Rivkin Dmitry..............................., А вдруг с мусором придет какой-нибудь еще символ? Желательно понять источник мусора... согласен, это было б лучше ..в своё время тоже столкнулся с такой проблемой (и тоже был этот 160 символ), но у меня была уже заполненная БД в Аксе из Экселя (не мною) - и откуда он там взялся - выяснить уже было не реально.... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2009, 12:44 |
|
Удалить верхний апостроф
|
|||
---|---|---|---|
#18+
Ёклмн Код: sql 1.
Ок спасибо, я так вначале и подумал что мусор какой то! Теперь все нормально Здравствуйте спустя века!))) А вот у меня не сработало. Предложите пожалуйста вариант как справиться с этой "болезнью" в таком раскладе: простейший экспорт запроса (исходные таблицы прилинкованные dbf) в эксель приводит к тому же в результате - в текстовых полях апострофы в начале! Проапдейтил предложенным методом исходную таблицу, но безрезультатно. Причем в самом Экселе Application.Replace отрабатывает, но они не убираются, а пользовательский метод "Найти/Заменить" говорит что таких данных на листе вообще не обнаружено, хотя визуально они видны! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2018, 16:31 |
|
Удалить верхний апостроф
|
|||
---|---|---|---|
#18+
Отображение апострофа не означает, что он есть в данных - это признак принудительного форматирования в текст. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2018, 16:33 |
|
Удалить верхний апостроф
|
|||
---|---|---|---|
#18+
Ёклмнвот это сделай Код: vbnet 1.
и покажеш что вывело У меня это вывело то, что 160-го у меня нигде нет. (32-го и 39-го тоже). Тогда откуда же берутся эти апострофы в итоге? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2018, 16:43 |
|
Удалить верхний апостроф
|
|||
---|---|---|---|
#18+
AkinaОтображение апострофа не означает, что он есть в данных - это признак принудительного форматирования в текст. Это именно признак, или признак-последствие того, что данные были переформатированы в текст? Просто с другими-то текстовыми полями таких трюков не происходит никогда. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2018, 16:47 |
|
Удалить верхний апостроф
|
|||
---|---|---|---|
#18+
kulib, а каким способов и в каком офисе вы выгружаете данные в Ёксель? Я (в Офис 2010) перепробовал несколько методов но апостроф не получил (в т.ч. и для текстового поля с числовой строкой). Хотя в раньше (оф 2003) я такое получал и даже боролся. Попробуйте получить массив значений диапазона, а затем присвоить его обратно диапазону. Вот пример (в модуле Ёкселя): Код: vbnet 1. 2. 3. 4. 5. 6.
Проверил. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2018, 15:49 |
|
|
start [/forum/topic.php?fid=45&tid=1611512]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 263ms |
total: | 406ms |
0 / 0 |