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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание БД препаратов с описанием состава 
:(
    Опции темы
Outdoor24
Дата 8.10.2009, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте.

Пытаюсь для работы создать базу данных по лекарственным препаратам с указанием действующих веществ. Проблема в том, что в одном препарате может быть несколько действующих веществ и название препарата может повторяться, меняется только дозировка или лекарственная форма. 
Подскажите пожалуйста как организовать и связать таблицы, а также как создать форму для их заполнения, в которой каждому наименованию препарата можно было бы ввести несколько действующих веществ без повтора наименования для каждого вещества. 
Заранее благодарю.
Наброски во вложении.

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  1.zip 8,55 Kb
PM MAIL   Вверх
Akina
Дата 8.10.2009, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



1) Таблица компонентов
2) Таблица дозировок
3) Таблица лекформ
4) Таблица наименований
И наконец таблица, которая собирает всё воедино.


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

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


Новичок



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

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



Спасибо за ответ.
Но пока не совсем понятно, в общей таблице, которая собирает все соедино должны быть все поля остальных таблиц? а какой тип связи? и как реализовать ввод нескольких компонентов под одно наименование без его дублирования (т.е., чтобы счетчик не присваивал новый номер одному и тому же препарату, если в нем несколько компонентов). А на основании чего делать форму? На основании обобщающей таблицы или на основании исходных таблиц?
PM MAIL   Вверх
bopoha
Дата 8.10.2009, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Outdoor24, Общая таблица должна содержать только коды из справочников. Форма должна основываться на основной таблице. А ввод данные будте организован через выпадающие списки, в которых должны отображаться справочники. Таким образом будут повторятся коды наименований, но не само наименования. Для каждой таблицы справочника стоит сделать форму, что бы можно было полонять справочник. Удаление из справочников слеудет ограничить и проверять нет ли ссылок на эту запись из основной таблицы.
PM MAIL WWW ICQ Skype GTalk   Вверх
Akina
Дата 8.10.2009, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Outdoor24, идите-ка вы вот сюда, и от начала и до конца, весь курс, с примерами, работами и вопросами...
А потом возвращайтесь, будем разговаривать на одном языке.


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

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


Новичок



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

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



спасибо. а что еще есть толкового почитать для начинающего, но только с более-менее сложными примерами?

Это сообщение отредактировал(а) Outdoor24 - 8.10.2009, 14:32
PM MAIL   Вверх
Akina
Дата 8.10.2009, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Outdoor24 @  8.10.2009,  15:31 Найти цитируемый пост)
что еще есть толкового почитать для начинающего

Встроенную справку. 
открыть Аксесс, но не открывать и не создавать БД. Нажать F1. Выбрать "Оглавление". И читать разделы по уровню своих знаний.


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

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


Эксперт
***


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

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



Outdoor24, Ищите книги:
Разработка настольных приложений на MS Access 2003
Разработка корпаративных приложений на MS Access 2003.
PM MAIL WWW ICQ Skype GTalk   Вверх
Outdoor24
Дата 11.10.2009, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте.
Создал таблицы, установил связи и создал форму. При попытке ввода данных в форму (названия АФИ) появляется сообщение "Невозможно обновить поле". Подскажите пожалуйста в чем причина?

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  ______.rar 16,84 Kb
PM MAIL   Вверх
Outdoor24
Дата 11.10.2009, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вложение в формате Access 2002-2003 дополнительно, если предыдущее не откроется.

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  1.rar 16,54 Kb
PM MAIL   Вверх
bopoha
Дата 11.10.2009, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Таблицу АФИ стоит убрать из запроса, и организовать ввод данных в таблицу Сведенья через поле со списком, используя для него в качестве источника данных таблиу АФИ. 
PM MAIL WWW ICQ Skype GTalk   Вверх
Outdoor24
Дата 12.10.2009, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(bopoha @  11.10.2009,  22:59 Найти цитируемый пост)
Таблицу АФИ стоит убрать из запроса, и организовать ввод данных в таблицу Сведенья через поле со списком, используя для него в качестве источника данных таблиу АФИ.  

А как тогда пополнять таблицу АФИ при внесении нового препарата?
PM MAIL   Вверх
Akina
Дата 12.10.2009, 08:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Outdoor24 @  12.10.2009,  09:34 Найти цитируемый пост)
как тогда пополнять таблицу АФИ при внесении нового препарата? 

У поля со списком есть событие NotInList (ОтсутствуетВСписке). Нужно обработать его - добавить введённое значение в таблицу, перечитать источник данных поля со списком и установить на свежевведённое значение. 
Или требовать ввода словарных данных до того, как начат ввод нового препарата.


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

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


Эксперт
***


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

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



Цитата(Akina @  12.10.2009,  08:43 Найти цитируемый пост)
перечитать источник данных поля со списком и установить на свежевведённое значение. 

Этого делать не нужно.

Вот пример, для добавления текста в справочник:
Код

Private Sub P_SAMPLE_NotInList(NewData As String, Response As Integer)
    If Trim(NewData) = "" Then
        Response = acDataErrDisplay '-- показать сообщение об ошибке. Если показывать свое сообщение, то необходимо использовать acDataErrContinue
        Exit Sub
    End If
    
    CurrentDb.Execute "INSERT INTO (...) VALUES ('" & Trim(NewData) & "')", dbFailOnError
    Response = acDataErrAdded '-- значение добавлено
End Sub

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


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


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

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



Тоже хорошо


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

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

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

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

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


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

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


 




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


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

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