LEADERSOFT.ru Разработка на заказ программ и сайтов
ЕСЛИ БАЗА ВАМ НУЖНА В ЛИДЕРСОФТ ЗАЙДИ СПЕРВА!
Список всех статей ... Подписка на новости (рассылка через subscribe.ru)




































Выпуск 22. Как составить договор на разработку базы данных ?

Подписка: "Access 2000 - программирование и готовые решения"
Дата:         23.12.2000
Сайт:         http://www.leadersoft.ru
Слоган:     Если база Вам нужна, в LeaderSoft зайди сперва.
Комментарий: 
      Мы разрабатываем по заказам клиентов различные программы, используя Microsoft Access. Базы данных разрабатываются "с нуля" или, используя готовые решения (Склад, Касса, Банк и т.п.), что позволяет достаточно гибко решать финансовые вопросы по оплате услуг за разработку. Для регистрации заказа заполните форму: Регистрация заказа на разработку


Введение.
    В этом выпуске рассказывается о том, как составить договор на разработку базы данных Microsoft Access, продолжаются уроки по Access, даются ответы на вопросы.

Новые версии бизнес программ
   "Склад и Реализация" 4.0 (1190 KB + Документация, Access 2000). Добавлены: • новые счет-фактура, книги продаж и покупок; • возможности ввода неограниченного числа цен на 1 позицию товара; • печать логотипов, подписей и печатей на счетах на предоплату; • улучшена авто-репликация филиалов; • базы данных по кассе, т.е. при установке создаются несколько баз данных по кассовым операциям, так что программу "Касса предприятия" покупать не надо.
   "Книги бухгалтерии" 4.0 (467 KB, Access 97 или Access 2000). Вышла новая версия данной программы. Добавлены новые книги продаж в соответствии с требованиями Правительства Российской федерации N914 от 2 декабря 2000 г. Дополнительное описание есть на сайте. Обязательно замените эти книги, а также форму счет - фактуры в программах по складу, т.к. требования в налоговых службах к работающим предприятиям резко возросли. Загрузить ...

Бесплатные коды для Access 2000:
    Добавлены новые программы в открытых кодах:
   • Файл la_graphics.zip. Пример 3. Графики и Формы в Access. Он предложен Малютиным Николаем. Внимательно изучите 3 раздела в примере, тогда Вам станет понятно, как делать графики и другие чудеса в базах данных.
   • Файл la_api.zip. 2. Системная информация о дисках. 3. Общая информация о Windows. 4. Управление текстовым буфером 5. Управление отображением окон.
   • Файл la_table1.zip 12. Атрибуты связей между таблицами.

Access 2000. Урок 4. Создание связанных таблиц
    После того, как Вы научились создавать таблицы в Access, надо научиться назначать различные связи между ними. Профессионально созданная база данных характеризуется не количеством отчетов или форм, а грамотным определением структуры таблиц и ее ключевых полей. Одного взгляда профи достаточно, чтобы узнать, кто проектировал базу данных, и как она будет работать в дальнейшем.
    Рассмотрим пример. У вас есть на предприятии накладные на отгрузку продукции. Вам поручили их обработку на компьютере. Рассматривая каждый документ по одиночке, Вы приходите к выводу, что у них есть постоянный заголовок и таблица с разными товарами. Начинающий специалист попытается побыстрее создать 1 таблицу с максимальным числом полей, завести в нее все данные и отчитаться о том, что он быстрее всех разработал базу данных. И это будет неправильно, т.к. в таблице постоянно будут повторяться данные, возникнут сложности с изменением реквизитов документа, да и объем базы данных будет слишком большой. Правильный выход - это создание 3х таблиц, в одной будут храниться заголовки документов, в другой - товары, а в третьей - постоянные заказчики Вашей продукции. А для того, чтобы обеспечить взаимодействие таблиц как единое целое, надо определить и связать их через первичные ключи[1].
    Какой же должен быть ключ в таблице? Принцип назначения ключа - он должен быть самым коротким и быстрым. Идеальный ключ в таблице - это одно числовое поле типа Long[2] с коротким именем до 8 символов. Кто-то сразу может возразить, что Byte[3] или Integer[4] лучше Long, т.к. они короче, а следовательно быстрее. На самом деле все гораздо сложнее. Windows 95, NT, 2000 - это 32 разрядные операционные системы, а следовательно все процессы оптимизированы для выполнения 32 разрядных операций (минимальный элемент в потоке данных). Перевод же, например, 16 разрядных элементов Integer в Long займет некоторое время, что скажется на скорости работы базы данных. Вроде бы мелочь, изменили лишь только свойство поля базы данных, но самом деле 50% времени на обработке таблиц Вы выиграете. И так, при правильном проектировании, вместо одного часа Ваша база должна открываться всего за 30 минут (шутка).
    Теперь поговорим о связях, которые существуют в таблицах. Известны следующие связи: один к одному (1-1)[5] и один ко многим (1-M)[6]. Все остальные - это лишь следствие их. В нашем примере можно связать таблицу заголовков и товаров по принципу 1-М, т.е заголовок должен быть один, а товаров в накладной много. Это правильно. Но если Вы назначите связь 1-1, то в таблицу товаров Вы сможете ввести только 1 позицию, что не совсем правильно, хотя и возможно на некоторых документах.
    У связанных таблиц можно изменять еще и атрибуты соединения, например, назначить каскадное обновление таблиц (очень важное свойство). В этом случае изменения в подчиненных таблицах будут производиться автоматически, например, изменили номер в главной таблице, то он сразу изменится во всех подчиненных таблицах.
   При проектировании сложных баз данных, например, по складу, зарплате или финансам связанных таблиц может оказаться очень много. Возможно Вам придется создавать/удалять соединения не только визуально, но и программно. О том, как определить атрибуты связанных таблиц смотрите в примере 12 файла: la_table1.mdb.
   Задание. После 4 уроков Вы должны уметь создавать таблицы и связи между ними (желательно на VBA). Для этого попробуйте изменить пример 12 так, чтобы из модуля можно было создать/удалить некоторую связь в базе данных. (смотрите CreateRelation[7] в Справке).
Словарь
   • [1] Первичный ключ - это одно или несколько полей в таблице, которые однозначно определяют запись. В конструкторе таблиц поля обозначены ключиком слева, в запросах они всегда выделены жирным цветом.
   • [2] Long (Длинное целое) - числовое поле базы данных, размер 4 байта (32 разряда)
   • [3] Byte (Байт) - свойство поля базы данных, занимает 1 байт (8 разрядов)
   • [4] Integer (Целое) - свойство поля базы данных, занимает 2 байта (16 разрядов)
   • [5] 1-1 (Один к одному) - каждой строке первой таблице соответствует не более одной строки второй таблицы.
   • [6] 1-М (Один ко многим) - каждой строке в первой таблице соответствует одна, ни одной или несколько строк во второй таблице.
   • [7] CreateRelation (Создать соединение между таблицами) - функция в библиотеке DAO 3.6, отвечающая за связи между таблицами.

Ответы на вопросы
     Вопросы Вы можете задавать по email: или опубликовать на сайте в разделе "Доска объявлений". На некоторые вопросы уже есть ответы, но на них будут ответы в следующей рассылке, т.к. рассылка ограничена размерами.
Вопрос от заказчика: Сейчас поставил на закачку новую версию программы "Склад и Реализация". Сначала закачать по ссылке не получилось, а с помощью ReGet все сразу пошло. Кстати программа очень понравилась, то что я долго искал. Вот только есть одна небольшая загвоздка: по нашему ассортименту не у всего товара есть артикулы. Можно как-нибудь этот момент исправить?
   Вообще "Артикул" и другие 3 поля - это своего уникальный ключ в таблице товаров. Используется он вместо поля типа "Счетчик". С одной стороны, в эти поля Вы можете занести информацию о товаре, а с другой стороны Вы избавлены от "Счетчика" с бессмысленным набором цифр. Технически переименования возможны, но нужно ли это делать. Например, в некоторых известных dBase программах используются названия: Fam, Im, Nstr или даже Sp354, Sp398 и сложно понять, что находится в этих полях. Вот варианты решения проблемы:
   • Вы можете заказать бесплатно изменить отчет(ы) , где вместо "Артикул" будет, например, фигурировать "Номенклатура" или вообще этого поля не будет. Вышлите описание отчетов по email.
   • Откройте в папке: "99 Филиал\..." эталон ШаблонБД.mdb. Добавьте в его таблицу "СКЛАД справочник" ваше новое поле, например, "Номенклатура". Далее в таблице "INI version" измените в поле "Версия" значение 4.0, например, на 4.001. Закройте все таблицы. Теперь при открытии или создании новых базы данных, всегда будет происходить репликация, т.е. в таблицу товаров автоматически будет добавляться поле "Номенклатура".
   • Можете вставить любой внешний отчет или форму смотрите файл: "..\Сборник\Мои программы\Склад и Реализация.mdb". Примеры настроек смотрите в основном файле "Склад и Реализация.mde" таблицы "АДМ элементы управления".
   • Если Вам удобнее работать с редактором Microsoft Word,  то можете бесплатно заказать отчеты, например, Прайс-Лист, Счет-Фактуру с построением в нем. В этом случае, программа не будет экспортировать отчеты из базы данных, потому что Access неправильно передает таблицы, а сама построит их в редакторе. Заголовки таблиц Вы сможете назначить сами.
Общий вопрос. Не могли бы Вы рассказать, как составить договор на разработку базы данных?
    Ответ. Если подробно остановиться на этом вопросе, то на другие можно и не отвечать. Места в рассылке не хватит. Позволю себе остановиться на некоторых тонкостях, которые могут встретиться Вам.
   Во первых, обдумайте коммерческие предложения прежде, чем принимать решение о разработке базы данных. Вот несколько сомнительных предложений: • участие в тендере; • перевод базы из Fox Pro (защищена неизвестным паролем) в Access, • разработка несложной формы, оплата - наличными, но позже. Думайте головой, когда участвуете в таких работах. Если оплата за труд назначается после работы, то лучше заручиться гарантийным письмом или передайте сначала только mde файл.
   Во вторых, серьезно продумывайте текст договора. Например,
   1. Точно указывайте в названии договора имя базы данных. Например, у меня был случай, когда форма базы данных разрабатывалась для Access 2000, а заказчику она нужна была в формате Access 97. Пришлось вносить изменения в код программы, т.к. просто сохранить ее не удалось из-за некоторых различий баз данных.
   2. При работе с не русскими базами данных указывайте текст комментариев в VBA. Используя транслит вместо английского, можно сэкономить время на разработке.
   4. При работе с отраслевыми программами обязательно уточните, кто отвечает за методику расчета. Если заказчик, то меньше времени уйдет на подготовку к работе.
   5. При работе с dBase файлами уточните взаимодействие баз данных. Экспорт/импорт данных обеспечить можно, а одновременную работу в сети нет.
   6. При работе с x-бухгалтерией уточните язык программирования. Намного лучше в качестве основного языка использовать VBA, чем встроенный в бухгалтерскую программу.
   8. Вставляйте в договор пункты, которые защищают не только Ваши, но и интересы Заказчика. Например, укажите:
  • что Заказчик имеет право проверять ход и качество выполнения работ;
  • что доработки, связанные с отступлениями от технического задания, ошибками в расчетах и т. п. производятся Исполнителем за свой счет;
  • что Исполнитель вправе под свою ответственность вносить изменения в решение, как частных, так и узловых технических вопросов, в методику и содержание работы;
  • что можно приостановить ход выполнения работы из-за неучтенных проблем, связанных со сложностью, важностью, новизной или другим научно-техническим риском работы;
  • что Стороны признают юридическую силу текстов документов, полученных по электронной почте...
    Вообще все рассказать невозможно. Могу выслать примерные документы на разработку базы данных, а именно,  договор (4 страницы), техническое задание и календарный план. Для этого достаточно иметь какую-нибудь информацию, например, решите один или несколько вопросов из подписки в файле mdb.
Вопрос 110 (30.11.2000). Помогите, пожалуйста, необходимо получить информацию о системе в целом. В частности количество жестких дисков, их объем, если можно серийные номера, объем ОЗУ, тип видеокарты, процессор.
   Ответ. Пример по системной информации о дисках, а также их серийные номера приведен в файле la_api.mdb. Информацию можно использовать для защиты mde-программы. О том, как записать в реестр данные приведу позже.
Вопрос 150(05.01.2000) Обнаружил в Интернете Вашу программу "Книги бухгалтерии". После разархивирования инсталлировал программу успешно, но когда  решил посмотреть "в живую", после загрузки "Access" выскочила табличка с надписью: "Нераспознаваемый формат базы данных: 'С:\!Лидер\Книги бухгалтерии.mde'. Войдя в папку !Лидер обнаружил, что файлов .mde в ней нет. Повторная инсталляция ничего нового не дала. У меня стоит Windows 98 и Office 97. Может быть, Ваша программа работает только при наличии Office 2000? Будьте любезны и подскажите, в чём моя ошибка, почему не работает Ваша программа.
   Ответ. Программа "Книги бухгалтерии" вышла в новой редакции 4.0. Теперь Вы можете устанавливать ее для Access 97 или Access 2000. И так, если у Вас правильно установлена база данных Microsoft Access, то таких сообщений у Вас не должно быть.
Вопрос 152(05.01.2000) Подскажите пожалуйста, как скрыть окно Асс2000, использовании Api ("ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long) не работает, какой-нибудь другой способ. Спасибо!
   Ответ. Малютин Николай г.Якутск
Во-первых непонятно, почему не работает эта функция, но можно воспользоваться любой из функций, описанных ниже, вот только - зачем, окно Access позволяет использовать строку меню и панели инструментов, в том числе и только собственные для каждой формы. А так эта возможность утрачивается
Public Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
примеры вызова:
ShowWindow Application.hWndAccessApp, False
SetWindowPos Application.hWndAccessApp, 1, 0, 0, 0, 0, &H80
MoveWindow Application.hWndAccessApp, -50, -50, 0, 0, 1
Надо только не забывать устанавливать свойства формы "Всплывающее"-"Модальное" в True
У каждой свои недостатки MoveWindow и SetWindowPos - если не предпринять дополнительных действий, то разными манипуляциями можно восстановить окно Access, а при ShowWindow можно "потерять" форму.
Неплохой справочник по API на русском с примерами можно взять на http://rusproject.newmail.ru
Виктор Конюков. Большое спасибо за отличный ответ.
Вопрос 153(05.01.2000) Zdravstvuite. Vse Vi umejete pisatj interesnije veschi. Poetomu tem kto ne znajet soobschaju o sledujuschej vozmozhnosti. Jesli Vi moshete pisatj interesno takzhe na anglijskom, libo mozhete perevesti na anglijskij napisannoje Vami (sami, ili s chjej-nibudj pomoschju), to predlagaju Vam zarabotatj normaljnije denjgi, sozdav svoju rassilku na www.listpower.com. Eto server napodobije subscribe.ru, no pishut tam dlja sravniteljno bogatih amerikancev, sootvetstvenno, i zaravbotatj tam mozhno boljshe, chem na subscribe.ru. Spasibo za vinmanije.
   Ответ. Согласен с Вами, что надо перевести некоторую информацию на английский, т.к. дополнительные контакты с заграницей не помешают. Нет проблем и с оплатой. Но мне не понятен принцип работы сайта, не нашел ни архивов и каталога подписки. Поэтому обращаюсь к тем спецам, кто располагает большей информацией о сервисе сайта и работал с ним. Заранее благодарю за ответ.
Вопрос 154(05.01.2000) У меня возник такой вопрос. Стоит Access 2000, help по вопросам, связанным с самой Access на русском, а вот по Visual Basic на английском. В Access 97 вся помощь на русском, можно ли не устанавливая на машину Access 97, как то подцепить файл справки.
   Ответ. Напишите маленькую программу на Access для подключения разных справочных файлов. Подробно как открыть дополнительный файл справки написано в Лекциях по Access.
Вопрос 155(05.01.2000) При отсылке на печать отчетов (Windows-98, Access-2000, принтер НР DJ1100) постоянно происходит сбой форматирования страницы. То ориентация, то поля, то все сразу. Программой по сети пользуются несколько человек. Приходится каждый раз заходить в "Параметры страницы" и набирать заново. Отчеты сделаны впритык по листу бумаги, поэтому любой сбой вылезает в печать второго листа с кусочками. Программно страница не задается (как у вас в примерах отчетов). Программы для платежек в банк и для выписки счетов (самодельные).
   Ответ. Для того, чтобы понять причину Вашей проблемы, надо взять инструкцию по программированию ( не перепутайте с инструкцией для пользователя  ) лазерного принтера. Так вот, там Вы прочтете, что изображение формируется на валике принтера с отступом в несколько мм. Отсюда следует, что для того, чтобы Access правильно сформатировал отчет, надо заранее задать в конструкторе для него границы. Я, например, применяю отступ в 7 мм от края листа, и это помогает для большинства лазерных и струйных принтеров.
Вопрос 157(05.01.2000) Полностью ли совместимы базы данных Access 2.0 c Access 2000. Не могу открыть базу данных написанною в Access 2.0 в Access 2000.
   Ответ. Базы данных не совместимы. Надо конвертировать Access 2.0 в Access 97, потом в Access 2000. Если нужны лишь только данные, то возможно подключение к разным базам через ODBC драйвер.
Вопрос 158(05.01.2000) Какое максимальное количество пользователей может иметь доступ к БД одновременно через ODBS (если можно и для Access 97 и для Access 2000)?
   Ответ. Для Access 2000 - это 50 пользователей, поэтому если кто-то обещает Вам программу на Access для одновременной работы 100 пользователей, то это значит, что он не разбирается не только в базах данных, но и в операционной системе. Для Access 97 - это число примерно в два раза меньше, но точно сказать не могу.
   Игорь Макеев. Это несколько некорректный ответ. Справка Access декларирует до 255 одновременных подключений (97 и 2000), другой вопрос, сможет ли он их обеспечить.
Вопрос 159(05.01.2000) Можно ли в Access создавать хранимые процедуры и передавать в них параметры из внешних программ, например, написанных на C или VB?
   Ответ. Для простоты будем считать, что компилятор С++ создает только exe файл, а Access - mde файл, в котором и сохраняются наши функции.
   1 вариант.  Запущен exe файл, надо вызвать VBA программу. Файлы базы данных имеют другую структуру, чем ту, которую имеют "родные" файлы операционной системы и следовательно  "в лоб" вызвать функцию не получиться. А вот, если Вы попробуете найти в MsAccess.exe функцию, которая отвечает за загрузку VBA функции в операционную систему, то это вполне реально, но очень сложно и составляет служебную информацию с грифом "Совершенно секретно" компании Microsoft (шутка).
   2 вариант. Запущен mde файл, надо вызвать программу из exe или dll файла. Здесь проблем больших нет, смотрите вызов api функций. Сложности возникают, когда Вы планируете создать серьезную базу данных. Вам потребуются дополнительные знания языка С++, т.к. только он дает наиболее короткий и быстрый код. Некоторые сложности возникают при передаче форм или других управляющих элементов, но все это в принципе разрешимо. Работа очень сложная, но зато Ваша база данных будет работать с космической скоростью, чем та, которая полностью разработана в mdb файле.
Вопрос 160(05.01.2000) Где можно скачать дополнительные русифицированые файлы справки по программированию в Access 2.0, 97, 2000; VBA?
   Ответ. Не знаю о каких дополнительных файлах идет речь. Все новые версии VBA будут поставляться Microsoft в оригинале, т.е. на английском языке. Встроенные справки на русском языке по Access 2.0 и 97 можно получить при установке этих версий.
Вопрос 161(05.01.2000) Нашей организации приходится заключать много договоров. Конечно, при этом желательно, чтобы эти договора имели эстетичный вид. Но я не знаю, как этого добиться в Access. Например, в Word есть такое понятие “выравнивание по ширине”, а в Access – нет ничего подобного. Пыталась выйти из данной ситуации разными способами, например, вводила частично текст договора в Word, затем вставляла эти фрагменты в отчет Access (договор сформирован в виде отчета), но этот способ имеет много недостатков. Пробовала проводить слияние с текстовым документом Word, но из-за того, что отчет формируется по запросу с параметрами (видимо, из-за этого) ничего не получилось – программа просто зависает.
   Ответ. В Access есть функция выравнивания по ширине, но на панелях инструментов для нее не хватило места или ее забыли вставить. Ее можно установить, если Вы для элемента с текстом вызовете его свойства и элементу "Выравнивание текста ... "  установите значение "Подбор". К сожалению перенос слов в этом случае не работает. P.S. Лучше, конечно, договор построить в Word, а текст хранить в базе данных.
Вопрос 163(09.01.2000) Не могли бы Вы рассказать, как Вы делаете круглые или овальные формы. Если Вас это не затруднит, то напишите, как такое чудо сделать.
  Ответ. Внимательно изучите коды на сайте, и я думаю Вы догадаетесь. Необычные формы в программах - это своего рода торговая марка программ сборника "Лидер Access", чтобы пользователи отличали профессиональную программу от интерфейса других баз данных. Исходя из вышеизложенного, можно сказать, что профессионал по Access сможет разработать такую форму. Для всех других предлагается недорого приобрести таймер в открытых кодах. Тогда Вам станет понятно также, как сделать форму "Объемной".  Более сложный код, с недокументированными функциями Access, продается организациям - это "Книги бухгалтерии". Его можно использовать как кирпичик для создания разнообразных баз данных, например, для заказных работ при смене учета в организациях с Excel на Access.
Вопрос 165(09.01.2000) Проблема: Установил Win2000  пока без Office2000 , и программы Access 97 не работают. Все вроде нормально, но некоторые формы, отчеты не открываются даже в режиме конструктора. WIN2000 выдает сообщение: Память не может быть Read, и Ассess закрывается. Некоторые программы удалось вылечить, скопировав глючные формы из архива. Но некоторые не лечатся. Что можно предпринять?
   Ответ. Если программы начинают "чудить", то и решать их надо по другому. Что такое ошибка? Она всегда женского рода. А что для женщины самое главное - это не только трезвый муж, но и хороший новый дом. Вот с этого и надо начинать. Во первых, создайте новую базу данных. Во вторых, установите в ней нужные ссылки. В третьих, импортируйте все объекты из старого проекта. В четвертых, откомпилируйте все программы. Если есть ошибки, то они сразу "вылезут" наружу покрасоваться, а те, которым больше нравиться старый проект, останутся жить в нем. Вообще этот метод надо применять всегда при переходе на новые версии Windows или Access. Очень часто помогает, так как сжатие базы данных, даже с флажком компрессии не удаляет некоторые ненужные и невидимые куски редактирования mdb файла.
Вопрос 162(09.01.2000) Есть вопрос. Как программно добраться до буфера обмена Windows. В VB Clipboard.Gettext и т. д. В Accese (2000) не работает.
  Смотрите: la_api.mdb пример 3.
Вопрос 167(09.01.2000) При запуске Вашей программы "Лидер" в Access появляется сообщение "нераспознаваемый формат базы данных". Сообщите, пожалуйста, как поступить дальше.
   Ответ. a) Скачайте новую версию программы "Книги бухгалтерии", версия 4.0. Эта версия поддерживает и Access 97 и Access 2000. Минимальные требования к программному обеспечению - это Windows 98 (или 2000) + Office 97 (или 2000) + Access. b) Для всех программ в открытых кодах mdb необходимо наличие Office 2000+Access.
Вопрос 168(09.01.2000) У меня такая проблема - параметры страницы в отчетах не сохраняются. Как можно из VB выставить поля страницы? Встречались ли Вы с такой проблемой в 2000-м Access? Буду признателен за любой ответ.
    Ответ. Да, в Access 2000 есть такая ошибка. Подробно о ней писалось в рассылке 8, смотрите номер 7(отмечена красным цветом). Для того, чтобы исправить ее, надо приобрести пакет обновления SR1 или в группе: Параметры ... -> Общие -> Автозамена имен снять флажки со всех элементов.
Вопрос 170(09.01.2000) Начался 2001г. Я скопировал свой mdb файл в новую папку и решил удалить данные в таблицах, чтобы в Новом году все было новое. Но не тут то было: выдается сообщение: "Невозможно удалить данные в связи с тем, что они имеют
связи с другими таблицами" - или что-то в этом роде. Теплые воспоминания остались от dbase - там кажется была команда "Скопировать структуру". Как быть в случае Access-2 - неужто разрушать все связи, удалять записи, а потом восстанавливать связи? Наверное я что-то не знаю. Все должно быть гораздо проще. В толстых книжках и во встроенной справке я ответа не нашел.
  Ответ. Проблему можно решить следующим образом. Сначала найдите подчиненные таблицы и удалите записи там. Далее удалите записи в вышестоящих таблицах. P.S. Все это лучше сделать программным способом. Пример 12 для определения связей в таблицах дан в файле: la_table1.mdb
Вопрос 171(09.01.2000) Недавно стал изучать Access и основательно застрял. Подскажите, пожалуйста, как осуществить выборку для последующего апгрейда N-го кол-ва записей из таблицы. N задается пользователем в процессе работы.
   Обновление записей лучше делать из модуля VBA. Пример отбора N записей (введены пользователем в поле N формы myForm) из таблицы указан ниже для DAO (т.е. Access 97 и 2000): Set rst = dbs.OpenRecordset("SELECT TOP " & Forms("myForm")!n & " myTable.*, * FROM myTable ORDER BY myTable.Имя;")
Вопрос 172(09.01.2000) Интересуюсь сетевой складской программой, способной работать с отрицательными остатками, имеющей оборотную ведомость, и желательно распечатывающей счета-фактуры.
   Ответ. Да программа по складу работает с отрицательными остатками. Это происходит тогда, когда продукция отгружается сразу, минуя склад. Единственно, что надо учесть, чтобы правильно соблюдать итоговые отчеты по отгрузке, надо в начале месяца "подбивать" остатки предыдущего периода. В этом случае не будет отрицательного сальдо в оборотной ведомости, и возможно правильно рассчитать себестоимость.
   Естественно программа печатает счет-фактуру и накладные за одно нажатие кнопки. Число документов и их тип настраивается пользователем.
Вопрос 173(09.01.2000) Какие курсы по Access Вы можете посоветовать?
   Ответ. Получить профессиональное образование на курсах невозможно. Я прошел курсы по Windows NT в популярном учреждении. Не буду называть его, чтобы не обижать сотрудников. Но так механизм работы курсов везде одинаков, имеет смысл рассказать о некоторых странностях обучения. Во первых, Вы подписываете бумагу, где есть пункт, что Вы не будете отвлекать преподавателя вопросами не по теме. Далее на первом занятии выясняется, что тема курсов опирается на какой - нибудь учебник. Вам будет рекомендовано купить 2-3 книги. Группы формируются не по уровню знаний, а совершенно из разных людей. Например, наиболее вероятно, что у Вас будет несколько человек, присланных из Фонда занятости на переподготовку с "нулевыми" знаниями. Так что, решить серьезные вопросы по базам данных Вам не удастся. Кроме этого надо понимать, что преподаватель получает зарплату за часы, а не за уровень Ваших знаний.
    Вообще "Базы данных", это не тот предмет который изучают на курсах. Оптимальная форма учебы - это индивидуальные занятия, например, как при изучении английского языка с репетитором. И так, если у Вас нет никаких знаний, то общие понятия на курсах Вы получите, но базу данных Вам не спроектировать. Если же Вам нужны серьезные знания, "без воды", то лучше заключить договор с профессионалом на разработку любой программы на 1-2 месяца. Затраты те же, но смело к ним можете добавить не только знания по базам данных, но и знакомство с профи и плюс решение проблемы предприятия.
   Дополнительно могу сказать, что при создании баз данных разработчики часто используют знания и других языков программирования. Например, я бы посоветовал бы серьезно изучить С++. Меня эти знания часто выручают в сложных ситуациях программирования. Бывает, что хороших примеров на VBA или VB нет, то на С++ их можно найти. Дополнительно становиться понятным применение таких вещей, как препроцессор (#if, #else), использование указателей на строки (с \0) в api интерфейсе и т.д.
Вакансии. На сайте открыт новый раздел Job для поиска работы программистом баз данных Access за границей. 
  Ссылка настроена на сайт:www.computerjobs.ru. Ежедневно появляются новые вакансии. Контракты разные от 1 месяца и выше. Требуются специалисты по базам данных Access 2.0, 97, 2000 и SQL Server. Направление работ различное, например, разработка, конвертация в другие базы, консультации и т.п. Вы можете оставить свое резюме. Зарплата у них считается по часам. Приблизительно от 4000$ - 10000$ в месяц. Медицинская страховка, обучение детей, премии, виза - это также возможно.