Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: столбец подстановки
 
 автор: Gu2N   (16.02.2010 в 23:32)   личное сообщение
 
 

Помогите новичку разобраться
Есть таблица (Дети) поле (возраст) в это поле нужен Столбец подстановки - поле со списком из другой табицы (Дети по возрасту) .При подстановке нужно чтоб во второй изменилось значение поля для подсчёта итогов .Мастер делает строку - нада столбец , Через третью(Строка возраста) подставляет но значение во 2-ой не могу изменить. Как связать ?

  Ответить  
 
 автор: kot_k_k   (17.02.2010 в 08:53)   личное сообщение
 
 

извини, читал 3 раза ни фига не понял.


Мастер делает строку - нада столбец


Мастер подстановки в таблах делает ТОЛЬКО столбец.
если ты в конструкторе то это название столбца и его сво-ва - а не строка!!!!!!!

  Ответить  
 
 автор: Gu2N   (18.02.2010 в 00:20)   личное сообщение
 
 

ни фига не понял - Я тоже

1. Нужна форма ввода (Дети) в ней ФИО,Возраст Диагноз и тд.
2. Делаю главн.таб. (Дети) (уйдёт в форму) в ней поля ФИО,Возраст, Диагнози тд. и поля с разбивкой по возр.[(0-3),(4-7)] - дальше диагн. 20 полей и тд. табла выходит километровая . Чтоб такой бяки не было, делаю Таб. (Дети по возрасту) (Диагноз) и тд. Вяжу 1-1.
3. Самое интересное: В связных таблах нужны итоги(сумма) по столбцам для отчета.
В таб.(Дети) в поле (Возраст) нужен столбец подстановки (по возрасту) [(0-3),(3-7)] из полей Таб. (Дети по возрасту) Мастер ,гад , их не видит или делает пустой лентой(головы пока не занесены) а нужно:
0-3
4-7
8-11
и было подставлено где нужно в табле значение (1) или (Да) для итогов.
Делаю таб. (Строка возраста) поле (возраст) заполняю строки, тыкаю Мастера носом в эту таблу - вышло по моему в столбце но как заставить что-б подставлялось где надо значение (1) в таблицу ???

Если можно, по шагам ,( ИД, запрос, макрос) я пока ещё темный в этом .

  Ответить  
 
 автор: kot_k_k   (18.02.2010 в 00:40)   личное сообщение
 
 

стоять буян!!
1. структура БД - как один из вариантов.

табла Пациенты - Код_ФИО, ФИО, возраст, адрес
табла Диагноз - Код Диагноза, Диагноз
табла У_кого_шо_Болит - Код_болезни, Код_ФИО, Код_Диагноз
табла Лекарства Код_Лекарства, Название
табла Назначения Код_Назначения, Код_Болезни, Код_Лекарства, Кол-во, Периодичность
и .т.д.

2. В таблах не хранятся итоговые, промежуточные значения - они вычисляются в формах/отчетах для промежутков времени либо по другому алгоритму.

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

  Ответить  
 
 автор: Gu2N   (18.02.2010 в 18:15)   личное сообщение
 
 

Стою!!!

У-ууу , одни коды - таблицы (у меня ещё пенсионеры & все остальные водятся) - заблудюсь.

А если У_кого_шо_и _чем в одну таблу - в столбец подставы - фиксированные.
И всё это добро оттянуть запросом и в отчет - прокатит???

  Ответить  
 
 автор: Explorer   (18.02.2010 в 19:48)   личное сообщение
 
 


И всё это добро оттянуть запросом и в отчет - прокатит???



для вас не было бы слишком сложным изъясняться понятнее?

  Ответить  
 
 автор: kot_k_k   (18.02.2010 в 21:30)   личное сообщение
 
 

если всё загонишь в одн табу точно заблудишся, подробно:
табла Пациенты - хранит данные о больных ВСЕХ, песнион, дети, голубые ...
если нужно разграничение - Табла Группа_Пациетов с Названием_Группы и в Таблу ФИО доп столбец Код_Группы - очень просто отфильтровываются нужне групы, Пол пац просто логическое поле.

табла Диагноз - перечень диагнозов (бронхит, трахеит, перелом)
табла У_кого_шо_Болит - ФИО + его Диагноз, если Диагнозов много - несколько строк
табла Лекарства Код_Лекарства, Название - без комментов
табла Назначения - каждое лекарство назначается По конкретному диагнозу, конкретному пациенту + от нее строится табла с фактом Принятия пациентом лекарств, процедур.

если объеденим Шо_Болит и Чем лечим - получим на один диагноз несколько (разное кол-во) лекарств, т.е. нужно неизвестое кол-во столбцов - а это не реально и в корне не правильно.
можно, как развитие, создать таблу Диагноз_Чем_Лечим - связь диагноз и группы лекарств/процедур - которую просто будем копировать нужному пациенту олегчая труд, и ускоряя его, при этом можно создавать разные варианты лечения одного и тогоже диагноза, добавив поле идентификации метода лечения.

и естествено Табла - Дата_Поступления, Дата_Выписки, ФИО, Диагноз, Врач для ведения истории по пациентам, врачам и проч.

Про диагноз - зачастую народ лежит с букетом болячек - можно использовать одно поле диагноз, но оно содержит последовательность кодов диагнозов, а при визуализации - разворачиваем в столбец на основании кодов (1253, 2135, 5873 - насморк, понос, геморой).


для понимания построения БД посмотри примеры Борей, Решения и проч.

п.с. давай конкретно что не понимаешь, хоть по шагово - если будешь спрашивать в общем - получишь обие ответы, конкретика.

  Ответить  
 
 автор: Kill "Access.exe"   (19.02.2010 в 17:49)   личное сообщение
 
 


табла Диагноз - перечень диагнозов (бронхит, трахеит, перелом)


Не нужна вообще. Диагнозов может быть масса. Составить полный справочник - большая и никому не нужная работа Просто текстовое поле в таблице пациентов в которое вписывается диагноз


табла Лекарства Код_Лекарства, Название - без комментов


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


табла Назначения



Код пациента код лекарства Коментарии


табла Пациенты


Код
ФИО
Дата рождения
пол
Симптомы
Диагноз
Дата

  Ответить  
 
 автор: kot_k_k   (19.02.2010 в 19:30)   личное сообщение
 
 

да диагнозов масса, но работая в хирургом не встеришь гриппа, есть типичные диагнозы с типичным методом лечения и процедур, так что все-таки есть смысл - перелом шейки бедра он всегда перелом шейки бедра, может разной тяжести но облегчить работу таким способом можно и ГЛАВОЕ что это дает - можно получить статистику!!! а если буду лапками писать названия диагнозов статистики пипец.

С классификацией прав но по другому Вид дйствия" Жаропонижающие, Обезболевающие и т.п. + группа "Фармакологическая группа", + "Вид упаковки" таблетки, мази , спреи

А от чего какое лекарство это еще одна табла.

я ему, по большому счету, разъяснял принцып построения структуры БД, т.к. он все в одну таблу валит.

  Ответить  
 
 автор: Gu2N   (19.02.2010 в 20:03)   личное сообщение
 
 

Ох , робяты , куда-то Вас не туда понесло .

Что Вы предлагаете - классика жанра(АРМ врача), это когда в столбец можно добавлять какие-то значения в поцессе работы с базой, и выходит типа справочника. Правильно?
В конкретном случае, у Меня, вымогают статистику по категориям за период и ВСЁ.
И работаю не врачем а в социальной сфере.
По сему , я думаю, можно обойтись фиксированным значением в столбце ( ИЗМЕНЕНИЙ НЕ БУДЕТ в дальнейшем) а это значит что можно отказатся от кучи обвесов (пардон - таблиц обслуживающих столбец подстановки) что для новичка важно. А категорий не так и много да и не пересекаются меж собой. Можно и одну таблу уложить. Как увязать таблицы дети, пенсионеры и тд. это другой вопрос и решаеться на месте , будем думать в ту сторону после а пока структура базы в Моем чайнике нарисовалась, разберемси.
Я не силён в возможностях и тонкостях работы запросов (пока), хватит ли ему этой одной таблы для работы? Дети имеют свойство расти , как организовать в таблице перевод их в категориях возраста автоматом или за отчетный период а переростков долой с базы. Нужно нет что-то предусмотреть в табле или это работа запроса (макроса), которую можно прикрутить к ней позже ?

  Ответить  
 
 автор: ShadowOfSun   (19.02.2010 в 21:10)   личное сообщение
 
 

по поводу детей
Заведи столбец год рождения
Сделай запрос с условием год рождения < текущего года на (10 лет?????)
И всегда будут дети

  Ответить  
 
 автор: Гоблин   (19.02.2010 в 22:36)   личное сообщение
 
 

Что Вы предлагаете - классика жанра(АРМ врача),

Да АРМ и есть база. Любая база делается так.

В конкретном случае, у Меня, вымогают статистику по категориям за период и ВСЁ.
Да любую статистику дает сама база. Ее только вести надо в течение определенного времени (год, лет) а потом только указать даты с-по и что хочу. (Сводная табла самое простое и эффективное средство) Мышкой таскаешь что куда, фильтры указываешь сам и смотри сколько чего за какой период. Или даже сколько чего в чем и сколько того чего в чем-то чего-то. Надеюсь ясно выразился.

А категорий не так и много да и не пересекаются меж собой. Можно и одну таблу уложить. Как увязать таблицы дети, пенсионеры и тд. это другой вопрос

Да это самый главный вопрос структуры базы. Если в ней будет ошибка - хана всему. Может в запросе получиться так, что детей пенсионного возраста будет больше чем людей.

Дети имеют свойство расти , как организовать в таблице перевод их в категориях возраста автоматом или за отчетный период а переростков долой с базы.

Самое простое через if с вычислением возраста. Ну типа с 1 до 7 - дети. с 8 - 16 полудети 17 - 21 полные дети 22-70 взрослые 70-90 почти дети и 90-.... уже дети
не надо макросов. Все и так ясно. В запросе указать кого хочу и все. (логикой типа Да с формы)

Ну еще высший пилотаж - мультиселектом.

  Ответить  
 
 автор: snipe   (19.02.2010 в 23:40)   личное сообщение
 
 

Гоблин
+1 - дети имеют свойство расти

посему нужно дату рождения и от нее танцевать

  Ответить  
 
 автор: kot_k_k   (19.02.2010 в 23:37)   личное сообщение
 
 


ИЗМЕНЕНИЙ НЕ БУДЕТ в дальнейшем


извини - но я смеялся
ага сщаззз, как минимум раз в пол-года, радостно какая-нибудь беспокойная головушка внесет "свои умные изменения", особенно в соц (ГОС) сфере.

  Ответить  
 
 автор: Gu2N   (20.02.2010 в 09:19)   личное сообщение
 
 

Да-а , вот теперь я понимаю, почему у коммуняков в буденовке дырка была, мне в кепке пора свою вертеть .

Благодарю за дельные советы , особенно за последний,наши это точно свинью подложат.
Ухожу в ofline творить таблы .
С Празником Всех

P.S. Служил в ГДР , Weimar, есть что вспомнить.

  Ответить  
 
 автор: Gu2N   (30.03.2010 в 21:20)   личное сообщение
 
 

Похоже опять со столбцом подстановки затупил

таблица Клиенты(ИД к) ,таблица Дети(ИД д)(ИД к), связь один ко многим.
Форма [Сведения о Клиентах] создана на основе запроса [Дополнительные сведения о Клиентах ]
на вкладке (Сведения о семье ) подчиненная форма ( сведения о детях) , источник записей запрос

[Дети сводка ]- (SELECT [Дополнительные сведения о детях].[ИД д], [Дополнительные сведения о детях].[ИД к], [Дополнительные сведения о детях].Дети, [Категория ] & " " & [Категория1] AS [Категории детей], [Дополнительные сведения о детях].[Год рождения_д], [Дополнительные сведения о детях].Пол FROM [Дополнительные сведения о детях];)

При помощи макроса с условием отбора ="[Дети]![ИД д]=" & Nz([ИД д];0) открывается Форма [Сведения о детях] создана на основе запроса
[Дополнительные сведения о детях ] - (SELECT Дети.*, IIf(IsNull([Фамилия_д]),IIf(IsNull([Имя_д]),[Имя_д]),IIf(IsNull([Имя_д]),[Фамилия_д],[Фамилия_д] & " " & [Имя_д])) AS Дети, IIf(IsNull([Фамилия]),IIf(IsNull([Имя]),[Имя]),IIf(IsNull([Имя]),[Фамилия],[Фамилия] & " " & [Имя])) AS Родители, [Дети].[Категория ] & " " & [Категория1] AS [Категории детей]
FROM Клиенты RIGHT JOIN Дети ON Клиенты.[ИД к] = Дети.[ИД к];)

При вводе вручную в таблицы данных в формах отображается всё как надо,(у каждого свои)
При вводе новой записи детей клиента с помощью формы[Сведения о детях] Access не может найти связных записей с ИД к ,ругается на - необходимо ввести значение в поле" Дети. ИД к"
Что и где я натворил не так ? И как правильно добавить & удалить запись в подчиненной форме?
Клиентов будет МНОГО , вводить в форму поле со списком клиентов чтоб ввести значение будет сложно.

  Ответить  
 
 автор: kot_k_k   (31.03.2010 в 08:45)   личное сообщение
 
 

пример - в студию, не воспринимается хоть убей

  Ответить  
 
 автор: Gu2N   (01.04.2010 в 22:27)   личное сообщение
98 Кб.
 
 

  Ответить  
 
 автор: АлаяЗаря   (02.04.2010 в 08:14)   личное сообщение
 
 

читал топик аж зачитался... даже на работу опаздываю =) а можно еще и в формате 2003 сохранить БД?

  Ответить  
 
 автор: kot_k_k   (02.04.2010 в 09:32)   личное сообщение
 
 

девствительно - 2007 - это не красиво по отношению к окружающей общественности.

апрель, весна, коты .бутся и вдруг на тебе 2007-й акс - всё настроение испортил

  Ответить  
 
 автор: kot_k_k   (02.04.2010 в 09:50)   личное сообщение
 
 

У тебя при вводе отсутсвует Клиент!!! - я так понял это родитель ребенка
вот по этому он и орет как не нормальный, я б на его месте тожеб орал только от одних названий таблиц и полей. - поставил на форму поле Ид к (ааааааааа) все получилось - хотя вопрос если ребенок СИРОТА откуда РОДИТЕЛЬ /который у тебя по связям - обязателен/ ил подразумевается опекун/попечитель и проч.

- и че это за пол Мальчик/Девочка

- зачем лишний гемор - категория детей 1-3, 6-15 если для этого есть год рождения!!!!!!

п.с. как я ненавижу 2007-й акс. - все равно, что установить на тачку мотор вверх ногами, под уголом 45град к оси движения и орать осуперкаре.

  Ответить  
 
 автор: kot_k_k   (02.04.2010 в 09:58)   личное сообщение
 
 

убери к (на, в) маски из ФИО это бред
1. фамилия Иванов-Заде не вводится!!!!
2. нажав мышей на поле курсор попадает не в начало поля а кудато посередине - начинает ругаться о несоответсвии маски если не переставишь на начало.
3. сохраняет ФИО с пробелами - жуть.

еще по категории 1-3 года
1. это у тебя вводится руками - реально можешь получить в каетгории 16-80 лет пациента 2010 годо рождения и наоборот - это как юзер лапками ввседет.

2. представь каждый год, НЕТ КАЖДЫЙ ДЕНЬ!!!!!, каетгорию нужно просматривать и редактировать т.к. стукнет пацану 4-года и все пипец.

удаляй ее на... ( в..., к..... ) нужное подчеркнуть

  Ответить  
 
 автор: Gu2N   (03.04.2010 в 00:01)   личное сообщение
 
 

Это бета версия да и ктому чайниковская , ну как без ошибок они обязательны!!!
Что для Вас как два пальца об... , то чайнику методом научного тыка на неделю, а чего стоят хелпы
в черепушке увсё перепуталось, ну да Вы в курсе - обычное дело.
Замечания приняты , спасибо, не ожидал. Буксанул на вводе записей поэтому руки не дошли по мелочам в таблах (формах), все поправим.
Пока проблемы:
- при вводе отсутсвует Клиент!!! - в том и дело , поставить на форму поле Ид не мудрено но какой будет выпадающий список через год и как из него выбрать, или я не понял эту синхронизацию
- поле Ид к (ааааааааа) - можно подробней ? Не уж-то 2007-у аксу слабо смому подставить ИД текущего клиента ?!
- По названию полей - с отчётами не игрался, если там на выходе всё правится - в табле поправим.
Хотя заказчику (Жене ) надо: если ребёнок то - Мальчик/Девочка; и категорию по годам
вынь да положь , ну как откажешь - с довольствия снимет. Категория нужна для отчёта и в форме при работе с клиентом было видно что у него водиться. Рукам вводить -себя не любить,было понятно сразу - вопрос уже задавалси в начале топика. Придется мутить с вычисляемым полям.
В общих нужно : К супруге приходит Некто, выясняется: кто, гражданин - семья , тут нужно применить условное форматирование если гражданин то семья с дитями (вкладка) недоступна и н/o.Если ребёнок хитрый, прикрутить сведения о (опека и т.д).К клиенту сведения где и чем живёт.
На этой основе решить кто он такой ( в какую катергорию попадает ) и выдать услугу:денежку,сапог,
послать нах.. , с этого добра снять статистику - работы крышу снимет.
Кому апрель, весна, коты - а мне лопата (фазенду топит),хвосты - железяки на работе(фермер)
дома жена уже топор точит - вот бы кто пример для начала кинул(вроде всё стандартно а найти не могу), время не хватает , ужас.
2АлаяЗаря - не получается 2007-й акс ругается .

  Ответить  
 
 автор: kot_k_k   (03.04.2010 в 10:18)   личное сообщение
 
 

поехали


- при вводе отсутсвует Клиент!!! - в том и дело , поставить на форму поле Ид не мудрено но какой будет выпадающий список через год и как из него выбрать, или я не понял эту синхронизацию



- для этого нужно сделать форму - которая на определенном этапе ввода инфы о ребенке или по нажатию кнопки (мож жебенка кто усыновил /уматерил/ ) - выскакивала - и сзаставляла вводить данные о клиенте. это для нормальной визуали и поиска клиента, я вообще не использую полесосписком.
алгоритм работы:
- нажали кнопку или в поле "Клиент" 2 раза даблклик/ - выскочила форма - /обнулась глобальная переменная/ - выбрали клиента -/даблклик на поле, глобальной переменной присваиваем код клиента, закрываем форму/ - полю ИД к присваиваем значение глобальной переменной и обновляем поле.


- поле Ид к (ааааааааа) - можно подробней ? Не уж-то 2007-у аксу слабо смому подставить ИД текущего клиента ?!



аааааа - названия полей/таблий/запросов/форм/отчетов желательно писать на аглицком.
а для того чтобы акс сам вставил текущего клиента то :
- должна быть открыта форма Клиенты - добавление новой строки или фильтр по детям клиента, при открытии формы Дети должно происходить следующее -

Me.ИД_к = Forms![Клиенты]!ИД_к
Me.ИД_к.Requery

ИД_к - акс вот так интерпритирует ТВОИ пробелы - жопка № 1.


и категорию по годам вынь да положь


- на событие "После обновления" поля датарождения ставим Процедуру которая вычисляет категорию в зависимости от текущей даты и присваиваем ее нужному полю, причем это можно /нужно/ сделать на регулярной основе - на форму Дети событие «Текущая запись» (Current) ставим запуск этой процедуры.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList