|
|
|
не срабатывает макрос для открытия таблицы dbf
|
|||
|---|---|---|---|
|
#18+
Всем привет! у меня небольшая проблемка - есть один макрос, который должен работать так - при нажатии на кнопку открывается диалоговое окно выбора файла, затем этот файл импортируется в таблицу эксель. вот сам макрос Sub uyjhk() Dim path As String Application.ScreenUpdating = False With Application.FileDialog(msoFileDialogOpen) .Title = "Выберите файл" .Show If .SelectedItems.Count = 0 Then Exit Sub myPath = .SelectedItems(1) End With Cells.Select Selection.ClearContents With ActiveSheet.QueryTables.Add(Connection:="odbc;Driver={Microsoft dBase Driver (*.dbf)};DBQ=c:", _ Destination:=ActiveSheet.Range("A2"), Sql:="SELECT * FROM mypath") .Refresh End With End Sub при запуске макроса вылезает Run-time error 1004 Общая ошибка оdbc. если я явно указываю в конструкции select .... from путь к dbf файлу - все работает. как устранить сей косяк?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2011, 23:34 |
|
||
|
не срабатывает макрос для открытия таблицы dbf
|
|||
|---|---|---|---|
|
#18+
shumamura, Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 00:05 |
|
||
|
не срабатывает макрос для открытия таблицы dbf
|
|||
|---|---|---|---|
|
#18+
пробуй камнем, пишет что run-time-error 1004, синтаксическая ошибка sql ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 09:51 |
|
||
|
не срабатывает макрос для открытия таблицы dbf
|
|||
|---|---|---|---|
|
#18+
пробуй камнем, Спасибо! все получилось! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 09:58 |
|
||
|
не срабатывает макрос для открытия таблицы dbf
|
|||
|---|---|---|---|
|
#18+
есть еще один прикол - если имя открываемого dbf файла превышает 8 символов вместе с расширением, то при выполнении With ActiveSheet.QueryTables.Add(Connection:="odbc;Driver={Microsoft dBase Driver (*.dbf)};DBQ=c:", _ Destination:=ActiveSheet.Range("A2"), Sql:="SELECT * FROM " & myPath) выдается "Общая ошибка ODBC".... такие приколы блин - не ожидал что так будет.. возможно ли как-то обойти эту проблемку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 12:12 |
|
||
|
не срабатывает макрос для открытия таблицы dbf
|
|||
|---|---|---|---|
|
#18+
shumamuraесть еще один прикол - если имя открываемого dbf файла превышает 8 символов , то при выполнении With ActiveSheet.QueryTables.Add(Connection:="odbc;Driver={Microsoft dBase Driver (*.dbf)};DBQ=c:", _ Destination:=ActiveSheet.Range("A2"), Sql:="SELECT * FROM " & myPath) выдается "Общая ошибка ODBC".... такие приколы блин - не ожидал что так будет.. возможно ли как-то обойти эту проблемку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 12:32 |
|
||
|
не срабатывает макрос для открытия таблицы dbf
|
|||
|---|---|---|---|
|
#18+
shumamura, ...возможно ли как-то обойти эту проблемку? Код: plaintext 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. ЗЫ: проблема _скорее_всего_ не в длине имени файла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 16:21 |
|
||
|
не срабатывает макрос для открытия таблицы dbf
|
|||
|---|---|---|---|
|
#18+
пробуй камнемshumamura, ...возможно ли как-то обойти эту проблемку? + Код: plaintext 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. ЗЫ: проблема _скорее_всего_ не в длине имени файла. думаю, от этого ничего не меняется. что ваш код, что мой код - без разницы ЧТО стоит после FROM - полный путь к таблице DBF или только имя таблицы - та же проблема - при открытии файла с именем большим 8 символов - Общая ошибка ODBC... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 20:40 |
|
||
|
не срабатывает макрос для открытия таблицы dbf
|
|||
|---|---|---|---|
|
#18+
shumamura, ... а после изменения имени файла на более короткое подключение QureyTable происходит без ошибок. Если так - то вы наступили на какие-то неизвестные грабли. Если нет - то ошибка не из-за имени файла, а, например, из-за отсутствия индексного файла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 20:46 |
|
||
|
не срабатывает макрос для открытия таблицы dbf
|
|||
|---|---|---|---|
|
#18+
пробуй камнемshumamura, ... а после изменения имени файла на более короткое подключение QureyTable происходит без ошибок. Если так - то вы наступили на какие-то неизвестные грабли. Если нет - то ошибка не из-за имени файла, а, например, из-за отсутствия индексного файла. да, запускаю например и выбираю файл с именем, большим чем 8 - не работает. затем меняю имя, открываю и все работает... может быть Microsoft dBase Driver не поддерживает все таки имена файлов, больших 8? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 21:01 |
|
||
|
не срабатывает макрос для открытия таблицы dbf
|
|||
|---|---|---|---|
|
#18+
может стоить поменять провайдера? какой еще провайдер работает с *.dbf без глюков? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 21:12 |
|
||
|
не срабатывает макрос для открытия таблицы dbf
|
|||
|---|---|---|---|
|
#18+
shumamura, перед тем как запостить свой говнокод, я, честное благородное слово, проверил, отрабатывает ли подключение, если имя файла длинее восьми символов. ОС: win xp sp3 Версия драйвера: 4.00.6304.00, файл odbcjt32.dll, дата 18.08.2004 ЗЫ: более вразумительный текс ошибки пожно получить используя другого провайдера, например Microsoft.Jet.OLEDB.4.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 21:19 |
|
||
|
не срабатывает макрос для открытия таблицы dbf
|
|||
|---|---|---|---|
|
#18+
shumamura, можете выложить Ваш "файл с длинным именем", на котором подключение обламывается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 21:21 |
|
||
|
не срабатывает макрос для открытия таблицы dbf
|
|||
|---|---|---|---|
|
#18+
пробуй камнемshumamura, перед тем как запостить свой говнокод, я, честное благородное слово, проверил, отрабатывает ли подключение, если имя файла длинее восьми символов. ОС: win xp sp3 Версия драйвера: 4.00.6304.00, файл odbcjt32.dll, дата 18.08.2004 ЗЫ: более вразумительный текс ошибки пожно получить используя другого провайдера, например Microsoft.Jet.OLEDB.4.0 и че- у вас все получилось открыть какой-нить файл dbf? у меня win7prof, версия драйвера 6.01.7601.17514,файл odbcjt32.dll, дата 20.11.2010 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 21:26 |
|
||
|
не срабатывает макрос для открытия таблицы dbf
|
|||
|---|---|---|---|
|
#18+
пробуй камнем, вот файл - данных там нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 21:29 |
|
||
|
не срабатывает макрос для открытия таблицы dbf
|
|||
|---|---|---|---|
|
#18+
shumamura, поменял имячъко на более длинное 12345678 12345678.dbf , положил файл в папку c:\temp\ , подключился без проблем. Запрос выдал 65 записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 22:03 |
|
||
|
не срабатывает макрос для открытия таблицы dbf
|
|||
|---|---|---|---|
|
#18+
пробуй камнемshumamura, поменял имячъко на более длинное 12345678 12345678.dbf , положил файл в папку c:\temp\ , подключился без проблем. Запрос выдал 65 записей. тут уже нет слов.... неужели от версии драйвера зависит....? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 22:19 |
|
||
|
не срабатывает макрос для открытия таблицы dbf
|
|||
|---|---|---|---|
|
#18+
shumamura, не знаю. Сейчас семёрку на виртуальную машину поставлю - проверю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 22:57 |
|
||
|
не срабатывает макрос для открытия таблицы dbf
|
|||
|---|---|---|---|
|
#18+
shumamura, причиной оказалась DBE (Borland Database Engine). Если её удалить, у меня тоже не подключается к файлам с длинными именами. Из положения вышел с помошью WinAPI функции GetShortPathName Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2011, 04:01 |
|
||
|
не срабатывает макрос для открытия таблицы dbf
|
|||
|---|---|---|---|
|
#18+
пробуй камнемshumamura, причиной оказалась DBE (Borland Database Engine). Если её удалить, у меня тоже не подключается к файлам с длинными именами. Из положения вышел с помошью WinAPI функции GetShortPathName + Код: plaintext 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. хоть я пока и не разобрался как работает эта функция - (по названию - возвращает короткое имя файла ))) ) но теперь все открывает! Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2011, 10:07 |
|
||
|
не срабатывает макрос для открытия таблицы dbf
|
|||
|---|---|---|---|
|
#18+
тогда еще один вопрос... по конструкции Select как правильно написать .Sql = "SELECT FIO as ФИО потребителя, sum as уплаченная сумма FROM * чтобы в экселе отображались наименования столбцов, которые мы задаем, а не названия полей таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2011, 10:17 |
|
||
|
не срабатывает макрос для открытия таблицы dbf
|
|||
|---|---|---|---|
|
#18+
shumamura, Для переименования заглавий столбцов(полей) используйте как вы и написали только не употребляйте служебные слова, и соблюдайте синтаксис Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2011, 10:31 |
|
||
|
не срабатывает макрос для открытия таблицы dbf
|
|||
|---|---|---|---|
|
#18+
R Dmitry, я и ковычки и апострофы перепробовал, оказывается надо [] спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2011, 10:37 |
|
||
|
не срабатывает макрос для открытия таблицы dbf
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2011, 10:40 |
|
||
|
|

start [/forum/topic.php?fid=61&fpage=125&tid=2176661]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 383ms |

| 0 / 0 |
