![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 27.05.2010
Сообщений: 13
|
![]()
Добрый день! Пишу макрос в excel-ке, но не получается импортировать данные из дбф файла и обработать.
Собственно нужно: в форме экселя пользователь вводит порядковый номер. при нажатии на кнопку формы ексель должен открыть дбф файл, лежащий в той же папке, и по введенному номеру отыскать строку в дбф и вывести наименование определенные стобцы этой стоки в форму эксель. Если конкретнее: пользвователь вводит бик банка, макрос подключается к дбф-ку и выдает в эксель наименование банка. Кто что может посоветовать??? Написать необходимо именно на VBA. Последний раз редактировалось R@v14; 27.05.2010 в 14:18. |
![]() |
![]() |
![]() |
#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 неизменным |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 27.05.2010
Сообщений: 13
|
![]()
TO Sham1963
***** А как работать тогда с обычным файлом .xls??? И то, что оригинальный дбф останется не изменным- это не столь важно, т.к. каждый день дбф записывается новый... Если не сложно укажи, пжлст, как тогда в твоем варианте искать нужную строку в др файле xls? |
![]() |
![]() |
![]() |
#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 |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 27.05.2010
Сообщений: 13
|
![]()
TO Sham1963
***** Пробую конвертить дбф файл в хлс -ругается у меня екселька. Вот это ей не нравится: ActiveWorkbook.SaveAs Filename:="C:\papka\" & FN & ".XLS", _ и FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ((((((((((((( |
![]() |
![]() |
![]() |
#6 | |
Форумчанин
Регистрация: 17.10.2008
Сообщений: 239
|
![]() Цитата:
Далее в Excel используя ADO обрабатывал базу. Код:
![]() |
|
![]() |
![]() |
![]() |
#7 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
А если так попробовать?
Код:
|
![]() |
![]() |
![]() |
#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. |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 27.05.2010
Сообщений: 13
|
![]()
))))))))))))))))))) То, что "papka"- это моя какая-то папка- эт я понимаю
![]() На данный момент уже добился следующего: макрос открывает дбф файл и добавляет его содержимое на Лист2, остается только доделать поиск нужного бика на листе2 и вывод ячейки с наименованием на лист1. Столкнулся с такой проблемой: если несколько раз подряд вводить разные бики- то лист2 переполняется, т.к. дбф файл у меня более 10 000 строк ((( думаю, что после каждого нахождения наименования нужно очищать лист2? Может кто-то подскажет что-то полегче?? Еще проблема- во время заполнения листа2 данными из дбф (несколько секунд)- активным становится окно листа2 и пользователь будет видеть содержимое дбф файла (правда всего несколько секунд)- но, думаю, это будет пугать моих юзверей... ![]() Последний раз редактировалось R@v14; 27.05.2010 в 17:36. Причина: ексель -2003 |
![]() |
![]() |
![]() |
#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 |