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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2010, 00:51   #1
Dmitro62
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 10
По умолчанию Передача значений в списках.

Приветствую!
Не буду вдаваться в подробности. Смысл в том, что надо cдать БД в ближайшие дни. БД практически готова, но не хватает последнего штриха...

Требуется считать выбранные значения из двух списков и поместить эти два значения в 3-ий список, в котором юзером выбирается одно из них и записывается в какую-то Н-ную таблицу. Все 3 списка находятся на одной форме.

С языком Sql практически не знаком, да и Access освоил поверхностно - так получилось.
Буду очень благодарен, если мне помогут.
Dmitro62 вне форума Ответить с цитированием
Старый 11.06.2010, 01:06   #2
AdrenalinE
Пользователь
 
Аватар для AdrenalinE
 
Регистрация: 29.09.2007
Сообщений: 95
По умолчанию

Код:
Список3.RecordSource = Список1.Value & ";" & Список2.Value
AdrenalinE вне форума Ответить с цитированием
Старый 11.06.2010, 01:39   #3
Dmitro62
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 10
По умолчанию

Не выходит.
Прописываю в "Процедуре обработки событий", во вкладке "события", выделенного 3 списка.

Я что-то не правильно делаю?
Dmitro62 вне форума Ответить с цитированием
Старый 11.06.2010, 03:11   #4
AdrenalinE
Пользователь
 
Аватар для AdrenalinE
 
Регистрация: 29.09.2007
Сообщений: 95
По умолчанию

Прошу прощения, попутал свойство.
Пример реализации:
Код:
Private Sub combo3_GotFocus()
    combo3.RowSource = combo1.Value & ";" & combo2.Value
End Sub
В прикрепленном файле пример в формате .mdb
Вложения
Тип файла: rar test_combo.rar (10.1 Кб, 24 просмотров)
AdrenalinE вне форума Ответить с цитированием
Старый 12.06.2010, 12:56   #5
Dmitro62
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 10
По умолчанию

Огромное спасибо за помощь. Все работает!

Возник еще один вопрос... последний.

Есть таблица, откуда берутся значения в список 1 и 2. Каждому значению в таблице соответствует какое то число. Так вот, хотелось бы , чтобы при выборе значения в списке 3, к соответствующему числовому значению в исходной таблице добавлялось 2, а к не выбранному - 1.

Это не принципиально, но хочется для своей БД полной автоматизации.

Последний раз редактировалось Dmitro62; 12.06.2010 в 13:07.
Dmitro62 вне форума Ответить с цитированием
Старый 12.06.2010, 13:10   #6
AdrenalinE
Пользователь
 
Аватар для AdrenalinE
 
Регистрация: 29.09.2007
Сообщений: 95
По умолчанию

Надо воспользоваться SQL-конструкцией UPDATE.
AdrenalinE вне форума Ответить с цитированием
Старый 12.06.2010, 14:19   #7
Dmitro62
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 10
По умолчанию

Из-за не знания языка SQl , я не понимаю как прописать некоторые выражения. В нем есть альтернатива "If", "then" ?

Вообщем требуется:

If combo3.value = combo1.Value then
a:=1;
else a:=0

Можно небольшой примерчик ,как это будит выглядить в SQl ?

Последний раз редактировалось Dmitro62; 12.06.2010 в 14:56.
Dmitro62 вне форума Ответить с цитированием
Старый 12.06.2010, 14:26   #8
AdrenalinE
Пользователь
 
Аватар для AdrenalinE
 
Регистрация: 29.09.2007
Сообщений: 95
По умолчанию

Если выложите сюда свою базу, можно попробовать. Чтобы сейчас не придумывать заново таблицы для примера и т.д., а рассматривать конкретный случай.

http://www.ageent.ru/update.html описание инструкции. Может, сами быстрее разберетесь, как применить в данном случае.

Вариантов несколько:
1) Сделать с помощью конструктора запрос на обновление и запускать его при событии списка3 OnChange.
2) Сделать с помощью конструктора запрос на обновление, перейти в режим представления SQL, скопировать оттуда всю инструкцию (или написать ее самому с нуля) и затем, используя DoCmd.RunSQL или CurrentDb.Execute, выполнить эту инструкцию.
AdrenalinE вне форума Ответить с цитированием
Старый 12.06.2010, 14:47   #9
Dmitro62
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 10
По умолчанию

По ссылке не совсем то, о чем идет речь...

Моя база данных представляет собой турнирную таблицу.

Ключевыми в данном вопросе являются форма "Partia" и таблица "Турнирная таблица". На форме вы увидите те 3 списка о которых шла речь выше. При выборе "победителя" требуется, чтобы в таблицу в графе "победы" прибавлялась 1, а у проигравшего в графе "поражения".

П.С. Не судите строго примитивность и кривизну БД, это мой первый "блин".
Вложения
Тип файла: rar BD1 (5).rar (183.5 Кб, 11 просмотров)
Dmitro62 вне форума Ответить с цитированием
Старый 12.06.2010, 16:00   #10
AdrenalinE
Пользователь
 
Аватар для AdrenalinE
 
Регистрация: 29.09.2007
Сообщений: 95
По умолчанию

В общем, вот.
При нажатии на кнопку "Добавить запись" в турнирной таблице победителю добавляется 1 победа и 1 очку, проигравшему добавляется 1 поражение и вычитается 2 очка. Также сохраняется запись партии.

Честно говоря, я не понимаю, зачем хранить в таблице очки, если это вычисляемое поле и его можно посчитать как Поражений*(-2) + Побед. Но раз уж так задумано, то пусть будет так.
Вложения
Тип файла: rar BD1 (5).rar (185.7 Кб, 9 просмотров)
AdrenalinE вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывод в списках zhenya.ya Помощь студентам 0 05.06.2010 23:57
Передача значений колонки ListView в функцию. Человек_Борща Общие вопросы Delphi 4 02.04.2010 21:09
Еще раз о списках tae1980 Microsoft Office Excel 2 23.05.2009 16:51
Передача значений из excel в базу данных elmeera Общие вопросы Delphi 3 13.03.2009 10:57
Инфо о списках Mango Помощь студентам 1 13.01.2009 14:37