Страница: 1 | 2 | 3 |
Вопрос: Помогите начинающему: открыть и обработать dbf !
Добавлено: 27.07.09 01:10
Автор вопроса: Дмитрий
Visual Basic только начал изучать.
Нужно написать такую программу, которая:
1. Откроет файл C:\Baza.dbf
Baza.dbf представляет из себя таблицу FoxPro 3.0 c количеством записей около 100 000 с полями:
Adres, Dom, Kvartira
2. Создаст новый файл Baza-2.dbf и сохранит его на диск С, т.е. C:\Baza-2.dbf
Структура таблицы Baza-2.dbf - такая же, как и у Baza.dbf
(такие же поля Adres, Dom, Kvartira), только количество записей - 1 (пустая для начала).
3. Каждую запись таблицы Baza.dbf (от первой до стотысячной) нужно по порядку сравнить со ВСЕМИ ЗАПИСЯМИ таблицы Baza-2.dbf:
Если в этой записи Baza.dbf и сравниваемой записи Baza-2.dbf ОДНОВРЕМЕННО равны поля Adres и Dom, то не не нужно делать никаких действий. В противном случае такую запись нужно добавить в таблицу Baza-2.dbf (в этом случае число записей в Baza-2.dbf увеличится на 1).
_____________________________________________
В общем, накачал я книжек по Visual Basic, там почему-то только про визуальное программирование баз данных рассказано.
Какой командой открыть файл *.dbf, не рассказано.
Какой синтаксис использовать, чтобы сравнивать ячейки, тоже не могу найти. Даже поиском.
Как создать *.dbf с определенными полями определенного типа, как добавлять записи...
Если кто подскажет по синтаксису (в пределах сей задачи), буду благодарен, дальше я сам.
Черкните пару строчек кода с комментариями.
Спасибо!
Ответы
Всего ответов: 36
Номер ответа: 1
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #1
Добавлено: 27.07.09 02:06
Пары строчек маловато будет.
То, что тебе нужно делается парой sql запросов, ну ещё к базе нужно соединится.
Завтра скину, сплю уже.
Номер ответа: 2
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #2
Добавлено: 27.07.09 05:17
Пары постов маловато будет, решил Smith.
Номер ответа: 3
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #3
Добавлено: 27.07.09 07:49
Smith, кофе надо водой разбавлять)))
Номер ответа: 4
Автор ответа:
Дмитрий
Вопросов: 1
Ответов: 5
Профиль | | #4
Добавлено: 27.07.09 09:02
Smith
Спасибо, что откликнулся!
Жду!
Номер ответа: 5
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #5
Добавлено: 27.07.09 09:27
Привет, Дмитрий,
для работы с базами данных из VB6/VBA тебе нужно:
1. Определиться с технологией доступа к БД, которую ты будешь использовать:
1.1. ADO. Рекомендую тебе в данном случае.
1.2. DAO. Тоже сойдет, но DAO сейчас стали реже пользоваться.
1.3. ODBC. В VB6/VBA это работа с API-функциями, что довольно неудобно,
но есть преимущество - ODBC-драйвера есть почти к любым БД.
1.4. Другое. Есть другие технологии и различные библиотеки.
2. Определиться с версией драйвера базы данных. С расширением DBF есть
файлы нескольких различных форматов. Существуют по крайней мере форматы
 BF (dBASE II, dBASE III, dBASE IV), может и другие (я не знаю).
Соответственно у каждого формата свой драйвер (а может и не по одному).
Какой именно формат DBF у FoxPro 3.0 - мне неизвестно, ты должен выяснить.
3. Все что ты хочешь сделать - делается парой SQL-запросов. Если ты еще не
знаешь, что такое SQL, прочитай любое краткое описание этого языка
запросов, он несложный и просто необходимый для тех, кто работает с
любыми БД. Так, создание новой таблицы происходит при помощи SQL-запроса
 DDL), начинающегося ключевыми словами CREATE TABLE
Номер ответа: 6
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #6
Добавлено: 27.07.09 09:36
Создание структуры новой (пустой) таблицы Baza-2 будет выглядеть примерно так:
Точно размеры и тип полей ты не указал, поэтому поля приведены ориентировочно, надо подогнать точно по таблице Baza.
Номер ответа: 7
Автор ответа:
Дмитрий
Вопросов: 1
Ответов: 5
Профиль | | #7
Добавлено: 27.07.09 09:44
mc-black
Благодарю!
А если я выбрал ADO, как будет выглядеть код, который отвечает за открытие таблицы DBF ?
И каким синтаксисом нужно ссылаться на определенное поле определенной записи? (например, на поле Adres 115-строки)?
Номер ответа: 8
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #8
Добавлено: 27.07.09 10:01
Вижу что соскучались по мне.
ВБД я в кофе даже сахар не сыплю чтоб вкус не портить, сам пей разбавленный.
Номер ответа: 9
Автор ответа:
Дмитрий
Вопросов: 1
Ответов: 5
Профиль | | #9
Добавлено: 27.07.09 10:04
Smith
Соскучились. Особенно я.
Номер ответа: 10
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #10
Добавлено: 27.07.09 10:11
В вба 2003 офиса в верхнем меню есть Tools в нем самый первый пункт References.
Ищешь в списке микрософт активХ дата объект 2.8 либрэри и ставишь на нем галку.
Номер ответа: 11
Автор ответа:
Дмитрий
Вопросов: 1
Ответов: 5
Профиль | | #11
Добавлено: 27.07.09 10:17
Smith
Мы под офис будем прогу писать?
В чистом VBA, может, лучше?
Номер ответа: 12
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #12
Добавлено: 27.07.09 10:53
Может прежде чем писать проги разберемся со средой разработки?
ВБА - ВИЗУАЛ БЭЙСИК фор АПЛИКЕЙШН т.е. для офиса и т.п.
ВБ6 - ОДИН ИЗ ЯЗЫКОВ 6-ой ВИЗУАЛ СТУДИИ
выбирай
Номер ответа: 13
Автор ответа:
AndreyMp
ICQ: 237822510
Вопросов: 28
Ответов: 1182
Профиль | | #13
Добавлено: 27.07.09 11:08
Номер ответа: 14
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #14
Добавлено: 27.07.09 11:18
На VBA пишется прикладная вася, т.е. полноценный продукт ты не сделаешь.
ЗЫ: Smith Но полное отсутствие воды в кофе - тоже перебор.
Номер ответа: 15
Автор ответа:
AndreyMp
ICQ: 237822510
Вопросов: 28
Ответов: 1182
Профиль | | #15
Добавлено: 27.07.09 11:37