|
Контролл в форме не показывает результат запроса
|
|||
---|---|---|---|
#18+
Добрый день! Ситуация: Access 2010 из Office Professional 2010, русский Есть форма Frm, режим - Только чтение, вид - Таблица. Источник данных - SQL запрос из таблицы Tbl1, которая по ключевому полю x1 (тип String) связана с таблицей Tbl2, отношение "один-ко-многим". Таблица Tbl2 связана с таблицей Tbl3 по НЕ ключевому полю x2 (тип String). Тbl1.[x1] отображается в Frm.[x], тип контрола - поле. В Frm.[y], тип контрола - поле со списком - должен отображаться результат SQL запроса из Tbl3. Все происходит в событии OnOpen формы Frm: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
Проблема: 1) при открытии формы вся колонка Frm.[y] пустая, хотя при выборе любого [y] открывается список полей 2) для всех [y] список записей одинаков, т.к. в условие отбора Access ставит ТОЛЬКО первую запись из Me.[x], хотя нужно - свое значение для каждой записи на форме. Если убрать WHERE - тот же эффект, только в списке все записи. В чем ошибка? Отзовитесь, кто знает, ПОЖАЛУЙСТА! P.S. Для Frm.[y] в Tbl1 есть поле [y] - можно ли как-то в Tbl1 обойтись без него? Т.к. форма только для просмотра, результат запроса хранить не нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 11:19 |
|
Контролл в форме не показывает результат запроса
|
|||
---|---|---|---|
#18+
s_igor_l, базу в студию. Что-то никак на пальцах не соображу. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 11:33 |
|
Контролл в форме не показывает результат запроса
|
|||
---|---|---|---|
#18+
s_igor_l, что побудило засунуть это дело в Form_Open? для того чтобы control что-то показывал нужно его прицепить к ресурсу .ControlSource = ... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 11:38 |
|
Контролл в форме не показывает результат запроса
|
|||
---|---|---|---|
#18+
1) Базу выложить не могу, по некоторым соображениям 2) .ControlSource пробовал установить - результат тот же 3) А куда еще засунуть, кроме OnOpen? 4) Access'oм занимаюсь по "производственной необходимости" ("чайник"), нужной информации найти не могу, догадываться уже здоровья не хватает Всем ответившим - СПАСИБО! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 11:56 |
|
Контролл в форме не показывает результат запроса
|
|||
---|---|---|---|
#18+
s_igor_l, обычно заносится в Form_Load .requery убрать надо конструкция в .RowSource с S не прокатит - делайте .x1=Forms!frmname!x ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 12:37 |
|
Контролл в форме не показывает результат запроса
|
|||
---|---|---|---|
#18+
alecko, 1) Form_Load - то же самое; по справке - то же, что Form_Open, только отменить нельзя 2) .Requery - то же самое, только работает быстрее, стественно 3) .x1=Forms!frmname!x - с этого начинал. Проблема в том, что Параметр в запросе, в ДАННОМ случае, Access Параметром НЕ считает Похоже, проблема в форме, не пойму - какая. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 14:54 |
|
Контролл в форме не показывает результат запроса
|
|||
---|---|---|---|
#18+
Гммммм... я б попробовал вот тут WHERE Tbl2.[x1]='" + _ S + "'" + _ + на & поменять...... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 15:21 |
|
Контролл в форме не показывает результат запроса
|
|||
---|---|---|---|
#18+
А то и во всех остальных местах..... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 15:23 |
|
Контролл в форме не показывает результат запроса
|
|||
---|---|---|---|
#18+
s_igor_lalecko, 1) Form_Load - то же самое; по справке - то же, что Form_Open, только отменить нельзя А вот и нет. Аргументы только в Form_Open считать можно (вроде бы) s_igor_l2) .Requery - то же самое, только работает быстрее, стественно 3) .x1=Forms!frmname!x - с этого начинал. Проблема в том, что Параметр в запросе, в ДАННОМ случае, Access Параметром НЕ считает Похоже, проблема в форме, не пойму - какая. И вообще, перенеси-ка ты весь этот код в секцию Form_Load Если не получится, то в Form_Current ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 15:26 |
|
Контролл в форме не показывает результат запроса
|
|||
---|---|---|---|
#18+
Joss, Специфика моей БД такова, что Null в результатах запросов может быть только в некоторых местах, которые я обрабатываю отдельно, поэтому "+" и "&" - без разницы alecko, 1) Аргумент только в Form_Open (Cancel As Integer), т.к. позволяет отменить обработку события OnOpen 2) В Form_Load переносил, без разницы 3) В Form_Current переносил, форма работает не корректно ********************************* Вижу, придется опять самому по потолку бегать, как обычно))))) Тема закрыта. Всем откликнувшимся - СПАСИБО! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 10:24 |
|
Контролл в форме не показывает результат запроса
|
|||
---|---|---|---|
#18+
s_igor_lВ Form_Current переносил, форма работает не корректно Если набор строк в ПС должен меняться для каждой записи, то менять источник строк ПС нужно именно на Form_Current. Но это правильно работает на простой форме или на ленточной/табличной при условии, что в ПС отображается связанный столбец. У вас связанный столбец скрыт и если в текущей записи его сохраненному значению соответствует строка в списке и значение из другого столбца этой строки отображается, то в других видимых записях строк, соответствующих сохраненным значениям может и не быть, тогда в ПС пусто (ваша проблема №1). Стандартное решение для Акса - в ленточной/табличной форме в ПС выводить все строки, а для ввода/редактирования записи открывать другую (простую) форму. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 12:38 |
|
|
start [/forum/topic.php?fid=45&fpage=46&tid=1611262]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 300ms |
total: | 447ms |
0 / 0 |