Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Фильтр для табличной формы / 16 сообщений из 16, страница 1 из 1
27.07.2003, 17:52
    #32219078
TRoUbLEs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр для табличной формы
И снова я.
Собственно сабж. Как это сделать? А то у меня все переходит в ленточную форму, а мне бы нужна табличная.
...
Рейтинг: 0 / 0
27.07.2003, 18:38
    #32219082
Alexanderik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр для табличной формы
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Dim frm As Form
    frm.DefaultView =  0  ' - Простая форма. (Значение по умолчанию.) Каждый раз отображается одна запись. '

    frm.DefaultView =  1  '1- Ленточная форма . В форме одновременно выводятся несколько записей (сколько уместится в текущем окне). 
                                    Каждая запись выводится в собственной копии области данных формы. '

    frm.DefaultView =  2  '2-Таблица . Поля формы выводятся в формате электронной таблицы (по строкам и столбцам).' 

frm.Filter= "bla-bla" 
frm.FilterOn=True


...
Рейтинг: 0 / 0
27.07.2003, 18:40
    #32219084
TRoUbLEs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр для табличной формы
Спасибо, сейчас попробую.
...
Рейтинг: 0 / 0
27.07.2003, 19:02
    #32219090
TRoUbLEs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр для табличной формы
Написал, но не помогло. Выдаешь ошибку 91. :((
Вот код:
Private Sub Form_Open(Cancel As Integer)
Dim frm As Form
frm.DefaultView = 2
frm.Filter = "[Себестоимость]![Производство]=[Forms]![Выбор_товара]![Производство]"
End Sub
...
Рейтинг: 0 / 0
27.07.2003, 19:03
    #32219091
TRoUbLEs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр для табличной формы
Забыл написать, что Debug останавливается вот на этой строке:
...
frm.DefaultView = 2
...
...
Рейтинг: 0 / 0
27.07.2003, 19:06
    #32219092
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр для табличной формы
вместо

frm.Filter = "[Себестоимость]![Производство]=[Forms]![Выбор_товара]![Производство]"

надо

frm.Filter = "[Себестоимость]![Производство] =" & [Forms]![Выбор_товара]![Производство]


ну а тип формы мона указать в кнструкторе
...
Рейтинг: 0 / 0
27.07.2003, 19:12
    #32219093
TRoUbLEs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр для табличной формы
Собственно говоря у меня есть код, который работает и фильтр срабатывает, только форма имеет не Табличное предствавление, а ленточное или вообще Одиночное. :(((
Вот код:
Private Sub ОткрытьФорму_Click()
On Error GoTo Err_ОткрытьФорму_Click

Dim stDocName As String
Dim stLinkCriteria

stDocName = "Себестоимость"

If Eval("[Forms]![Выбор_товара]![Производство] Is Not Null") Then
stLinkCriteria = "[Себестоимость]![ПроизводствоКод]=[Forms]![Выбор_товара]![Производство]"
End If
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_ОткрытьФорму_Click:
Exit Sub

Err_ОткрытьФорму_Click:
MsgBox Err.Description
Resume Exit_ОткрытьФорму_Click

End Sub

То Вадя:
Щас попробую.
В конструкторе я указываю тип формы, но если отрабатывает вышеприведенный код, то она отображается либо в ленточной, либо в обычной форме.
...
Рейтинг: 0 / 0
27.07.2003, 19:16
    #32219094
TRoUbLEs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр для табличной формы
То Вадя:
Не получаештся. Он даже не доходит до этой строки. :( Ошибка возникает в вышеприведенной строке.
"Object Variable or With block variable not set"
...
Рейтинг: 0 / 0
27.07.2003, 20:03
    #32219098
Нуф-нуф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр для табличной формы
TRoUbLEs, ну это от того, что ты переменной frm ничего не присвоил (ссылку на форму). Надо после Dim еще строку добавить:
Set frm = Me.Form

Да и зачем тебе вообще переменная? Попробуй "Me".
Типа:
Private Sub Form_Open(Cancel As Integer)
Me.Filter = "[Себестоимость]![Производство] =" & [Forms]![Выбор_товара]![Производство]
Me.Filter = True
End Sub

Только на событие открытия тоже работать ничего не будет, так как форма еще не загружена. Попробуй на событие Load (загрузка) посадить...
...
Рейтинг: 0 / 0
27.07.2003, 20:19
    #32219102
TRoUbLEs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр для табличной формы
То Нуф-Нуф:
Спасибо, огромное! Помогло!
Только надо было не Me.Filter = True, а Me.FilterOn = True :) Это до меня дошло, после того, как в восьмой раз не получилось.
Еще раз спасибо.
...
Рейтинг: 0 / 0
27.07.2003, 20:32
    #32219106
TRoUbLEs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр для табличной формы
Так, теперь не понятно, почему при нажатии на кнопку, Аксес открывает ее в виде Обычной формы, а не ввиде таблицы? Хотя, если открыть ее просто кликнув на форме, то открывается в табличной форме. Что в коде открытия не так?
Код:
Dim stDocName As String

stDocName = "Себестоимость"
DoCmd.OpenForm stDocName
...
Рейтинг: 0 / 0
27.07.2003, 20:34
    #32219108
TRoUbLEs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр для табличной формы
Извините, вопрос снимается. Понял.
DoCmd.OpenForm stDocName, acFormDS
...
Рейтинг: 0 / 0
27.07.2003, 20:48
    #32219109
Нуф-нуф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр для табличной формы
TRoUbLEs, да, на счет Me.Filter = True эт я скосяпорил :) Сорри за семь раз нервных матов в мой адрес
...
Рейтинг: 0 / 0
27.07.2003, 20:53
    #32219111
TRoUbLEs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр для табличной формы
Блин, опять у меня вопрос. :(
Как сделать "расширенный фильтр"? Т.е. фильтр, где будет отбираться не только Производство, но и Товар. По отдельности все работает, а вместе - не фига. :(
Код рабочий:
-------------
If Eval("[Forms]![Выбор_товаров]![Производство] Is Null and [Forms]![Выбор_товаров]![Товар] Is Not Null") Then
Me.Filter = "[Себестоимость]![ТоварКод]=" & [Forms]![Выбор_товаров]![Товар]
Me.FilterOn = True
End If
-------------
А вот этот код уже не работает:
-------------
If Eval("[Forms]![Выбор_товаров]![Производство] Is Not Null and [Forms]![Выбор_товаров]![Товар] Is Not Null") Then
Me.Filter = "[Себестоимость]![ТоварКод]=" & [Forms]![Выбор_товаров]![Товар] And "[Себестоимость]![ПроизводствоКод]=" & [Forms]![Выбор_товаров]![Производство]
Me.FilterOn = True
End If
-------------
Пробовал заключить в скобки - не помогает.
Me.Filter = ("[Себестоимость]![ТоварКод]=" & [Forms]![Выбор_товаров]![Товар]) And ("[Себестоимость]![ПроизводствоКод]=" & [Forms]![Выбор_товаров]![Производство])
Как сделать такой фильтр?
--------
То Нуф-Нуф:
Да ладно, бывает.
...
Рейтинг: 0 / 0
27.07.2003, 20:58
    #32219113
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр для табличной формы
найди отличия

Me.Filter = "[Себестоимость]![ТоварКод]=" & [Forms]![Выбор_товаров]![Товар] And "[Себестоимость]![ПроизводствоКод]=" & [Forms]![Выбор_товаров]![Производство]


Me.Filter = "[Себестоимость]![ТоварКод]=" & [Forms]![Выбор_товаров]![Товар] & " And [Себестоимость]![ПроизводствоКод]=" & [Forms]![Выбор_товаров]![Производство]
...
Рейтинг: 0 / 0
27.07.2003, 21:01
    #32219114
TRoUbLEs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр для табличной формы
То Вадя:
Ага, нашел, спасибо. :)
Ну не силен я пока в Аксесе и не всегда отслеживаю операторы конкатенации. :)) СеньксЪ. Усе работаИть.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Фильтр для табличной формы / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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