Access=>Forms=>ComboBox

Sfagnum
Дата: 26.02.2002 09:08:55
Проблема следущая у меня SubForm'а, в зависимости от содержания одного из поля я хочу чтобы RowSourse Combo Box'а был разный(берёться из другой таблицы), причём поле по которому осуществляю поиск текстовое при вводе в RowSourse следущего запроса: 'SELECT DISTINCTROW [RASH_NIT].[VID_TK], [RASH_NIT].[NOMER], [RASH_NIT].[RASHOD] FROM [RASH_NIT] WHERE [RASH_NIT].[MODEL]=Me!Model_code.Text;' он просит ввести значение Me!Model_code.Text, такую проблему я решал через VBA заключая значение в тройные кавычки.
Вопрос:
Можно ли в запросе использовать Me!Model_code.Text, если нет то на какое событие менять RowSourse(это SubForma!!!), так чтобы для каждого поля был свой выбор, и при выборе остальные значения не сбивались.
Заранее спасибо.
BAlex
Дата: 26.02.2002 09:53:03
А так не пробовали (обратите внимание на место кавычек)?

'SELECT DISTINCTROW [RASH_NIT].[VID_TK], [RASH_NIT].[NOMER], [RASH_NIT].[RASHOD] FROM [RASH_NIT] WHERE [RASH_NIT].[MODEL]=' & Me!Model_code.Text
Sfagnum
Дата: 26.02.2002 10:31:17
Кавычек изначально не было, оригинал:
SELECT DISTINCTROW [RASH_NIT].[VID_TK], [RASH_NIT].[NOMER], [RASH_NIT].[RASHOD] FROM [RASH_NIT] WHERE [RASH_NIT].[MODEL]=Me!Model_code.Text;
на вариации с ", ', и & ругается
BAlex
Дата: 26.02.2002 13:59:47
Вы такой вариант пробовали?

"SELECT DISTINCTROW [RASH_NIT].[VID_TK], [RASH_NIT].[NOMER], [RASH_NIT].[RASHOD] FROM [RASH_NIT] WHERE [RASH_NIT].[MODEL]=" & Me!Model_code.Text & ";"

Тип поля [MODEL]?!
Владимир Смирнов
Дата: 27.02.2002 05:13:19
Может проблема в том, что свойство Text доступно только тогда, когда элемент (Model_code) имеет фокус.
Кроме того непонятно, где точно расположены Combo Box и Text Box: оба в подчинённой форме или Text Box в основной, а Combo Box в подчинённой, или наоборот?
Sfagnum
Дата: 27.02.2002 06:47:14
To Владимир Смирнов:
Text Box & Combo Box находятся на ленточной подчинённой форме, насчёт свойства Text, да я попробовал SELECT DISTINCTROW [RASH_NIT].[VID_TK], [RASH_NIT].[NOMER], [RASH_NIT].[RASHOD] FROM [RASH_NIT] WHERE [RASH_NIT].[MODEL]=Model_code; - идёт, НО определяется один раз для 1го встречного Model_code и при переходе на следующий Combo Box значения в выпадающем списке не обновляются, а хотелось бы.
Пробовал через VBA на GotFocus и на Text Box и на Combo Box определять RowSourse, НО опять же определяется на все текущие Combo Box'ы, но и это не так страшно, НО при выборе значения все текущие Combo Box'ы принимают выбранное значение, и вот такая проблема...

То BAlex:
Я записываю данное значение в Combo Box/Properties/Row Sourse, а там мой Access97 кавычки ни в каком варианте не принимает, так же читай выше.

Может есть вариант задать значение Combo Box'у в конкретной линии? Это бы в принципе решило бы проблему, но как определить програмно из какому конкретно Combo Box'у задаёшь значение?
Владимир Смирнов
Дата: 27.02.2002 08:28:52
Попробуйте на Model_code_AfterUpdate() и на Form_Current() выполнять процедуру изменения RowSourse у Combo Box'а на новое значение.
Me.Combo.RowSourse = "SELECT DISTINCTROW [RASH_NIT].[VID_TK], [RASH_NIT].[NOMER], [RASH_NIT].[RASHOD] FROM [RASH_NIT] WHERE [RASH_NIT].[MODEL]= " & Me.Model_code
или, если MODEL - текстового типа,
WHERE [RASH_NIT].[MODEL]= '" & Me.Model_code & "'"
Sfagnum
Дата: 27.02.2002 08:51:20
To Владимир Смирнов
Событие Model_code_AfterUpdate() не отлавливается, я не добавляю эти записи, да и в любом случае не то
Form_Current() - работает, но GotFocus на Combo Box работает корректнее, выше описанные проблемы сохраняються.((
С написанием VBA кода у меня проблем не возникает, основная проблема куда его писать
И Вы наверное не совсем правильно поняли мою проблему, у меня проблема в том чтобы на каждый Text Box был свой список в Combo Box'е
Владимир Смирнов
Дата: 27.02.2002 11:50:48
Sfagnum.
Проблема в том, что Вы хотите невозможного.
В форме, простой или ленточной, нет множества Text Box'ов и Combo Box'ов для каждой записи.
Если Вы расположили на форме Text Box - назовём его Model_code, и Combo Box - назовём Combo, а форму открыли как ленточную, то в ней существуют только два элемента управления - Model_code и Combo.
Внешне ленточная форма выглядит так, будто бы у неё много экземпляров Model_code и Combo. Но это не так (по крайней мере нам эти экземпляры недоступны).
Таким образом, у нас нет возможности задать одновременно разные свойства одному и тому-же объекту. Кроме того, изменение свойств (кроме разумеется Value, которое связано с данными из рекордсета) отражается одновременно на всех экземплярах этого объекта в ленточной форме.
Отсюда вывод: хотите изменить Combo.RowSourse так, чтобы он был разным для разных записей, - меняйте по событию Current. Хотите по изменению значения Model_code? - по событию AfterUpdate для Model_code.

А если что-то сделать невозможно, то невозможно и узнать как это сделать.
Sfagnum
Дата: 27.02.2002 14:09:58
To Владимир Смирнов
Спасибо за полный и развёрнутый ответ.
Буду настраивать пользователей))
С уважением Sfagnum