|
|
|
Источник записей
|
|||
|---|---|---|---|
|
#18+
здравствуйте все!!!! Большое спасибо за моральную поддержку!! А вот и вопрос У меня в первый раз возникла необходимость динамического отбора записей для формы Я представляю как сделать сам отбор, но вот с трудом понимаю, как эти записи вернуть в форму Посоветуйте Плиззз что-нибудь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 10:34 |
|
||
|
Источник записей
|
|||
|---|---|---|---|
|
#18+
Например так Где нибудь в модуле формы (на событии загрузки например) пишешь Код: plaintext 1. 2. 3. Разумеется, это не единственный способ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 10:51 |
|
||
|
Источник записей
|
|||
|---|---|---|---|
|
#18+
Конечно, не единственный, как очень многое в программировании вообще. $) Например, можно сделать очень просто и наглядно (проверено в А2000): 1.основать форму на запросе, 2.в запросе (конструктор или SQL, как кто любит) в полях условий поставить ссылки на поля формы-фильтры (сразу скажу, я делаю это через свои функции VB наподобие GetDate1(), которая просто лезет в форму и читает значение контрола {пример: Function GetStore() GetStore = [Forms]![Выбор отчета]![txtStore] End Function } потому что А2000 ругается _непониманием выражения_, если на таком запросе с фильтрами типа [Forms!]![ИмяФормы]![Date1] основывается перекрестный или диаграмма (с таким же перекрестным). ЕСЛИ КТО ЗНАЕТ, ПОЧЕМУ вылезает ошибка, ОТЗОВИТЕСЬ!!! 3. когда нужно обновить форму, делать me.requery 4. на том же запросе с уже установленными фильтрами потом удобно делать отчет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 11:04 |
|
||
|
Источник записей
|
|||
|---|---|---|---|
|
#18+
>>(сразу скажу, я делаю это через свои функции VB наподобие GetDate1(), которая просто лезет в форму и читает значение контрола Я тоже обычно так делаю, а сегодня появилась такая проблема В запросе поле со значением, я хочу отобрать два случая, ести значение - нет значения В условие поставила функцию, прописала для нее два ванианта Is Null Is Not Null Но проблема в том, что функция возвращает значения в кавычках "Is Null" "Is Not Null", а, насколько я понимаю, в условиях запроса это неприемлемо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 12:00 |
|
||
|
Источник записей
|
|||
|---|---|---|---|
|
#18+
Можно так Код: plaintext 1. 2. 3. 4. 5. 6. Тогда запрос может выглядеть так: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 12:20 |
|
||
|
Источник записей
|
|||
|---|---|---|---|
|
#18+
2Alexus12 >потому что А2000 ругается _непониманием выражения_, если на таком запросе с фильтрами типа [Forms!]![ИмяФормы]![Date1] основывается перекрестный или диаграмма (с таким же перекрестным). ЕСЛИ КТО ЗНАЕТ, ПОЧЕМУ вылезает ошибка, ОТЗОВИТЕСЬ!!! Знаю.Отзываюсь. Просто надо сделать как параметр запроса. А вот Почему - это к Биллу. Хотя могу предположить, что перекрестный запрос смотрит только строку Parametrs бля-юля As Тип - кототрой у тебя и нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 12:50 |
|
||
|
Источник записей
|
|||
|---|---|---|---|
|
#18+
>>Criteria1 = IsNull(FieldValue) Если я правильно поняла, то (FieldValue) это поле, в котором я буду делать отбор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 12:55 |
|
||
|
Источник записей
|
|||
|---|---|---|---|
|
#18+
Да. ...Where Criteria1(Table1.Field1) Вот значение Table1.Field1 и приходит в функцию Criteria1 под именем FieldValue. Но, по моему, все таки лучше сделать так как я в первом посте написал, т.е. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Надо только определиться, в какой момент менять источник записей, и вставить этот кусок в нужное место. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 13:52 |
|
||
|
Источник записей
|
|||
|---|---|---|---|
|
#18+
Вот что у меня получилось, но боюсь что не совсем правильно или совсем неправильно Private Sub Form_Load() Dim strSql As String strSql = "SELECT Подрядчики.КодП, Подрядчики.[Наименование подрядчика], Sum(Накопительная.Выполнение) AS [Sum-Выполнение], Sum(Накопительная.Сумма) AS [Sum-Сумма], Месторождения.Месторождение, Накопительная.Объект" _ & "FROM Подрядчики INNER JOIN ((Месторождения INNER JOIN Договора ON Месторождения.[Шифр месторождения] = Договора.[Шифр месторождения]) INNER JOIN Накопительная ON Договора.КодД = Накопительная.КодД) ON Подрядчики.КодП = Договора.КодП" _ & "WHERE (((Накопительная.ДатаВ) Between [txt1] And [txt2]))" _ & "GROUP BY Подрядчики.КодП, Подрядчики.[Наименование подрядчика], Месторождения.Месторождение, Накопительная.Объект" _ & "HAVING (((Подрядчики.[Наименование подрядчика]) Like " * " & psk() & " * ") And ((Накопительная.Объект) = True))" _ & "ORDER BY Подрядчики.КодП;" Me![Анализ].Form.RecordSource = strSql Me![Анализ].Form.Requery End Sub Public Function Criteria1(FieldValue As Variant) As Boolean If (Forms!АнализГл!Otb = "Is Null") Then ' Здесь твое условие (значение контрола например)' Criteria1 = IsNull(FieldValue) Else Criteria1 = Not IsNull(FieldValue) End If End Function ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 14:55 |
|
||
|
Источник записей
|
|||
|---|---|---|---|
|
#18+
не разбираясь, рекомендую вместо Like " * " & psk() & " * " писать Like psk() & " * " , и обучить полъзователей ставить "*" в начале по необходимости (писать об этом в справке, в форме, в строке состояния и т.п.), ибо при поиске в индексированных полях, в больших таблицах... да и вообще. Опять же поиск с начала строки некоторым люб. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 15:15 |
|
||
|
Источник записей
|
|||
|---|---|---|---|
|
#18+
Люди, перестаньте сопровождать звездочки пробелами. Оно так работать не будет! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 15:28 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32170827&tid=1681353]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
62ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 362ms |

| 0 / 0 |
