Снова настырный доктор :)
Работали раньше в Access, а теперь требования возросли и решили сделать приложение на VB. Но застрял на экспорте таблицы в txt файл.
1. Имеется база данных по визитам пациентов-[Report.mdb]. Как в VB6 сделать экспорт одной из таблиц-[DiagnosValue] (5 столбцов, 20-50 строк) в текстовый файл.
В VBA-Access это делается легко через DoCmd.TransferText (например DoCmd.TransferText acExportDelim, "", "DiagnosValue", "С:\Report.txt", -1, "", 1251).
Но в VB6 DoCmd не работает.
Как это можно сделать из VB6, чтобы результат был такой-же, как в VBA-Access т.е. - экспорт в txtфайл с разделителями/;/, ограничитель текста/"/, имена полей в первой строке, кириллица-1251?
2. А также, можно ли перед экспортом записать данные из этой таблицы[DiagnosValue] в строковую переменную, как обычный текст для дальнейшей работы с ним, разделяя строки с помощью например Chr(9), т.е. чтобы можно было например отобразить в текстбоксе в том-же виде, как это будет в Report.txt или потом отдельно нужно будет считывать из Report.txt через /Open For Input as #1/ и загружать в текстбокс.
Спасибо уважаемый sne, но...
1. ПРи попытке запустить код в виде отдельной процедуры - ругается Type mismatch на Set rs=Db.OpenRecordset("iagnosValue" - хотя и базу я открываю через Set Db=OpenDatabase(DBName).
2. Попробовал вынести процедуру в отдельный проект (форма с одной кнопкой), при попытке запустить вообще VB вешается глухо.
Ничего не пойму, какого ему надо?
Это VB глючит или что?
Спасибо уважаемый АНДРЕЙ, после подсказки все отлично заработало.
А по поводу ADO - не неугодил, а просто слишком много надо будет в другой части кода переделывать, и поиск и добавление-удаление записей, в коде есть много мест, откуда вызывается Data1, и потом нужно добавлять контрол Adodc1, а там уже есть два Data, получится уж очень коряво ну и т.д.
Короче переделывать все на ADO - слишком много времени, и так бодаюсь с VB после работы уставший поздно вечером, поневоле тупить будешь.
А тут еще сегодня пациент учудил. Я говорит маг, адепт, в медицину не верю - сам буду себя лечить заклинаниями и начал шаманить прямо в палате. Верьте - не верьте, а комп кардиографа вешается наглухо, еще один прибор зашкаливает и он перестает реагировать на датчики. Красота - сигналы сигналят, лампочки мигают, магу настает карачун - насилу откачали.
Лежит сейчас в реанимации, руки пристегнули, чтобы как придет в себя снова камлать не начал. Врачи с других отделений сбежались - офонарели все, то ли трястись от страха, что магия так на технику влияет, то ли хохотать, что этот блин адепт, чуть себя случайно не укокошил. Ему выписываться было на днях, сейчас проваляется еще недели две. Нарочно не придумаешь.
....!!! ......!!! ..........!!!
Поторопился радоваться. Заработало, когда я поправил код в процедуре вынесенной в тестовый отдельный проект (форма с одной кнопкой). А когда вставляешь отдельным модулем в основной проект снова начинает ругаться на Set RS = DB.OpenRecordset("iagnosValue".
Пишет Type mismatch - несоответствие типов. Ничего не пойму.
То ли туплю уже, то ли маг очухался, снова камлает.
Да и еще, первый раз на радостях не обратил внимания.
Код не пишет заголовки столбцов, и не заключает текст в кавычки.
Т.е. в В VBA-Access через DoCmd.TransferText acExportDelim, "", "iagnosValue", "С:\1.txt", -1, "", 1251 получается примерно так:
Ли 1;0;0;45;1
Ли 2;0;0;56;0
Ле 10b;32;8;31;4
Ле 11;55;0;54;0
Тл 1b;28;7;46;3
Нд 1a;0;0;50;1
Нд 2;0;0;60;9
Кр 8b;49;3;0;0
ну то, что десятичных разрядов нет, это непринципиально, они все равно не особо дальше нужны, а вот нам еще хотя бы заголовки столбцов, ну и совсем хорошо - это текст бы в кавычки заключить.
И самое главное, что это за ошибка13 Type mismatch, почему код работает отдельно и не хочет в основном проекте?