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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Экспорт таблицы в dbf с определенным именем, задание имени экспортируемого файла 
:(
    Опции темы
Akella80
  Дата 12.11.2007, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Привет. Есть база содержащая в себе разнородную информацию сортируемую и выгружаемую в различные файлы, коих по самым слабым прикидкам наберется не менее 50 и вот этот садомазохизм планируется с завидной регулярностью каждый месяц. Просмотрел форум, справку подходящего совета не нашел..
Так вот, необходимо чтобы данные из таблиц выгружались в файлы с названием типа xAABByCC.dbf где x,a,b,y переменные, зависящие от конкретных данных таблицы, а С номер месяца. Разбивку по условиям планирую выполнить посредством запросов на выборку с соответствующими условиями отбора и последующим экспортом их результатов файлы, все это реализуется посредством макроса. Вопрос собственно вот в чем - как не углубляясь в VB выполнить следующее - экспорт отобранных записей в соответствующие для условий отбора файлы (структура и названия) при этом в соответствующие им каталоги, иметь 866 (dos) кодировку и иметь заданное автоматически название (например номер отчетного месяца в названии). Жесткое задание путей и названий (в принципе можно..), а темболее отчетного периода не подходит всвязи с большим количеством экспортируемых файлов. Учитывая что времени практически нет, такая вот смехопанорама наблюдается.. 
Спасибо.http://forum.vingrad.ru/act-Post/CODE-00/f-159/syntax-sql.html#
PM MAIL   Вверх
bopoha
Дата 12.11.2007, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

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



Макросами подобное??????? Уж лучше на VB.

Вопрос вообще в чем? Если вы хотите, чтобы вам написали, то так и нужно "говорить".

Это сообщение отредактировал(а) bopoha - 12.11.2007, 19:12
PM MAIL WWW ICQ Skype GTalk   Вверх
Akella80
Дата 12.11.2007, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Понимаю что на VB лучше, одна проблема только - я в нем 0. Подумываю уже на VFP наваять, там хоть немного разбираюсь..
На макросах это вообще возможно (автоматика)?
PM MAIL   Вверх
bopoha
Дата 12.11.2007, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

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



На макросах возможно. Но не стоит. 

Если есть познания в VFP, то с VB проблем не будет. Языки очень похожи и конструкции одни и те же.

Главное будет узнать, как: создать dbf, выбрать записи из mdb, записать в dbf.
Делается все через библиотеки DAO или ADO.

Об этом в справке информации полно.

PM MAIL WWW ICQ Skype GTalk   Вверх
Akella80
Дата 12.11.2007, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В том то и проблема... До отчета 2 дня, а по нему еще счета делать, опять же не без моего участия. Не подскажешь как на макросе в имени файла вывести период (месяц) и из access слить в 866? Время будет сделаю нормальную конструкцию, а сейчас как проще.
PM MAIL   Вверх
bopoha
Дата 12.11.2007, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

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



Увы, с макросами никогда не работал.
PM MAIL WWW ICQ Skype GTalk   Вверх
Akina
Дата 12.11.2007, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Макросы - это готовые процедуры, принимающие строго определенные статические параметры. Посему дополнеительную обработку вроде подстановки месяца они сделать в принципе не способны.

Пишите процедуру на VBA. Справка по этому вопросу достаточно подробная (надо использовать метод TransferDatabase объекта DoCMD, правильно построив в программе все необходимые параметры), даже встроенная, не говоря уж о всякого рода онлайновых справочниках, начиная в MSDN. Там же обычно и вагон примеров прилагается.

 smile А цейтнот - это, извините за грубость, Вашими же руками созданная проблема. Где Вы раньше были?


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

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


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(Akella80 @ 12.11.2007,  20:18)
Понимаю что на VB лучше, одна проблема только - я в нем 0. Подумываю уже на VFP наваять, там хоть немного разбираюсь..
На макросах это вообще возможно (автоматика)?

На фоксе? Теоретически можно, но практически запаришься с типами данных. Уж лучше на Дельфи сделать. Кстати, сегодня как раз делал обратную программу - экспорт из DBF в MDB. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Akina
Дата 13.11.2007, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Данкинг @  13.11.2007,  01:14 Найти цитируемый пост)
Уж лучше на Дельфи сделать.

Всяк кулик свое болото хвалит?  smile впрочем, если топикстартер примет решение делать на Дельфи - не вопрос, перенесу в соотв. раздел...


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

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


Эксперт
***


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

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



VBA может быть нужен только для того, чтобы изменять имена таблиц. Если ты согласен это делать вручную, то можно VBA и не использовать.

Перевод идеологии DBF на идеологию Access такой.

1) Файл DBF -- есть таблица с именем, совпадающим с именем файла, но без расширения
2) Папка, в которой лежит файл -- это "база данных" (эквивалент всего MDb файла у Access)

Чтобы создать запрос, выводящий данные в DBF, надо

1) Выбрать "создание запроса в режиме конструктора", выбрать обрабатываемые таблицы, задать условия и т.п.
2) Указать тип запроса = создание таблицы
2.1) Указать имя таблицы (имя будущего DBF файла без расширения)
2.2) Выбрать пункт "в другой базе данных"
2.3) В имени файла указать "волшебную" строчку, например: C:\Dbdata "dBASE IV;"

Эта строчка указывает базу данных (папку) и её тип.

Всё. У нас готов запрос на выдачу в конкретную таблицу. Недостатки: типы полей могут быть неудачными для DBF.

Можно приготовить несколько таких запросов на разные выборки и менять номер месяца вручную. Можно на номер месяца забить.

Далее.

Теперь посмотрите на получившийся запрос на языке SQL.

То есть, всё, что Вам нужно научиться на VBA -- это формировать подобные строки и запускать их на выполнение.
PM MAIL   Вверх
Akella80
Дата 14.11.2007, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Dims @ 14.11.2007,  05:42)
VBA может быть нужен только для того, чтобы изменять имена таблиц. Если ты согласен это делать вручную, то можно VBA и не использовать.

В том то и юмор что вариант с назначением имен файлов вручную занятие мягко говоря.... Сейчас подсчитал, может получиться до 200 файлов.
Одним словом сделал экспорт в промежуточную таблицу (файл с нужной структурой и кодировкой в dbf). 
Всем спасибо.
Теперь думаю как все это развести в нужный вид.. В чем проще и быстрее сделать разводку из одного dbf (общий) в порядка 200 файлов с отбором записей и их полей в зависимости от определенных условий (5 полей в общем файле) - VFP или Delfi?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

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

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

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


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

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


 




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


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

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