Вопрос № 72057: Здравствуйте.
Вопрос: что необходимо прописать в макросе, что бы сохранить числа находящиеся, например в ячейках B8:J28 (на листе "bb" в книге c:/pr50.xls) в текстовый файл с разделителями пробел (*.prn) в заданную папку c:/dat/w1.prn. ...Вопрос № 72082: Добрый день, уважаемые эксперты!
Подскажите, пожалуйста, как приделать на VB6 что-то типа конвертера т.е. имея на входе текстовый файл с разделителями, получить на выходе dbf-ник. Или такое возможно только через посредничество программ сторонних ...
Вопрос № 72.057
Здравствуйте.
Вопрос: что необходимо прописать в макросе, что бы сохранить числа находящиеся, например в ячейках B8:J28 (на листе "bb" в книге c:/pr50.xls) в текстовый файл с разделителями пробел (*.prn) в заданную папку c:/dat/w1.prn. Причем сохранить не весь лист "bb" а только выделенные ячейки B8:J28.И после сохранения опять вернуться на лист "bb".
Сергей
Отправлен: 22.01.2007, 11:37
Вопрос задал: Kas (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Dimm77
Здравствуйте, Kas!
Код работает при условии, что активный лист и есть bb в c:pr50.xls. Сначала обрабатываем массив ячеек, затем пишем это всё в файл с соответствующим форматированием. Удач!
Приложение:
--------- Цель жизни - жизнь.
Ответ отправил: Dimm77 (статус: 1-ый класс)
Ответ отправлен: 22.01.2007, 12:19
Отвечает: Alec Perle
Здравствуйте, Kas!
В Excel (да и не только) есть возможность записать последовательность действий в виде макроса - меню Сервис-Макрос-Записать
Провести вручную требуемые действия (создание нового листа для сохранения, копирование данных на этот лист, соответственно сохранение в нужном формате и удаление уже не нужного листа), а затем посмотреть.
В частности вот что получилось у меня:
Приложение:
--------- Пессимист - это хорошо информированный оптимист (а оптимист - хорошо проинструктированный пессимист)
Ответ отправил: Alec Perle (статус: 2-ой класс)
Ответ отправлен: 22.01.2007, 23:03 Оценка за ответ: 5
Вопрос № 72.082
Добрый день, уважаемые эксперты!
Подскажите, пожалуйста, как приделать на VB6 что-то типа конвертера т.е. имея на входе текстовый файл с разделителями, получить на выходе dbf-ник. Или такое возможно только через посредничество программ сторонних разработчиков типа Access или Excel? Открыть файл и считать из него данные не вызывает затруднений, а вот как потом организовать выгрузку в dbf-файл?
Спасибо!
Отвечает: Dimm77
Здравствуйте, Wino Veritas!
Имеет смысл почитать хелпы на спецификацию формата *.dbf. Попроще - http://alxsoft.narod.ru/SIxFormat.htm, поинтересней - http://www.ronyasoft.nm.ru/phonebook/dbfheader.html (описаны разные варианты формата dbf). Это если организовывать самому запись формата. Если же нет, то можно использовать встроенные объекты VB, позволяющие заполнить соответствующие поля и сохранить их в требуемом формате. Например - создать объект Workspace, использовать его метод CreateDatabase, потом создать там таблицу с нужными типами
и количеством полей, затем заполнить её информацией. Однако Microsoft Jet хочет работать только со своим форматом.
Можно немного иначе, как описано в http://www.firststeps.ru/vb/r.php?34, там в строке ODBC-коннекта можно описать стандартный драйвер для dbf (правильную строку подключения можно посмотреть в системных источниках данных при попытке этот источник создать), и потом работать с этим объектом как с обычной ДБ. Есть ещё и сторонние компоненты для VB, но ими не пользовался, потому не буду врать.
--------- Цель жизни - жизнь.
Ответ отправил: Dimm77 (статус: 1-ый класс)
Ответ отправлен: 22.01.2007, 16:16 Оценка за ответ: 5
Отвечает: Vvvv
Здравствуйте, Wino Veritas!
Одним из вариантов для решения данного вопроса может быть связка VB6+ADO, для этого в референсах подключаем библиотеку Microsoft ActiveX Data Objects 2.7 Library ну или другой версии которую имеем, важно чтоб на компьютере клиента она присутствовала, установить можно с помощью MDAC соответствующей версии
Далее создаем три объекта adocon as new ADODB.connection; adocoM as new ADODB.command; adoRS as new ADODB.Recordset; через них и работаем, adocon объект доступа к базе данных, adocoM используется в тех случаях, когда не требуется возвращать источник данных; adoRS возвращает источник данных в котором можно добавлять, удалять и редактировать записи, а так же выводить на экран в различные гриды (есть специальные для АДО и отдельно для ДАО) ну и т.д.
Ниже примерчик, думаю разберёшся. В принцепе идея работает, проверял, главное творческий подход...
Приложение:
Ответ отправил: Vvvv (статус: 1-ый класс)
Ответ отправлен: 23.01.2007, 13:59 Оценка за ответ: 5 Комментарий оценки: Спасибо большое за ответ. С ADO работал и раньше, так что думаю затруднений не вызовет. Отдельное спасибо за приведённый пример - очень помогло разобраться.