Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Как организовать ввод данных следующим образом  [new]
tim_orlov
Member

Откуда:
Сообщений: 6
есть точки на которых измерены параметры. параметров много и использовать выпадающие списки не удобно. Хочется чтобы при вводе пользователь видел список параметров (во всю выстоу страницы) и мог его прокручивать и ставил значения соотвественно напротив параметра.
Стандартный список как я разобрался предполагает что после выбора параметра и набора значений, окошка ввода переключается на следующий список параметров, а хочется чтобы список параметров был одним и тем же для точки и мы добавляли бы только значения. Соответсвенно в результирующую таблицу должны попадать только заполненные значения параметров.
Пример.
Номер_точки 1

Название параметра Значение
Парам1 1
Парам2
Парам3 5
Парам4 3
Парам5

Номер_точки 2

Название параметра Значение
Парам1 3
Парам2 2
Парам3
Парам4 1
Парам5 4

Рузльтирующая таблица:
Номер_точки 1 Парам1 1
Номер_точки 1 Парам2
Номер_точки 1 Парам3 5
Номер_точки 1 Парам4 3
Номер_точки 1 Парам5
Номер_точки 2 Парам1 3
Номер_точки 2 Парам2 2
Номер_точки 2 Парам3
Номер_точки 2 Парам4 1
Номер_точки 2 Парам5 4

Спасибо
11 окт 06, 14:27    [3247692]     Ответить | Цитировать Сообщить модератору
 Re: Как организовать ввод данных следующим образом  [new]
WhiteNoise
Member

Откуда:
Сообщений: 100
Не совсем ясна задача.
tim_orlov
Номер_точки 1

Название параметра Значение
Парам1 1
Парам2
Парам3 5
Парам4 3
Парам5

Это в подчиненной форме?
Тогда можнл сделать таблицЫ:
"НазваниеПараметра" с полями "НазваниеПараметра_ID", "Имя"
"Точки" с полями "Точки_ID", "Имя"
"РезультирующаяТаблица" с полями "Точки_ID", "НазваниеПараметра_ID", "ЗначениеПараметра"
И в RecordSource подчиненной таблицы надо написать:
SELECT НазваниеПараметра.Имя, РезультирующаяТаблицаВыб.ЗначениеПараметр, РезультирующаяТаблицаВыб.Точка_ID
FROM НазваниеПараметра LEFT JOIN  (
          SELECT * 
          FROM  РезультирующаяТаблица 
          WHERE Точка_ID=1 
                                    ) AS РезультирующаяТаблицаВыб 
ON НазваниеПараметра.НазваниеПараметра_ID = РезультирующаяТаблицаВыб.НазваниеПараметра_ID;
Вместо 1 написать Forms![ГлавнаяФорма]![Точка_ID]
При каждом обращении к подчиненной форме -- обновлять RecordSource,
При добавлении каждого параметра (записи) писать Me.Точка_ID=Forms![ГлавнаяФорма]![Точка_ID].
11 окт 06, 15:46    [3248303]     Ответить | Цитировать Сообщить модератору
 Re: Как организовать ввод данных следующим образом  [new]
tim_orlov
Member

Откуда:
Сообщений: 6
автор
Не совсем ясна задача.


Нужно сделать такой вид формы для ввода новых данных. Чтобы для каждой точки выводился набор возможных измеренных параметров в табличном виде (не выпадающим списком, а списком) (т.е. видимо номер точки это главная форма, набор параметров для точки подчиненная). Далее некоторые из этих параметров заполняются значениями.
в результате чего сохраняется таблица вида:
Рузльтирующая таблица:
Номер_точки1 Парам1 1
Номер_точки1 Парам3 5
Номер_точки1 Парам4 3
Номер_точки2 Парам1 3
Номер_точки2 Парам2 2
Номер_точки2 Парам4 1
Номер_точки2 Парам5 4
Т.е. сохраняются только записи о параметрах, где измерены значения.

(я немного подкорректировал результирующую таблицу, т.к. в первом посте была ошибка)
11 окт 06, 16:51    [3248832]     Ответить | Цитировать Сообщить модератору
 Re: Как организовать ввод данных следующим образом  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27548
WhiteNoise
Не совсем ясна задача.
По-видимому автор хочет, чтобы при заполнении значений параметров у него, вместо поля со списком была форма в которой можно было бы отметить все необходимые параметры для точки, а может быть даже проставить там их значение. А потом уже, скажем по кнопке, сформировать в результирующей таблице записи, по одной на пару точка - параметр. Такой подход может быть оправдан, например тогда, когда параметров много и пользователь может забыть какие он уже вносил. Если моя версия верна, то надо сделать такие шаги:
1. Сформировать временную таблицу с полями
ID параметра название Значение
2. Создать на основе запроса из нее форму. Надо автору подумать, может быть модальную, чтобы не было случайно множества экземпляров формы. Почему на основе запроса, а не самой таблицы - потому что для каждой точки свой уникальный набор значений параметров и при создании запроса, введенные ранее значения нужно заменять пустыми.
3. Каким-то образом разместить на основной форме вызов к форме с параметрами, например по кнопке, или двойному клику в поле.
4. После того как пользователь обойдет все параметры и поставит нужные значения, по кнопке выйти из формы. При этом должна выполниться процедура сканирования формы с параметрами и занесение в результирующую таблицу записей по шаблону. Причем только непустых, как того хочет автор. Делается это одним запросом на добавление.
11 окт 06, 17:01    [3248926]     Ответить | Цитировать Сообщить модератору
 Re: Как организовать ввод данных следующим образом  [new]
tim_orlov
Member

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


Да что-то вроде я хочу.
Основную идею понял. а нельзя ли как-нибудь обойтись без специльной кнопки? т.е. данные в форму по точке ввел, переключился на следующую точку.
Закончил ввод по всем точкам, нажал кнопку добавить данные в таблицу.
Все данные по запросу на добавления добавились?
11 окт 06, 17:17    [3249035]     Ответить | Цитировать Сообщить модератору
 Re: Как организовать ввод данных следующим образом  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27548
tim_orlov
Основную идею понял. а нельзя ли как-нибудь обойтись без специльной кнопки? т.е. данные в форму по точке ввел, переключился на следующую точку.
Закончил ввод по всем точкам, нажал кнопку добавить данные в таблицу.
Все данные по запросу на добавления добавились?
По первому вопросу
автор
а нельзя ли как-нибудь обойтись без специльной кнопки? т.е. данные в форму по точке ввел, переключился на следующую точку.
Ну так это то же самое - по кнопке переключаетесь на следующую точку и, одновременно заполняете таблицу.
По второму вопросу:
автор
Закончил ввод по всем точкам, нажал кнопку добавить данные в таблицу.
Да это возможно. Промежуточный ввод нужно делать не в саму результирующую таблицу, а в ее временную копию. По окончании всего сеанса ввода производится перенос данных в основную и очищение временной. Но надо иметь в виду, что подобные отложенные транзакции могут быть чреваты потерей данных - свет потух, комп сломался, оператор ушел и не вернулся и т.д. и т.п. На этот случай надо сделать нехилое программное обеспечение, чтобы предусмотреть все возможные случаи.
11 окт 06, 17:49    [3249290]     Ответить | Цитировать Сообщить модератору
 Re: Как организовать ввод данных следующим образом  [new]
tim_orlov
Member

Откуда:
Сообщений: 6
спасибо
буду пробовать
12 окт 06, 13:08    [3252808]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить