|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.05.2010, 13:19 | #1 |
Пользователь
Регистрация: 27.05.2010
Сообщений: 13
|
Проблема с загрузкой dbf в макрос
Добрый день! Пишу макрос в excel-ке, но не получается импортировать данные из дбф файла и обработать.
Собственно нужно: в форме экселя пользователь вводит порядковый номер. при нажатии на кнопку формы ексель должен открыть дбф файл, лежащий в той же папке, и по введенному номеру отыскать строку в дбф и вывести наименование определенные стобцы этой стоки в форму эксель. Если конкретнее: пользвователь вводит бик банка, макрос подключается к дбф-ку и выдает в эксель наименование банка. Кто что может посоветовать??? Написать необходимо именно на VBA. Последний раз редактировалось R@v14; 27.05.2010 в 14:18. |
27.05.2010, 13:31 | #2 |
Регистрация: 27.05.2010
Сообщений: 5
|
Доброго дня
Переведи сначала из формата .DBF в .XLS, а потом работай, как с обычным файлом: FN = "file_name_dbf" ChDir "C:\papka" Workbooks.Open Filename:="C:\papka\" & FN & ".DBF" ActiveWorkbook.SaveAs Filename:="C:\papka\" & FN & ".XLS", _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ActiveWindow.Close Workbooks.Open Filename:="C:\papka\" & FN & ".XLS" Это поможет сохранить оригинальный DBF неизменным |
27.05.2010, 13:35 | #3 |
Пользователь
Регистрация: 27.05.2010
Сообщений: 13
|
TO Sham1963
***** А как работать тогда с обычным файлом .xls??? И то, что оригинальный дбф останется не изменным- это не столь важно, т.к. каждый день дбф записывается новый... Если не сложно укажи, пжлст, как тогда в твоем варианте искать нужную строку в др файле xls? |
27.05.2010, 13:42 | #4 |
Регистрация: 27.05.2010
Сообщений: 5
|
s = Range("A1").CurrentRegion.Rows.Coun t ' S - считаем число строк в файле
for i=1 to s if cells(i,4)= trebuemy_bik then ss=i : exit for ' SS - запомнили нужную строку next i |
27.05.2010, 14:17 | #5 |
Пользователь
Регистрация: 27.05.2010
Сообщений: 13
|
TO Sham1963
***** Пробую конвертить дбф файл в хлс -ругается у меня екселька. Вот это ей не нравится: ActiveWorkbook.SaveAs Filename:="C:\papka\" & FN & ".XLS", _ и FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ((((((((((((( |
27.05.2010, 14:25 | #6 | |
Форумчанин
Регистрация: 17.10.2008
Сообщений: 239
|
Цитата:
Далее в Excel используя ADO обрабатывал базу. Код:
|
|
27.05.2010, 14:25 | #7 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
А если так попробовать?
Код:
|
27.05.2010, 14:26 | #8 |
Регистрация: 27.05.2010
Сообщений: 5
|
1. А excell какой?
2. DBF открывается нормально? 3. Сохрани проще: ActiveWorkbook.SaveAs Filename:="C:\papka\" & FN & ".XLS" прим. В FN расширение не должно присутствовать, это чисто ИМЯ!!! И действительно, papka - это какая-то твоя РЕАЛЬНАЯ ПАПКА!!! Последний раз редактировалось Sham1963; 27.05.2010 в 14:30. |
27.05.2010, 16:07 | #9 |
Пользователь
Регистрация: 27.05.2010
Сообщений: 13
|
))))))))))))))))))) То, что "papka"- это моя какая-то папка- эт я понимаю )
На данный момент уже добился следующего: макрос открывает дбф файл и добавляет его содержимое на Лист2, остается только доделать поиск нужного бика на листе2 и вывод ячейки с наименованием на лист1. Столкнулся с такой проблемой: если несколько раз подряд вводить разные бики- то лист2 переполняется, т.к. дбф файл у меня более 10 000 строк ((( думаю, что после каждого нахождения наименования нужно очищать лист2? Может кто-то подскажет что-то полегче?? Еще проблема- во время заполнения листа2 данными из дбф (несколько секунд)- активным становится окно листа2 и пользователь будет видеть содержимое дбф файла (правда всего несколько секунд)- но, думаю, это будет пугать моих юзверей... можно ли как-то в фоновом режиме передавать данные в лист2? Последний раз редактировалось R@v14; 27.05.2010 в 17:36. Причина: ексель -2003 |
28.05.2010, 00:50 | #10 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
Только ради нормального психического состояния юзера убрал содержимое файла,да и скорость увеличил
В текстбох вводите бик -кнопка и получаете название.Пример файла dbf во вложении.Для проверки указаны данные по условным банкам. к проекту должна быть подключена библиотека ADO меню Tools / References ... Microsoft ActiveX Data Objects...
Анализ,обработка данных Недорого
Последний раз редактировалось doober; 28.05.2010 в 01:07. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с загрузкой в Image | Panik666 | Мультимедиа в Delphi | 1 | 22.04.2010 03:35 |
Проблема с загрузкой ОС | Vali_T | Операционные системы общие вопросы | 18 | 07.04.2010 18:50 |
Проблема с загрузкой страницы | Nester | Работа с сетью в Delphi | 5 | 06.11.2009 13:37 |
Проблема с загрузкой XP. | hebu | Windows | 11 | 20.07.2009 14:33 |
Проблема с загрузкой карты. | Shadow_1329 | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 2 | 13.07.2009 14:35 |