Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2008, 22:31   #1
smoky
Пользователь Подтвердите свой е-майл
 
Регистрация: 13.05.2008
Сообщений: 65
По умолчанию Отображение в форме и таблице двух столбцов подстановок

Имеем таблицу {1}с множеством полей и в частности с полями [Электродвигатель] - столбец подстановки, [Мощность]. И еще одну табличку {2}с полями [Код], [Эл_дв], [Мощн]. Все было бы ничего но хочется чтобы в форме было наглядно нарисовано и электродвигатель и мощность (которая бы бралась из таблицы {2}) а не вбивалась вручную в таблицу {1}. Просто перетянуть поле в форму таблицы {1} удается, но странным образом нарушается структура вывода данных в форме (например пишешь вывести строку 150 - выводится строка с кодом 58)... И возможно ли вообще такое - при изменении одного значения поля (ячейки) в таблице (к примеру изменение в таблице {1} поля со списком (выбор какого либо значения)) - изменялось бы значение другого поля...

зыж если что не так написАл - просьба не пинать
smoky вне форума Ответить с цитированием
Старый 24.06.2008, 01:27   #2
Abrakadabra
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 487
По умолчанию

Цитата:
Сообщение от smoky Посмотреть сообщение
зыж если что не так написАл - просьба не пинать
не пинаю..
Вложения
Тип файла: rar db5.rar (10.0 Кб, 48 просмотров)
Abrakadabra вне форума Ответить с цитированием
Старый 24.06.2008, 07:44   #3
smoky
Пользователь Подтвердите свой е-майл
 
Регистрация: 13.05.2008
Сообщений: 65
По умолчанию

я так понял здесь все построено на работе скрипта:
Код:
Private Sub Электродвигатель_AfterUpdate()
On Error Resume Next
Me.Мощность.Value = Me.Электродвигатель.Value
End Sub
Если не трудно, объясните работу данной функции...

Может я что то накрутил в своей базе, но у меня в таблице {1} вместо цифровых кодов прописаны сами названия (еще и с выпадающим списком)... или это нормально? вечером прикручу кусок базы...
smoky вне форума Ответить с цитированием
Старый 24.06.2008, 09:19   #4
Abrakadabra
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 487
По умолчанию

Цитата:
Сообщение от smoky Посмотреть сообщение
я так понял здесь все построено на работе скрипта:
Код:
Private Sub Электродвигатель_AfterUpdate()
On Error Resume Next
Me.Мощность.Value = Me.Электродвигатель.Value
End Sub
Если не трудно, объясните работу данной функции...

Может я что то накрутил в своей базе, но у меня в таблице {1} вместо цифровых кодов прописаны сами названия (еще и с выпадающим списком)... или это нормально? вечером прикручу кусок базы...

Все очень просто:
После обновления (AfterUpdate) выбранного Вами значения (код) в поле "Электродвигатель"
оно передается полю "Мощность". Используя Column комбобокса Вы видите в полях
формы не это значение, а нужный столбец из Таблица2, т.е. эта таблица используется
как словарь.

В данном случае похоже что накрутили, нарушив принципы построения реляционных бд.
Хотя цифровые значения использовать или текстовые - это Ваше дело, однако Вы должны
понимать, что от этого очень сильно зависит как размер базы, так и скорость
обработки.. да еще много чего. Бывают исключения конечно, но думаю это не тот случай.
Если в таблице2 записи удаляются по каким-то соображениям проектирования бд, то
нужно использовать тексты, если нет, то используйте эту таблицу как словарь и смело
переделывайте на число.

Вообще давать советы по структуре бд исходя из Ваших урезанных вопросов-дело
неблагодарное. Только Вы сами сможете на них ответить. Здесь рассматривается
частный вопрос. В подобной ситуации при несколько иных задачах решение может быть
совсем другое.
Abrakadabra вне форума Ответить с цитированием
Старый 30.06.2008, 22:09   #5
smoky
Пользователь Подтвердите свой е-майл
 
Регистрация: 13.05.2008
Сообщений: 65
По умолчанию

вот кусок БД. Посмотрите что я тут накрутил и возможно ли исправить или можно так оставить, но какие могут быть проблемы в дальнейшем? в принципе такое представление полей в таблице выглядит более наглядно, да и в дальнейшем будет врятли как то правиться...по идее наверняка правильнее сделать в цифровом виде (так как все равно выводится будет в форме)
Вложения
Тип файла: rar base.rar (292.1 Кб, 27 просмотров)
Тип файла: rar base2000.rar (29.0 Кб, 27 просмотров)

Последний раз редактировалось smoky; 30.06.2008 в 22:16.
smoky вне форума Ответить с цитированием
Старый 01.07.2008, 09:27   #6
Abrakadabra
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 487
По умолчанию

Цитата:
Сообщение от smoky Посмотреть сообщение
я тут накрутил..

Критического нет ничего, однако:
(ставлю вопросы на которые Вы себе ответьте сами)

Таблицы:
Если уж подстановка в формах, то зачем такая же подстановка
в таблицах(поле "ЭлектродвигательЛебедки" "таблица1)?
Вы же работаете с ними через формы. При больших
объемах информации это замедлит работу. Может стоит сделать
в таблице просто Long(числовое) поле без всяких прибамбасов?

А зачем полю "№ п\п" размер поля "Двойное с плавающей точкой"?
Ошибка.


Таблица "электродв":
Чтобы Вам не путаться, может следует соблюдать общепризнанные правила
размещения полей:-ключевое поле всегда первое? Поменять местами
всегда можно при подствновке, в запросе например..

Поле "Мощность": если будете производить вычисления с этими данными,
то "Двойное с плавающей точкой"может быть оправдано. Если же под
вопросом, то может лучше "текстовое"? Всякое бывает..

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

Зачем вообще забивать голову полем "№ п/п"? Это есть внизу..

Поле "электродвигатель": Может стоит сделать сортировку, чтобы
легче было найти нужную запись?

Поле "мощность": Если каждому типу эл.двигателя соответствует только
одно значение мощности, то это поле вообще не нужно, в том числе и в
привязанной таблице. Зачем дублировать поля? Если же несколько, то есть
смысл это поле преобразовать в комбобокс (поле со списком) с возможностью
не по памяти исправлять предложенные значения, а выбирать из списка (дабы
не совершить ошибку).
Abrakadabra вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аффинная система подстановок Цезаря Karyuudo Помощь студентам 12 10.02.2010 19:26
Прибавление данніх из двух столбцов gavrylyuk Microsoft Office Excel 3 01.08.2008 11:40
Проблема со столбцом подстановок. Hellell Microsoft Office Access 1 08.01.2008 02:13
Как извлечь из двух столбцов несовпадающие строки Shavminator Microsoft Office Excel 4 28.12.2007 12:23
Отображение картинок или метафайлов на форме. Hellen Общие вопросы Delphi 3 19.02.2007 10:44