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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2015, 11:53   #1
superpsih
Пользователь
 
Регистрация: 14.11.2013
Сообщений: 74
По умолчанию Событие при выборе из списка

Есть две таблицы. В одной таблице поле с подстановкой имён из первой таблицы. Как сделать так, чтобы при выборе одной из позиций (например, test1) менялось значение в поле "logic" таблицы 1 для этого имени (см. скриншот)?
Изображения
Тип файла: jpg Screenshot 2015-12-28 11.44.45.jpg (28.9 Кб, 123 просмотров)
Вложения
Тип файла: zip question.zip (34.3 Кб, 12 просмотров)
superpsih вне форума Ответить с цитированием
Старый 28.12.2015, 12:29   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

те. раз выбрал Тест1 поле Логис стало True, опять выбрал Тест1 - поле Логис стало False?

Код:
Private Sub name_choose_AfterUpdate()
    Dim strSql As String
    Dim p As Boolean
    strSql = "select logic from Table1 where [name_]='" & Form_Table2.name_choose.Text & "'"
    p = CurrentProject.Connection.Execute(strSql).Fields(0)
    strSql = "UPDATE [Table1] set logic = " & (not P) & " WHERE [name_] = '" & Form_Table2.name_choose.Text & "'"
    DoCmd.SetWarnings False
    Debug.Print strSql
    DoCmd.RunSQL (strSql)
    DoCmd.SetWarnings True
End Sub
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.

Последний раз редактировалось Aleksandr H.; 28.12.2015 в 12:35.
Aleksandr H. вне форума Ответить с цитированием
Старый 28.12.2015, 12:39   #3
superpsih
Пользователь
 
Регистрация: 14.11.2013
Сообщений: 74
По умолчанию

Опять его не выбрать - оно выбирается один раз. Я забыл на него поставить уникальность. Сейчас попробую ваш код.
superpsih вне форума Ответить с цитированием
Старый 28.12.2015, 12:55   #4
superpsih
Пользователь
 
Регистрация: 14.11.2013
Сообщений: 74
По умолчанию Спасибо, работает!

Код работает. Не могли бы вы немного разъяснить что к чему:
1.
Код:
 "select logic from Table1 where [name_]='" & Form_Table2.name_choose.Text & "'"
Почему выбирается строка с именем, а не с ID? Ведь у нас в поле name_choose отображается по идее два параметра (ID и name_), причём первый параметр скрыт (ID). Т.е., я думал что должно быть
Код:
 "select logic from Table1 where [ID]='" & Form_Table2.name_choose.Value & "'"
2. Как переделать код чтобы изменялось значение только один раз (на yes)?
Так
Код:
  strSql = "UPDATE [Table1] set logic = " & True & "
?
3. Зачем нужна строка
Код:
 Debug.Print strSql
?
superpsih вне форума Ответить с цитированием
Старый 28.12.2015, 13:52   #5
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от superpsih Посмотреть сообщение
Код работает. Не могли бы вы немного разъяснить что к чему:
1.
Код:
 "select logic from Table1 where [name_]='" & Form_Table2.name_choose.Text & "'"
Почему выбирается строка с именем, а не с ID? Ведь у нас в поле name_choose отображается по идее два параметра (ID и name_), причём первый параметр скрыт (ID). Т.е., я думал что должно быть
Код:
 "select logic from Table1 where [ID]='" & Form_Table2.name_choose.Value & "'"
можно и так сделать. 2 варианта решения. Только
Код:
 "select logic from Table1 where [ID]=" & Form_Table2.name_choose
Цитата:
Сообщение от superpsih Посмотреть сообщение
2. Как переделать код чтобы изменялось значение только один раз (на yes)?
Так
Код:
  strSql = "UPDATE [Table1] set logic = " & True & "
Код:
strSql = "UPDATE [Table1] set logic = True WHERE [name_] = '" & Form_Table2.name_choose.Text & "'"
или
Код:
strSql = "UPDATE [Table1] set logic = True WHERE [ID] = " & Form_Table2.name_choose
Цитата:
Сообщение от superpsih Посмотреть сообщение
3. Зачем нужна строка
Код:
 Debug.Print strSql
?
Для меня Я смотрел какую sql строку сформировал. Можно удалить
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.

Последний раз редактировалось Aleksandr H.; 28.12.2015 в 13:55.
Aleksandr H. вне форума Ответить с цитированием
Старый 28.12.2015, 14:34   #6
superpsih
Пользователь
 
Регистрация: 14.11.2013
Сообщений: 74
По умолчанию

Всё понятно, Спасибо!
superpsih вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переход к именованной области при выборе из списка Polzovatel Microsoft Office Excel 12 12.01.2012 16:20
Событие при выборе определенного столбца в dbgrid aimk0 БД в Delphi 3 04.08.2011 11:47
Методом JS прыгнуть на value списка при выборе Winlook JavaScript, Ajax 4 12.03.2010 16:31
Событие при выборе вкладки VistaSV30 Microsoft Office Access 2 25.01.2010 21:11
Процедура при выборе значения из выпадающего списка Sha Microsoft Office Excel 5 22.12.2009 18:08