Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
|
Первое что приходит в голову: 02.12.09 15:08 Число просмотров: 3999
Автор: Ustin <Ustin> Статус: Elderman Отредактировано 02.12.09 15:11 Количество правок: 1
|
создать таблицу СчФ, в которой поле "клиент" будет связано внешним ключём с тбл "Клиенты", 5 полей "товар", связанных с "Товары", ндс, количество товаров итд.
При редактировании в новой таблице связанных полей вызывать формы - справочники (подчинённые формы для формы редактирования), а данные для печати накладной брать из сложного запроса (создаётся в конструкторе запросов).
|
<beginners>
|
[Срочно, MS Access] Форма для работы с двумя таблицами 02.12.09 14:37
Автор: scofield Статус: Незарегистрированный пользователь
|
Помогите — девушка попросила задание ей сделать срочно по Access, а я с ним и не работал никогда, сейчас сижу кнопки тыкаю в конструкторе форм, понять ничего не могу :-). Признаюсь, мне стыдно, но выхода другого нет, кроме как самому обратиться за помощью к тем, кто работал в Access. Почему-то люди считают, что если я немного пишу на Perl и С++, то должен разбираться со всем, что связано с компьютерами.
Суть вот в чем: есть две таблицы, Клиенты и Товары.
Структура таблицы Клиенты:
ФИО | Адрес | РасчСчет | ИНН | Банк | АдресБанк
---
Структура таблицы Товары
Наимен | Еденица_изм | Цена
---
Форма выглядит в виде счета-фактуры. В одном из полей выбирается клиент (я так понимаю, аналог selectbox-а должен быть), и в поля Адрес, Расчетный Счет, ИНН, Банк и Адрес Банка автоматически подгружаются данные из таблицы, связанные с этим клиентом.
Далее есть поле, в которую вводится НДС.
Затем идут пять полей для выбора товара (аналогичные полю выбора клиента), около каждого из них есть поле ввода количества товара. Соответственно, при выборе товара должна в поле Цена подгружаться из таблицы цена товара, умножаться на количество, вычисляться цена с учетом НДС.
Все — вроде бы не так и много. Гугл пока не помогает, но я все ещё в процессе поиска, чтения и ковыряния литературы.
Буду рад любой помощи. Заранее благодарен.
|
|
Все сроки ушли, а я все ещё разбираюсь 06.12.09 12:31
Автор: scofield Статус: Незарегистрированный пользователь
|
> Помогите — девушка попросила задание ей сделать срочно по > Access, а я с ним и не работал никогда, сейчас сижу кнопки > тыкаю в конструкторе форм, понять ничего не могу :-). > Признаюсь, мне стыдно, но выхода другого нет, кроме как > самому обратиться за помощью к тем, кто работал в Access. > Почему-то люди считают, что если я немного пишу на Perl и > С++, то должен разбираться со всем, что связано с > компьютерами. > > Суть вот в чем: есть две таблицы, Клиенты и Товары. > > Структура таблицы Клиенты: > > ФИО | Адрес | РасчСчет | ИНН | Банк | АдресБанк
> ---
> Структура таблицы Товары > > Наимен | Еденица_изм | Цена
> ---
> > Форма выглядит в виде счета-фактуры. В одном из полей > выбирается клиент (я так понимаю, аналог selectbox-а должен > быть), и в поля Адрес, Расчетный Счет, ИНН, Банк и Адрес > Банка автоматически подгружаются данные из таблицы, > связанные с этим клиентом. > > Далее есть поле, в которую вводится НДС. > > Затем идут пять полей для выбора товара (аналогичные полю > выбора клиента), около каждого из них есть поле ввода > количества товара. Соответственно, при выборе товара должна > в поле Цена подгружаться из таблицы цена товара, умножаться > на количество, вычисляться цена с учетом НДС. > > Все — вроде бы не так и много. Гугл пока не помогает, но я > все ещё в процессе поиска, чтения и ковыряния литературы. > > Буду рад любой помощи. Заранее благодарен.
Давайте попробуем поэтапно :-).
В общем, вычисления в форме более-менее научился производить. Делать selectbox-ы со списками товаров и клиентов тоже получаются. Осталось понять следующее: как при выборе в селектбоксе, например, товара, в поле на форме Цена загружать цену этого товара из таблицы товары?
Спасибо.
|
| |
Твой случай очень прост и далек от реальности! Поэтому: 06.12.09 17:33
Автор: Den <Денис Т.> Статус: The Elderman Отредактировано 06.12.09 19:45 Количество правок: 2
|
> Давайте попробуем поэтапно :-). > > В общем, вычисления в форме более-менее научился > производить. Делать selectbox-ы со списками товаров и > клиентов тоже получаются. Осталось понять следующее: как > при выборе в селектбоксе, например, товара, в поле на форме > Цена загружать цену этого товара из таблицы товары? > > Спасибо.
Твой случай очень прост и далек от реальности! Поэтому:
1. В таблицу "Клиенты" и "Товары" добавляется идентификатор записи типа "целочисленный счетчик" (ключевое поле).
2. Для "СФ" создается две таблицы - первая таблица для хранения данных "идентификатор записи СФ" (ключевое поле), "номер СФ", "дата", "контрагент (клиент)", "ставка НДС"; вторая таблица для хранения табличной части СФ: "идентификатор записи СФ" (внешний ключ), "идентификатор товара" (внешний ключ), "количество", "страна происхождения", "номер ГТД". Так как это не "жизненная" задача, то не будем плодить кучу таблиц для достижения хорошей нормализации.
3. При создании формы не надо подтягивать данные по клиенту, т.к. это необходимо только в отчете - Печать СФ. Основная форма строится на основе таблицы "СФ", подчиненная форма строиться на основе таблицы (СФ_ТаблЧасть).
4. В основную форму добавляется combobox с источником строк на основе таблицы "Клиенты".
Все элементарно!
P.S. Во-первых - нефиг соглашаться, если никогда не работал с Access'ом; во-вторых - подучите матчасть - RDBMS.
|
|
Первое что приходит в голову: 02.12.09 15:08
Автор: Ustin <Ustin> Статус: Elderman Отредактировано 02.12.09 15:11 Количество правок: 1
|
создать таблицу СчФ, в которой поле "клиент" будет связано внешним ключём с тбл "Клиенты", 5 полей "товар", связанных с "Товары", ндс, количество товаров итд.
При редактировании в новой таблице связанных полей вызывать формы - справочники (подчинённые формы для формы редактирования), а данные для печати накладной брать из сложного запроса (создаётся в конструкторе запросов).
|
| |
То есть, получатся в таблице СчФ поля и связи с другими... 02.12.09 15:28
Автор: scofield Статус: Незарегистрированный пользователь
|
> создать таблицу СчФ, в которой поле "клиент" будет связано > внешним ключём с тбл "Клиенты", 5 полей "товар", связанных > с "Товары", ндс, количество товаров итд. > > При редактировании в новой таблице связанных полей вызывать > формы - справочники (подчинённые формы для формы > редактирования), а данные для печати накладной брать из > сложного запроса (создаётся в конструкторе запросов).
То есть, получатся в таблице СчФ поля и связи с другими таблицами:
СчФ.Клиент — Клиенты.ФИО
СчФ.Товар1 — Товары.Наимен
СчФ.Товар2 — Товары.Наимен
СчФ.Товар3 — Товары.Наимен
СчФ.Товар4 — Товары.Наимен
СчФ.Товар5 — Товары.Наимен
Плюс поля:
СчФ.НДС
СчФ.Товар1Колво..СчФ.Товар5Колво
Я правильно понял?
«Формы — Справочники» не могу найти почему-то (Office 2007).
По поводу сложного запроса: получится, что он выберет все поля из СчФ, затем по каждому товару в таблице товары просмотрит данные о товаре, а потом также пройдет по названию клиента в таблицу Клиенты за информацией о покупателе? Вы не могли бы примерно написать, как он будет выглядеть?
Хотя странно, там первый курс менеджмента, заочное отделение. Не думаю, что им такие сложные задания могут давать (остальные в этой контрольной, по системам счисления и Excel были очень легкими).
Спасибо за ответ.
|
| | |
Не совсем... 02.12.09 16:40
Автор: Ustin <Ustin> Статус: Elderman Отредактировано 02.12.09 16:50 Количество правок: 4
|
> То есть, получатся в таблице СчФ поля и связи с другими таблицами: > СчФ.Клиент — Клиенты.ФИО > СчФ.Товар1 — Товары.Наимен > ... > Плюс поля: > СчФ.НДС > СчФ.Товар1Колво..СчФ.Товар5Колво > > Я правильно понял? Не совсем.... но если названия уникальны - то да
> > «Формы — Справочники» не могу найти почему-то (Office 2007). Сорри за некорректную формулировку, имел в виду: форма-справочник - самодельная форма, отображающая содержимое другой таблицы (справочника), после выбора в ней нужной записи изменяешь поле, связанное со справочником по внешнему ключу (в поле "товар1" подставляет код товара). Скорее всего придётся покодить.
> По поводу сложного запроса: получится, что он выберет все > поля из СчФ, затем по каждому товару в таблице товары > просмотрит данные о товаре, а потом также пройдет по > названию клиента в таблицу Клиенты за информацией о > покупателе? Вы не могли бы примерно написать, как он будет > выглядеть?
select
sc.*,
cli.name,
tov1.*,
(tov1.price*sc.nds/100) as tov1nds,
....
tov5.*,
....
from schf sc
left join clients cli on (sc.clicode=cli.code)
left join tovary tvr1 on (sc.tv1code=tv1.code)
...
left join tovary tvr5 on (sc.tv5code=tv5.code)
where sc.code=:code
---
(в конструкторе запросов подобная конструкция мышится мышью, так что это не сложно в рамках контрольной)
Сорри за синтаксис, аксесса нет под рукой... Здесь code - название ключевого поля во всех таблицах (в аксессе есть встроенные ключевые поля помимо прочего), clients - таблица клиентов, tovary - таблица товаров, schf - таблица счёт-фактур. И предполагается, что связь между таблицами идёт по полям code (ведь наименование же может быть одинаковым?). В "схеме данных", как я помню, можно указать связь мышью (связь один к одному должна быть).
> Хотя странно, там первый курс менеджмента, заочное > отделение. Не думаю, что им такие сложные задания могут > давать (остальные в этой контрольной, по системам счисления > и Excel были очень легкими).
Да, этот рецепт - первое что пришло в голову при виде заголовка "Срочно"
|
|
|