|
VBA; Лишние пробелы при импорте
|
|||
---|---|---|---|
#18+
Доброго времени суток Для импорта данных из Excell в Access использую процедуру: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59.
При импорте данных из листа excel в поле таблицы access появляются лишние пробелы. В файле excel, тем не менее, этих пробелов нет. Я пробовал и Код: vbnet 1.
И Код: vbnet 1.
в т.ч. и функцию zamena, предоставленную мне ранее пользователем ПЕНСИОНЕРКА. Всё равно импортирует с пробелами. Когда я сменил в одном из полей таблицы тип с текстового на мемо, данные в это поле занеслись без пробелов, как положено. Но это не выход, т.к. от меня требуются таблицы с полями определённого типа. Но и без этого считаю нужным понять проблему. Помогите разобраться ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2017, 14:31 |
|
VBA; Лишние пробелы при импорте
|
|||
---|---|---|---|
#18+
Ataxy, попробуйте , немного изменила Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2017, 15:17 |
|
VBA; Лишние пробелы при импорте
|
|||
---|---|---|---|
#18+
Ataxy, или в документе есть символы с кодами 12 или 14 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2017, 15:18 |
|
VBA; Лишние пробелы при импорте
|
|||
---|---|---|---|
#18+
если лишние символы в середине слова Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2017, 15:26 |
|
VBA; Лишние пробелы при импорте
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКАAtaxy, попробуйте , немного изменила Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
авторили в документе есть символы с кодами 12 или 14 ПЕНСИОНЕРКА, я попробовал Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
не помогло... авторесли лишние символы в середине слова Не, пробелы возникают справа ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2017, 15:33 |
|
VBA; Лишние пробелы при импорте
|
|||
---|---|---|---|
#18+
Подумал было, что не пробелы это вовсе, а что-то ещё. Скопировал данные одной из ячеек, вставил в word, отобразил символы - отобразило пробелы! Но если это они, что ж они тримом и реплейсом не убираются?... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2017, 16:10 |
|
VBA; Лишние пробелы при импорте
|
|||
---|---|---|---|
#18+
Ataxy, видимо их подряд больше 2 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2017, 17:16 |
|
VBA; Лишние пробелы при импорте
|
|||
---|---|---|---|
#18+
Ataxy, примените Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2017, 17:18 |
|
VBA; Лишние пробелы при импорте
|
|||
---|---|---|---|
#18+
имхо, у ТС поля в таблицы типа char (а не varchar) Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2017, 23:20 |
|
VBA; Лишние пробелы при импорте
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКАAtaxy, примените Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Вот этот участок: Код: vbnet 1. 2. 3.
будет давать верный результат, если длина исходного участка пробелов <=10. Если же длина 11, 14, 17, 19, 20, 22, 23 - длина участка пробелов в результирующей строке будет >1. А если длина исходного участка пробелов >24, все результаты будут неверными. Предлагаю вот такое универсальное решение (замена участка пробелов на единичный пробел): Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2017, 15:02 |
|
VBA; Лишние пробелы при импорте
|
|||
---|---|---|---|
#18+
авторимхо, у ТС поля в таблицы типа char (а не varchar) Да, я действительно использовал CHAR. Поменял тип, пробелы не появляются. Спасибо большое за совет. Я предположил, что трим и реплейс не срабатывали, т.к. были прописаны в цикле добавления, а пробелы появлялись уже после завершения добавления. Однако, в одном из полей первоначальная функция замены "склеила" значение, где пробел в середине (1 шт - 1шт), хотя также была прописана в цикле. Не понимаю почему... авторпримените Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
авторВот этот участок: Код: vbnet 1. 2. 3.
будет давать верный результат, если длина исходного участка пробелов <=10. Если же длина 11, 14, 17, 19, 20, 22, 23 - длина участка пробелов в результирующей строке будет >1. А если длина исходного участка пробелов >24, все результаты будут неверными. Предлагаю вот такое универсальное решение (замена участка пробелов на единичный пробел): Код: vbnet 1. 2. 3.
ПЕНСИОНЕРКА , Michelle , спасибо вам за решения, записал себе ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 11:29 |
|
|
start [/forum/topic.php?fid=45&fpage=74&tid=1612358]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 344ms |
total: | 479ms |
0 / 0 |