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

Форум: MS ACCESS

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

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

 
 

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

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

тема: рассчет в таблице
 
 автор: beginner   (22.10.2010 в 22:28)   личное сообщение
 
 

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

Имеется 2 поля с оценками. При этом, вместо цифр стоит выбор из "отл", "хор" , "удовл", "неуд". Выбор берется из списка значений.
Как сделать так, чтобы в третьем поле автоматически вычислялась итоговая оценка.
Видимо надо прописать где то какую то функцию для третьего поля, где учитываются все варианты. Что то вроде " если в первом поле "отл", а во втором "удовл", то в итоге имеем "хор". И надо чтобы это "хор" автоматически появлялось в третьем поле после ввода первых двух оценок.

Где и Как прописать эту функцию? вот мой вопрос...

Спасибо.

  Ответить  
 
 автор: Lukas   (22.10.2010 в 22:41)   личное сообщение
 
 

Расчетов в таблице быть не должно.
Расчетные поля можно создавать в запросе к таблицам.
Можно добавить таблицу с тремя полями:
1. Первая оценка
2. Вторая оценка
3. Итоговая оценка.
Добавить все возможные сочетания в нее.

Тогда эту табличку можно объединить с первой табличкой по двум полям, и в запросе выводить поле "Итоговая оценка" этой спец таблички соответствий.

  Ответить  
 
 автор: beginner   (22.10.2010 в 23:10)   личное сообщение
 
 

"Тогда эту табличку можно объединить с первой табличкой по двум полям, и в запросе выводить поле "Итоговая оценка" этой спец таблички соответствий."

можно это поподробней пожалуйста..
объединить в схеме данных??

  Ответить  
 
 автор: Lukas   (22.10.2010 в 23:46)   личное сообщение
12 Кб.
 
 

Объединить в запросе: пример лайт =>

  Ответить  
 
 автор: Explorer   (23.10.2010 в 00:02)   личное сообщение
 
 

Люкас молодчек :)
опять опередил :)

зачем таблица tblTotalMarks - достаточно Query qryExams

  Ответить  
 
 автор: Lukas   (23.10.2010 в 00:08)   личное сообщение
 
 

Для однозначного определения результирующей оценки и возможности ее корректировки. (Я так думаю).
Что за qryExams?

  Ответить  
 
 автор: Explorer   (23.10.2010 в 00:14)   личное сообщение
 
 


Для однозначного определения результирующей оценки



Roger

  Ответить  
 
 автор: Lukas   (23.10.2010 в 00:28)   личное сообщение
 
 

Водка - это "трудная вода"?

  Ответить  
 
 автор: Explorer   (23.10.2010 в 00:47)   личное сообщение
 
 

да нет, что ты...

Сonst Response as Prototype = "Roger"

я еще не начал...

  Ответить  
 
 автор: Lukas   (23.10.2010 в 00:51)   личное сообщение
 
 

  Ответить  
 
 автор: beginner   (14.11.2010 в 01:08)   личное сообщение
 
 

Спасибо!
а как теперь из запроса информацию в форму выводить? =[Запросы]![имя запроса]![имя поля] почему то не работает...

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

форма строится на основании запроса.
либо мастером - выбирая запрос в качестве данных
либо в форме Свойства-Данные-Источник записисей выбираем нужный запрос (можна воткуть SQL строку запроса)

  Ответить  
 
 автор: beginner   (30.11.2010 в 01:39)   личное сообщение
 
 

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

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


нельзя теперь изменять и добавлять информацию в форме..как так?)


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

  Ответить  
 
 автор: snipe   (30.11.2010 в 11:56)   личное сообщение
11 Кб.
 
 

что -то слишком сложно - с кодом возится, временную таблу делать
(крылья, ноги - самое главное хвост из мультика крылья,ноги и хвосты)
вот в прицепе
все в табличной форме

  Ответить  
 
 автор: beginner   (05.12.2010 в 23:26)   личное сообщение
 
 

а можете описать как построить так форму? не получается повторить

  Ответить  
 
 автор: snipe   (06.12.2010 в 07:08)   личное сообщение
 
 

1.
Делаем две таблицы
одна из таблиц "справочник" в ней хранятся данные о цифровых значениях оценок и их текстовых аналогах
вторая таблица - это таблица базы данных в которой столбцы числовые т.е. данные об оценках должны храниться в числовом виде

2 делаем форму на основе таблицы базы
два комбо бокса и одно свободное поле
настраиваем комбобоксы
источник строк - ссылаемся на таблицу справочник причем из справочника берем оба столбца с цифрами и текстом (количество столбцов 2)
столбец с цифрами делаем присоединённым (номер столбца в запросе) т.е в таблицу будем передавать число
ширина столбцов - присоединённый столбец скрыть (установить 0, с для столбца с текстом наоборот - задать ширину)
ну и строка данные - установить куда будут передаваться данные в таблице (выбрать имя поля)
смысл такой - юзер видит текстовое значение, но на самом деле комбобокс выдает числовое значение)
в свободном поле пишем формулу
которая выдергивает значение из таблицы справочник(DLookUp) в зависимости от значения целой части полусуммы столбцов int(([поле1]+[поле2])/2)
(правда там еще пара iif затесалась но это на всякий случай если поля пустые)

вроде все

  Ответить  
 
 автор: beginner   (07.12.2010 в 01:56)   личное сообщение
 
 

Спасибо!!!очень помогли!!!
А случайно не знаете...
Как можно информацию из запроса выводить в форму? Для таблицы это =[Таблицы]![имя таблицы]![имя поля]... аналогичное для запроса не работает...

  Ответить  
 
 автор: snipe   (07.12.2010 в 03:39)   личное сообщение
 
 

вроде как и для таблицы работать не будет

запрос может быть источником записей для формы - тогда все проще ([имя поля])
можно воспользоваться агрегатными функциями (DFirst, DCount, Dlast, Dmax, Dmin, DlookUp, Dsum) - не самый конечно хороший вариант (подтормаживает) но иногда помогает
можно сделать подчиненную форму на основе запроса и связать по id с основной
да мало ли способов - все зависит от конкретной задачи
(ваш вопрос если чесно ставит в тупик - равносильно как у сороконожки спросили с какой ноги она начинает ходить в итоге она упала- я, к примеру, уже не задумываюсь к чему и как правильно обращаться)
а если без иронии смотрите сами
таблица или запрос имеет двукоординатную систему т.е. для получения конкретного значения нужно знать x и y
обращение к форме по типу Forms![имя формы]![имя поля] отвечает этому условию
отвечает вот почему форма имеет источник записей(таблица, запрос или строка SQL) и при открытии выбирается запись (первая) при желании юзер может передвинуться на нужную запись - таким образом выбирается одна из координат источника записей
вторую координату вы выбираете Forms![имя формы]![имя поля] - таким образом получаете конкретное значение

при обращении [таблица или запрос]![имя поля] - вы передаете только одну координату - вот и ошибка

  Ответить  
 
 автор: Белка   (07.12.2010 в 09:25)   личное сообщение
 
 

Если не получается в конструкторе, то сделайте сначала мастером, потом разберетесь и подредактируете.
Форма часто строится именно на основании запроса , а не таблицы, где есть уже вычисления:
Формы - создать - мастер форм -выберите нужный вам запрос
на основании которого мастер создаст таблицу.
Но она будет простая.. ленточная..

  Ответить  
 
 автор: beginner   (08.12.2010 в 23:24)   личное сообщение
 
 

Извиняюсь! вопрос немного(а может и совсем) другой:
Имеется отчет на базе формы. К полям формы идет обращение через [Формы]![имя формы![имя поля]. Надо чтобы в отчет также можно было добавлять информацию из запросов. Так можно сделать?

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


что -то слишком сложно - с кодом возится, временную таблу делать
(крылья, ноги - самое главное хвост из мультика крылья,ноги и хвосты)



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

  Ответить  
 
 автор: shanemac51   (08.12.2010 в 23:48)   личное сообщение
 
 

без проверки, но вроде так в структуре таблицы для поля р3 или в форме


=(instr("-нухо",mid(p1 & " ",1,1) )+instr("-нухо",mid(p2 & " ",1,1) ))/2



возможно точка с запятой вместо некоторых запятых

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