Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сделать ПолеСоСписком "всеядным"? / 13 сообщений из 13, страница 1 из 1
04.07.2019, 18:14
    #39833998
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать ПолеСоСписком "всеядным"?
Есть Форма1 на ней размещено ПолеСоСписком1 и Группа Выключателей1...На форме1 размещена подчинённая ленточная форма ПодчФорма1.Нужно чтобы при разных значениях ГруппаВыключателей1 менялся набор данных в ПолеСоСписком1 (т.е. при значении Группа Выключателей1=1 отображались значения Поля1 SQL-Запроса1,при значении Группа Выключателей1=2 отображались значения Поля2 SQL-Запроса1 и т.д).Это для нужно для того,чтобы можно было осуществить запрос на выборку по критерию того или иного поля и чтобы ленточная форма ПодчФорма1 отображала записи этого запроса (обращение в запросе только к Таблице1)...
В принципе ПолеСоСписком1 меняет свое "содержимое",но возникают проблемы несовместимости типа данных (с соответствующим сообщением),когда я выбираю уже из имеющегося значения ПолеСоСписком1 текстовую строку (изначально ПолеСоСписком1 числовое поле).Когда ввожу в нее цифры-все нормально работает.Т.е. содержимое меняет нормально,а при вводе нечисловых символов-ругается.Что поможет сделать ПолеСоСписком1 "всеядным"?
...
Рейтинг: 0 / 0
04.07.2019, 18:24
    #39834002
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать ПолеСоСписком "всеядным"?
drafty, Coltyp
...
Рейтинг: 0 / 0
04.07.2019, 18:43
    #39834019
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать ПолеСоСписком "всеядным"?
draftyЧто поможет сделать ПолеСоСписком1 "всеядным"?Поле таблицы не может быть и числовым и текстовым одновременно-при выборе уже существующих значений из Combo в него подставится соответствующий код из таблицы-источника списка,а при добавлении нового значения в список надо обработать событие "отсутствиеВсписке" добавив новое значение в таблицу-источник списка и обновить Combo, сохранив в нем новое (ранее отсутствовавшее в списке)значение.Примеры обработки события NotInList есть и на этом форуме и в сети
...
Рейтинг: 0 / 0
04.07.2019, 18:47
    #39834022
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать ПолеСоСписком "всеядным"?
вдогонку:а покажите источник данных поляСоСписком и каков его тип в таблице?
...
Рейтинг: 0 / 0
04.07.2019, 18:51
    #39834025
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать ПолеСоСписком "всеядным"?
Панургdrafty, Coltyp
...cейчас попробую "смоделировать"
...
Рейтинг: 0 / 0
04.07.2019, 18:56
    #39834028
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать ПолеСоСписком "всеядным"?
sdku,

в том то и дело,что ПолеСоСписком1 не является полем таблицы,это просто "свободное" поле формы которое нужно только для задания критерия поиска записей
...
Рейтинг: 0 / 0
04.07.2019, 19:07
    #39834033
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать ПолеСоСписком "всеядным"?
sdkuвдогонку:а покажите источник данных поляСоСписком и каков его тип в таблице?

ПолеСоСписком1.RowSourceType="Table/Query"
if (Группа1=1) Then
ПолеСоСписком1.RowSource="Select Таблица1.Поле1 From Таблица1"
End if
if (Группа1=2) Then
ПолеСоСписком1.RowSource="Select Таблица1.Поле2 From Таблица1"
End if
if (Группа1=3) Then
ПолеСоСписком1.RowSource="Select Таблица1.Поле3 From Таблица1"
End if

Изначально источником строк этого ПоляСоСписком1 был запрос (созданный в конструкторе запросов) и оно содержало значение поля типа Long...

Как-то так...
...
Рейтинг: 0 / 0
04.07.2019, 19:22
    #39834041
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать ПолеСоСписком "всеядным"?
Панургdrafty, Coltyp

Работает,спасибо!

ПолеСоСписком1.BoundColumn=0
if (Группа1=1) Then
ПолеСоСписком1.RowSource="Select Таблица1.Поле1 From Таблица1"
End if
if (Группа1=2) Then
ПолеСоСписком1.RowSource="Select Таблица1.Поле2 From Таблица1"
End if
if (Группа1=3) Then
ПолеСоСписком1.RowSource="Select Таблица1.Поле3 From Таблица1"
End if
Me.ПолеСоСписком1.Requery
...
Рейтинг: 0 / 0
04.07.2019, 19:55
    #39834052
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать ПолеСоСписком "всеядным"?
drafty,
я не "вкурю" момент: свободное поле на форме "проглотит" хоть стринг,хоть число а при несоответствии критерия отбора и типа поля сообщит об ошибке-так чего же Вы добиваетесь,непонятно,однако.
Код: vbnet
1.
(если не выводить сообщение об ошибке юзер с упорством барана будет повторять действие пока не надоест)
...
Рейтинг: 0 / 0
04.07.2019, 20:05
    #39834055
Predeclared
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать ПолеСоСписком "всеядным"?
В вашем случае есть более элегантное и легкое решение:
Код: vbnet
1.
2.
3.
Private Sub grpFieldsTypes_AfterUpdate()
    Me.cbx.ColumnWidths = Choose(Me.grpFieldsTypes, "3;0;0", "0;3;0", "0;0;3")
End Sub
...
Рейтинг: 0 / 0
04.07.2019, 21:06
    #39834074
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать ПолеСоСписком "всеядным"?
sdku,

тем не менее ошибка выскакивала,а теперь нет
...
Рейтинг: 0 / 0
04.07.2019, 21:13
    #39834076
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать ПолеСоСписком "всеядным"?
PredeclaredВ вашем случае есть более элегантное и легкое решение:
Код: vbnet
1.
2.
3.
Private Sub grpFieldsTypes_AfterUpdate()
    Me.cbx.ColumnWidths = Choose(Me.grpFieldsTypes, "3;0;0", "0;3;0", "0;0;3")
End Sub

да, действительно-выглядит компактненько,а параметр '3' что-за величина в Choose,почему не 2,не 4,а именно '3'?
...
Рейтинг: 0 / 0
04.07.2019, 21:57
    #39834088
Predeclared
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать ПолеСоСписком "всеядным"?
Это ширина столбца.
Можно и 2 и 4.
Я сделал 3 по давней привычке.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сделать ПолеСоСписком "всеядным"? / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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