Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Combo Box  [new]
ВалерийЮ
Member

Откуда:
Сообщений: 23
Хотел сделать так что-бы в комбобоксе отображались и передавались в подчиненую форму только два типа книг „Access“ и все книги „All books“. Но неполучилось даже сделать „All books“...В Row Sourse пробовал прописать такие варианты:

SELECT DISTINCT Books.[Book type] FROM Books UNION SELECT "All books" from Books GROUP BY [Books].[Book type];

SELECT [Book type] AS Filter, [Book type] FROM [Books] UNION SELECT 'All books' AS Filter, "All" AS [Book type] FROM [Books];

SELECT Books.[Book type] FROM [Books] UNION SELECT "All books" FROM Books GROUP BY [Books].[Book type];

Пробовал и так:

Row Source Type: ValueList
Row Source: Access;All books

и добавил Event:

Private Sub BookType_AfterUpdate()
If Me.BookType = "All books" Then
strFilter = "*"
Else
strFilter = "'" & Me.BookType & "'"
End If
End Sub

Но ничего толкового неполучилось. Облазил весь интернет, тоже ничего...:(

К сообщению приложен файл (Books–Combo.rar - 129Kb) cкачать
1 мар 21, 23:12    [22288126]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 7257
См.форму "books"
и не обзывайте объекты и поля используя зарезервированные слова (Type)

К сообщению приложен файл (Books–Combo.rar - 45Kb) cкачать

Сообщение было отредактировано: 2 мар 21, 00:07
2 мар 21, 00:07    [22288131]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 7257
И еще: поле [Book type] в тбл. Books совершенно излишествующее
2 мар 21, 00:51    [22288135]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
ВалерийЮ
Member

Откуда:
Сообщений: 23
Спасибо...:) Интересное решение...:)
2 мар 21, 08:36    [22288154]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
ВалерийЮ
Member

Откуда:
Сообщений: 23
Но мне нужно что-бы комбобох был в главной форме, а данные в подчиненной форме, как в моем примере...:) Все равно спасибо...:)
2 мар 21, 09:06    [22288162]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5181
ВалерийЮ
Но мне нужно что-бы комбобох был в главной форме, а данные в подчиненной форме, как в моем примере...:)


К сообщению приложен файл (Books–Combo_.zip - 58Kb) cкачать
2 мар 21, 11:06    [22288208]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 7257
ВалерийЮ
Но мне нужно что-бы комбобох был в главной форме, а данные в подчиненной форме, как в моем примере...:) Все равно спасибо...:)
А я хочу спросить:
а чем,в принципе, отличается предложенный вариант от того что Вы хотите?? Тем что комбо в заголовке ленточной формы (а не в области данных не нужной никому кроме Вас главной формы)и зачем аж 2 формы(главная с подчиненной),когда вполне хватит и одной:или это такой принцип-чем сложней тем "круче"
2 мар 21, 11:26    [22288217]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
ВалерийЮ
Member

Откуда:
Сообщений: 23
sdku,
Нееее...Что-круче мне не надо... Просто в этой главной форме будут две подчиненные формы которые будут брать данные от этого комбобокса...:)
2 мар 21, 11:58    [22288242]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
ВалерийЮ
Member

Откуда:
Сообщений: 23
Панург
ВалерийЮ
Но мне нужно что-бы комбобох был в главной форме, а данные в подчиненной форме, как в моем примере...:)


СПАСИБО... :)
2 мар 21, 12:08    [22288248]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
ВалерийЮ
Member

Откуда:
Сообщений: 23
sdku
ВалерийЮ
Но мне нужно что-бы комбобох был в главной форме, а данные в подчиненной форме, как в моем примере...:) Все равно спасибо...:)
А я хочу спросить:
а чем,в принципе, отличается предложенный вариант от того что Вы хотите?? Тем что комбо в заголовке ленточной формы (а не в области данных не нужной никому кроме Вас главной формы)и зачем аж 2 формы(главная с подчиненной),когда вполне хватит и одной:или это такой принцип-чем сложней тем "круче"


Все равно большое спасибо что откликнулись и помогли... :)
2 мар 21, 12:09    [22288249]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 7257
ВалерийЮ
sdku,
.... Просто в этой главной форме будут две подчиненные формы которые будут брать данные от этого комбобокса...:)
Если это две разные сущности-все правильно, если же это одна сущность, то "размазывать" её по двум таблицам есть не ICE
2 мар 21, 13:34    [22288323]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
ВалерийЮ
Member

Откуда:
Сообщений: 23
Панург
ВалерийЮ
Но мне нужно что-бы комбобох был в главной форме, а данные в подчиненной форме, как в моем примере...:)


Попробовал прицепить вторую подчиненную форму ML-Sub1. Когда в комбобоксе выбираю значение „Access“, то реагируют обе подчиненные формы. Все отлично. Но когда в комбобоксе опять выбираю значение „All books“, то тогда уже реагирует только первая подчиненная форма ML-Sub, а вторая подчиненная форма остается со значением „Access“...:( Не могли бы вы помочь еще раз…? :)

Это моя писанина…:\

Private Sub BookType_AfterUpdate()
Dim strCriteria As String
    
    If Not Me.BookType = -1 Then strCriteria = "[Type Id]=" & str(Me.BookType)
    With Me.[ML-Sub].Form
        .Filter = strCriteria
        .FilterOn = (Len(strCriteria) > 0)
    End With
    With Me.[ML-Sub1].Form
        .Filter = strCriteria
        .FilterOn = (Len(strCriteria) > 0)
    End With
    
End Sub

Private Sub BookType_AfterUpdate()
Dim strCriteria As String
    
    If Not Me.BookType = -1 Then strCriteria = "[Type Id]=" & str(Me.BookType)
    With Me.[ML-Sub].Form
        .Filter = strCriteria
        .FilterOn = (Len(strCriteria) > 0)
    End With
    
    If Not Me.BookType = -1 Then strCriteria = "[Type Id]=" & str(Me.BookType)
    With Me.[ML-Sub1].Form
        .Filter = strCriteria
        .FilterOn = (Len(strCriteria) > 0)
    End With

    End Sub


К сообщению приложен файл (Books–Combo_.rar - 94Kb) cкачать

Сообщение было отредактировано: 2 мар 21, 19:49
2 мар 21, 14:23    [22288365]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 7257
Так именно об этом и говорится:зачем столько форм если у Вас имеется 2 таблицы-одна главная [books] и вторая справочник[type]- а форм Вы хотите создать аж 3
Если же это только пример,то в нем мало данных-хотелось бы их увидеть полностью и понять что же Вы хотите сделать(какую информацию и из каких данных надо извлечь/занести)
2 мар 21, 17:10    [22288524]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
ВалерийЮ
Member

Откуда:
Сообщений: 23
sdku
Так именно об этом и говорится:зачем столько форм если у Вас имеется 2 таблицы-одна главная [books] и вторая справочник[type]- а форм Вы хотите создать аж 3
Если же это только пример,то в нем мало данных-хотелось бы их увидеть полностью и понять что же Вы хотите сделать(какую информацию и из каких данных надо извлечь/занести)


В первой подчиненной форме будут отображаться данные из одной таблицы, а во второй подчиненной форме будут отображаться данные из другой таблицы. Данные в таблицах совсем разные, кроме одного значения. И это одно общее значение указывается в комбобоксе. В этом примере, что я прислал, только сама суть того, что нужно сделать.
2 мар 21, 17:31    [22288537]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5181
ВалерийЮ,

К сообщению приложен файл (Books–Combo_.zip - 76Kb) cкачать
2 мар 21, 18:58    [22288598]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 7257
sdku

В первой подчиненной форме будут отображаться данные из одной таблицы, а во второй подчиненной форме будут отображаться данные из другой таблицы. Данные в таблицах совсем разные, кроме одного значения. И это одно общее значение указывается в комбобоксе. В этом примере, что я прислал, только сама суть того, что нужно сделать.
Для тех кто в танке, повторяю:одна таблица [type] источник данных ПоляСоСписком вторая источник ленточной формы-о какой такой "другой" таблице Вы говорите(в примере таковой нет)????
Если она имеет место быть то после обновления Combo смените источник у формы на этой таблице (по полной аналогии с примером)

Сообщение было отредактировано: 2 мар 21, 19:47
2 мар 21, 19:50    [22288635]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
ВалерийЮ
Member

Откуда:
Сообщений: 23
sdku
sdku

В первой подчиненной форме будут отображаться данные из одной таблицы, а во второй подчиненной форме будут отображаться данные из другой таблицы. Данные в таблицах совсем разные, кроме одного значения. И это одно общее значение указывается в комбобоксе. В этом примере, что я прислал, только сама суть того, что нужно сделать.
Для тех кто в танке, повторяю:одна таблица [type] источник данных ПоляСоСписком вторая источник ленточной формы-о какой такой "другой" таблице Вы говорите(в примере таковой нет)????
Если она имеет место быть то после обновления Combo смените источник у формы на этой таблице (по полной аналогии с примером)


Я же говорил что это только маленький примерчик. Потому и таблицу в этом примерчике сделал только одну. Чтобы было проще разбираться в проблеме. А натурально, когда этот примерчик заработает, тогда к этому примеру подлючу две большие таблицы с абсолютно разными данными. Где только одно поле в обоих таблицах будет одинаковым.
2 мар 21, 20:42    [22288660]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
ВалерийЮ
Member

Откуда:
Сообщений: 23
Панург
ВалерийЮ,


Когда во второй подчиненной форме в ручную снимаешь фильтр(как в рисунке), тогда все хорошо. Но автоматически фильтр не снимается.

К сообщению приложен файл. Размер - 139Kb
2 мар 21, 21:22    [22288671]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 7257
sdku

Если она имеет место быть то после обновления Combo смените источник у формы на этой таблице (по полной аналогии с примером)
Интересно!!А Вы читаете ответы???
Ну все-надоело
2 мар 21, 22:02    [22288682]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
ВалерийЮ
Member

Откуда:
Сообщений: 23
sdku
sdku

Если она имеет место быть то после обновления Combo смените источник у формы на этой таблице (по полной аналогии с примером)
Интересно!!А Вы читаете ответы???
Ну все-надоело


1.Когда на Комбобоксе значение „All books“, значит фильтр для обеих подченных форм ВЫКЛЮЧЕН.

2.Когда на Комбобоксе значение „Access“, значит фильтр для обеих подченных форм ВКЛЮЧЕН.

3.Но когда на Комбобоксе опять выбираешь значение „All books“, тогда фильтр ОТКЛЮЧАЕТСЯ только на первой подченной форме. Хотя должен ОТКЛЮЧАТЬСЯ сразу на обеих подченных формах.

4.Тогда на второй подчиненной форме фильтр приходится ОТКЛЮЧАТЬ в ручную. Как показал в рисунке.

ВОТ В ЧЕМ ВСЯ СУТЬ ЭТОЙ ПРОБЛЕМЫ… :\

К сообщению приложен файл. Размер - 139Kb
2 мар 21, 22:29    [22288694]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5181
ВалерийЮ
Когда во второй подчиненной форме в ручную снимаешь фильтр(как в рисунке), тогда все хорошо. Но автоматически фильтр не снимается.
что ты мне баки забиваешь?! Всё работает.
Я вижу, что ты вносил изменения.

Сообщение было отредактировано: 3 мар 21, 04:49
3 мар 21, 04:50    [22288777]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5181
ВалерийЮ
ОТКЛЮЧАТЬ в ручную
чтобы руки шаловливые не лезли куда не попадя и не нажимали что не надо, а так же редактировали форму как...

К сообщению приложен файл (Books–Combo_2.zip - 76Kb) cкачать
3 мар 21, 05:18    [22288778]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
ВалерийЮ
Member

Откуда:
Сообщений: 23
Панург
ВалерийЮ
ОТКЛЮЧАТЬ в ручную
чтобы руки шаловливые не лезли куда не попадя и не нажимали что не надо, а так же редактировали форму как...


Ураааааа...Все работает...ОГРОМНОЕ СПАСИБО за твое потраченное время...С меня бочка пива...
3 мар 21, 10:17    [22288847]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
ВалерийЮ
Member

Откуда:
Сообщений: 23
sdku
sdku

Если она имеет место быть то после обновления Combo смените источник у формы на этой таблице (по полной аналогии с примером)
Интересно!!А Вы читаете ответы???
Ну все-надоело


И Вам спасибо за потраченное время…В этом деле я еще чайник(кто-бы сомневался), но я стараюсь, учусь…Так что…Еще раз спасибо… :)
3 мар 21, 10:45    [22288863]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 7257
ВалерийЮ,
Мне до сих пор не ясно какие данные Вы имеете и что хотите(какую цель преследуете) и было бы намного проще если бы Вы выложили реальные данные с объяснением того что хотите получить,а может и просто четко сформулированное ТЗ
(вполне допускаю что решаемая Вами задача очень проста-может и VBA не нужен)
3 мар 21, 12:35    [22288965]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
ВалерийЮ
Member

Откуда:
Сообщений: 23
sdku
ВалерийЮ,
Мне до сих пор не ясно какие данные Вы имеете и что хотите(какую цель преследуете) и было бы намного проще если бы Вы выложили реальные данные с объяснением того что хотите получить,а может и просто четко сформулированное ТЗ
(вполне допускаю что решаемая Вами задача очень проста-может и VBA не нужен)


Преследуемая и единственная цель, это сделать фильтры, с помощью которых будут управлятся данные
на двух подчиненных формах с одного комбобокса на основной форме.
----------------------
Все было бы очень просто, если бы не значение в комбобоксе „ALL“. Я просто несумел это значение передать на подчиненные формы. Вот это и была главная проблема. И здесь уже без VBA никуда.
И пример, который прислал Панург, эту проблему решил на все 120%. Как говорится,- то что доктор прописал…
----------------------
Работать с примером который предложили Вы неполучается, потому что перекрестные запросы(это реально) на которых базируются подчиненные формы, с совсем разными данными. В этих перекрестных запросах общего есть только одно поле – которого здесь я его назвал „Тип книг“. И именно с этим типом данных комбобох будет управлять обеими субформами.
----------------------
А в этом примере, что прилал, я сделал все как можно проще, что-бы только изложить суть самой проблемы. Прислать тот кусок базы над которым я сейчас работаю, могу. Только он довольно большой. Даже в архиве васит почти 13 mb, и все на иностранном языке. Если вам подходит, то могу переслать. В этом форуме можно прикреплять такие большие файлы…?
3 мар 21, 16:32    [22289155]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 7257
ВалерийЮ

...Все было бы очень просто, если бы не значение в комбобоксе „ALL“. Я просто не сумел это значение передать на подчиненные формы. Вот это и была главная проблема. И здесь уже без VBA никуда....
источник комбо:
Me.combo.RowSource = "SELECT top 1 ' ALL' FROM tbl  UNION select фамилия from tbl"
где tbl:справочник-источник Combo
в запрос с top можно(даже нужно) добавить числовое поле со значением 0(его не может быть в кодовом поле/счетчике справочника)затем использовать это значение в скрытом столбце COMBO для отбора записей по ключевому полю справочника
после обновления combo:
if Me.combo=' все' Then  ' или combo=0
Me.Form.RecordSource ="select * from тблИсточникФормы"
Else
Me.Form.RecordSource ="select * from тблИсточникФормы where полеСвязиСоСправочником=" & Me.combo
End if
RecordSource наше фсё
3 мар 21, 18:09    [22289181]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
ВалерийЮ
Member

Откуда:
Сообщений: 23
sdku
ВалерийЮ

...Все было бы очень просто, если бы не значение в комбобоксе „ALL“. Я просто не сумел это значение передать на подчиненные формы. Вот это и была главная проблема. И здесь уже без VBA никуда....
источник комбо:
Me.combo.RowSource = "SELECT top 1 ' ALL' FROM tbl  UNION select фамилия from tbl"
где tbl:справочник-источник Combo
в запрос с top можно(даже нужно) добавить числовое поле со значением 0(его не может быть в кодовом поле/счетчике справочника)затем использовать это значение в скрытом столбце COMBO для отбора записей по ключевому полю справочника
после обновления combo:
if Me.combo=' все' Then  ' или combo=0
Me.Form.RecordSource ="select * from тблИсточникФормы"
Else
Me.Form.RecordSource ="select * from тблИсточникФормы where полеСвязиСоСправочником=" & Me.combo
End if
RecordSource наше фсё


СПАСИБО... ;)
3 мар 21, 20:53    [22289279]     Ответить | Цитировать Сообщить модератору
 Re: Combo Box  [new]
zimkon
Member

Откуда: guest_rusimport
Сообщений: 183
ВалерийЮ,
для вашего случая с фильтрами
Private Sub BookType_AfterUpdate()
        Dim strCriteria As String
        If Me.BookType = -1 Then
            DoCmd.RunCommand acCmdRemoveFilterSort
        Else
            strCriteria = "[Type Id]=" & Me.BookType
            Me.[ML-SUB].Form.Filter = strCriteria
            Me.[ML-SUB].Form.FilterOn = True
            Me.[ML-SUB1].Form.Filter = strCriteria
            Me.[ML-SUB1].Form.FilterOn = True
        End If
End Sub
20 мар 21, 22:48    [22297805]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Microsoft Access Ответить