Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вставить данные в excel из .dbf 
:(
    Опции темы
PredatorALEX
Дата 20.11.2007, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 20.11.2007

Репутация: нет
Всего: нет



Ребята есть Dos база которую пополняют через день, она представлена 40 dbf файлами (dBase 4.0). В первой строке dbf названия колонок латинскими.
Я хочу находить в трех файлах по определенным значениям полей данные и вытягивать их в Excelячейки.
Как мне это реализовать и желательно не открывая этих файлов? Переходить в Access не хочется.
Помогите чем сможете!

Это сообщение отредактировал(а) PredatorALEX - 20.11.2007, 23:34
PM MAIL   Вверх
Akina
Дата 20.11.2007, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Шаг 1: импорт в Excel.
Шаг 2: настройка фильтра


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
PredatorALEX
Дата 21.11.2007, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 20.11.2007

Репутация: нет
Всего: нет



пишу макросы в Excele на Vba, но не знаю как задать запрос на поиск в Dbf файле найти нужную строку и скопировать все её поля в ексель,
там в ДОСЕ есть файл на 65000 строк, но не хочется его открывать фильтровать и ещё чттото самому искать, как можно процесс автоматизировать, и это ж не один файл по такому запросу нужно в трех файлах ковырятся, и разные поля выдергивать.
PM MAIL   Вверх
Naghual
Дата 21.11.2007, 01:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



Во первых, невозможно произвести чтение из файла предварительно не открыв его. Вы путаетесь в терминах и путаете нас.

Во вторых, в общем случае, нельзя заставить компьютер сделать (автоматизировать) то, что вы сами не знаете.


Подсказка 1:
При открытии ДБФ файла в экселе, он работает с ним как с листом Экселя.

Подсказка 2:
Поиграйтесь со встроенным диалогом поиска Экселя.

Подсказка 3:
В экселе, существует возможность Записи Макросов. 


Когда вы разберетесь с поиском и фильтрацией данных, включите запись макроса и выполните необходимые действия над таблицей. Затем просмотрите код записанного макроса, и при необходимости, внесите в него коррективы.


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
PredatorALEX
Дата 21.11.2007, 02:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 20.11.2007

Репутация: нет
Всего: нет



как писать макросы я знаю пишу давно многое изучил но считаывание из файла ещё не знаю, ADO DAO вроде нарыл но не пойму как можно такое применить или ещё что, ну фильтрация бьольшого числа строк сами понимаете сколько времени займет хотя может отключать события и делать поиск по открытым файлам? подскажите в какую сторону хоть копать 
PM MAIL   Вверх
Naghual
Дата 21.11.2007, 02:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



Ок. Даю наводку по вашему вопросу:

Меню 
Данные \ Импорт внешних данных \ Создать запрос...

И все это записать в макрос!  smile


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
kapbepucm
Дата 21.11.2007, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 993
Регистрация: 14.6.2007
Где: Латвия

Репутация: 3
Всего: 12



Код
Public Function ExtractTableName(MyFileName As String) As String
  ExtractTableName = MyFileName
  Dim I As Long
  For I = Len(MyFileName) To 1 Step -1
    If Mid(MyFileName, I, 1) = "\" Then
      ExtractTableName = Right(MyFileName, Len(MyFileName) - I)
      Exit For
    End If
  Next I
End Function
Public Sub ImportTable()
  Const MyFileName As String = "путь и имя *.dbf"
  Dim WrkNm As String
  WrkNm = Application.ActiveWorkbook.Name
  Application.Workbooks.Open MyFileName
  Application.Workbooks(ExtractTableName(MyFileName)).Sheets(1).Range("B1").AutoFilter 2, Application.Workbooks(ExtractTableName(MyFileName)).Sheets(1).Range("B2")
  Application.Workbooks(WrkNm).Sheets(1).Name = Left(ExtractTableName(MyFileName), Len(ExtractTableName(MyFileName)) - 4)
  Application.Workbooks(ExtractTableName(MyFileName)).Sheets(1).Cells.Select
  Selection.Copy
  Application.Workbooks(WrkNm).Sheets(1).Paste
  Application.CutCopyMode = False
  Application.Workbooks(ExtractTableName(MyFileName)).Close False
End Sub



--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
Naghual
Дата 21.11.2007, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



Уважаемый kapbepucm, ваш вариант не позволит выполнить запрос к таблице и вернуть лишь необходимые данные. Вы открываете таблицу полностью и применяете фильтр.

Как говорил PredatorALEX
Цитата(PredatorALEX @  21.11.2007,  00:13 Найти цитируемый пост)
есть файл на 65000 строк, но не хочется его открывать фильтровать...


А в остальном решение имеет место быть.



--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
PredatorALEX
Дата 21.11.2007, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 20.11.2007

Репутация: нет
Всего: нет



Огромное спасибо за помощь! будем пробовать

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0783 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.