powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Контролл в форме не показывает результат запроса
11 сообщений из 11, страница 1 из 1
Контролл в форме не показывает результат запроса
    #39684125
s_igor_l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Ситуация:
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.
Private Sub Form_Open(Cancel As Integer)
  Dim RecSource As String, S As String

  RecSource = varSQL_PK ' глобальная переменная с именем запроса
  Me.RecordSource = RecSource
  S = Me.[x] 'ключевое поле
  With [y]
    .BoundColumn = 1
    .RowSource = _
      "SELECT Tbl3.[x2], Tbl3.[x3] FROM Tbl3" + _
      " INNER JOIN (Tbl2" + _
      " INNER JOIN " + RecSource + _
      " ON Tbl2.[x1]=" + RecSource + ".[x1])" + _
      " ON Tbl3.[x2]=Tbl2.[x2]" + _
      " WHERE Tbl2.[x1]='" + _
      S + "'" + _
      " ORDER BY Tbl3.[x3];"

    .RowSourceType = "Table/Query"
    .ColumnCount = 2
    .ColumnWidths = "0см;3,652см"
    .LimitToList = True
    .AllowValueListEdits = False
    .InheritValueList = True

    .Requery
  End With

End Sub


Проблема:
1) при открытии формы вся колонка Frm.[y] пустая, хотя при выборе любого [y] открывается список полей
2) для всех [y] список записей одинаков, т.к. в условие отбора Access ставит ТОЛЬКО
первую запись из Me.[x], хотя нужно - свое значение для каждой записи на форме.

Если убрать WHERE - тот же эффект, только в списке все записи.

В чем ошибка?

Отзовитесь, кто знает, ПОЖАЛУЙСТА!

P.S. Для Frm.[y] в Tbl1 есть поле [y] - можно ли как-то в Tbl1 обойтись без него?
Т.к. форма только для просмотра, результат запроса хранить не нужно.
...
Рейтинг: 0 / 0
Контролл в форме не показывает результат запроса
    #39684135
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s_igor_l, базу в студию. Что-то никак на пальцах не соображу.
...
Рейтинг: 0 / 0
Контролл в форме не показывает результат запроса
    #39684142
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s_igor_l,
что побудило засунуть это дело в Form_Open?
для того чтобы control что-то показывал нужно его прицепить к ресурсу .ControlSource = ...
...
Рейтинг: 0 / 0
Контролл в форме не показывает результат запроса
    #39684158
s_igor_l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1) Базу выложить не могу, по некоторым соображениям
2) .ControlSource пробовал установить - результат тот же
3) А куда еще засунуть, кроме OnOpen?
4) Access'oм занимаюсь по "производственной необходимости" ("чайник"), нужной информации найти не могу, догадываться уже здоровья не хватает

Всем ответившим - СПАСИБО!
...
Рейтинг: 0 / 0
Контролл в форме не показывает результат запроса
    #39684192
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s_igor_l, обычно заносится в Form_Load
.requery убрать надо
конструкция в .RowSource с S не прокатит - делайте .x1=Forms!frmname!x
...
Рейтинг: 0 / 0
Контролл в форме не показывает результат запроса
    #39684291
s_igor_l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,
1) Form_Load - то же самое; по справке - то же, что Form_Open, только отменить нельзя
2) .Requery - то же самое, только работает быстрее, стественно
3) .x1=Forms!frmname!x - с этого начинал. Проблема в том, что Параметр в запросе, в ДАННОМ случае, Access Параметром НЕ считает
Похоже, проблема в форме, не пойму - какая.
...
Рейтинг: 0 / 0
Контролл в форме не показывает результат запроса
    #39684312
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гммммм... я б попробовал вот тут
WHERE Tbl2.[x1]='" + _
S + "'" + _
+ на & поменять......
...
Рейтинг: 0 / 0
Контролл в форме не показывает результат запроса
    #39684316
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А то и во всех остальных местах.....
...
Рейтинг: 0 / 0
Контролл в форме не показывает результат запроса
    #39684321
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s_igor_lalecko,
1) Form_Load - то же самое; по справке - то же, что Form_Open, только отменить нельзя
А вот и нет. Аргументы только в Form_Open считать можно (вроде бы)
s_igor_l2) .Requery - то же самое, только работает быстрее, стественно
3) .x1=Forms!frmname!x - с этого начинал. Проблема в том, что Параметр в запросе, в ДАННОМ случае, Access Параметром НЕ считает
Похоже, проблема в форме, не пойму - какая.
И вообще, перенеси-ка ты весь этот код в секцию Form_Load
Если не получится, то в Form_Current
...
Рейтинг: 0 / 0
Контролл в форме не показывает результат запроса
    #39684641
s_igor_l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Joss,

Специфика моей БД такова, что Null в результатах запросов может быть только в некоторых местах, которые я обрабатываю отдельно, поэтому "+" и "&" - без разницы

alecko,
1) Аргумент только в Form_Open (Cancel As Integer), т.к. позволяет отменить обработку события OnOpen
2) В Form_Load переносил, без разницы
3) В Form_Current переносил, форма работает не корректно

*********************************
Вижу, придется опять самому по потолку бегать, как обычно)))))
Тема закрыта.
Всем откликнувшимся - СПАСИБО!
...
Рейтинг: 0 / 0
Контролл в форме не показывает результат запроса
    #39684773
s_igor_lВ Form_Current переносил, форма работает не корректно Если набор строк в ПС должен меняться для каждой записи, то менять источник строк ПС нужно именно на Form_Current.
Но это правильно работает на простой форме или на ленточной/табличной при условии, что в ПС отображается связанный столбец.
У вас связанный столбец скрыт и если в текущей записи его сохраненному значению соответствует строка в списке и значение из другого столбца этой строки отображается, то в других видимых записях строк, соответствующих сохраненным значениям может и не быть, тогда в ПС пусто (ваша проблема №1).
Стандартное решение для Акса - в ленточной/табличной форме в ПС выводить все строки, а для ввода/редактирования записи открывать другую (простую) форму.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Контролл в форме не показывает результат запроса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]