Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: 2003, если в поле Дата (fld_Date) равна „=Null”
 
 автор: Bruno   (30.07.2010 в 13:39)   личное сообщение
13 Кб.
 
 

Добрый день, всем!

Как сделать в отчете, если в поле Дата (fld_Date) равна „=Null” нужно, чтобы поле пол (cbo_Sex) реагировала, тоже и отобразил склонения в отчете (посещал, посещала). Заранее благодарю.

  Ответить  
 
 автор: osmor   (30.07.2010 в 14:15)   личное сообщение
 
 

поясните плиз.

  Ответить  
 
 автор: kot_k_k   (30.07.2010 в 14:47)   личное сообщение
 
 

в данном случае нужно ставить NZ(fld_Date,0) и танцевать от сюдовой

=iif(NZ(fld_Date,0)=0, " был но когда неизвестноЭ", "был ...- " & fld_Date)

  Ответить  
 
 автор: Bruno   (30.07.2010 в 17:32)   личное сообщение
 
 

Уважаемей Kot_k_k, попытки самостоятельно выстроит выражения недели никаких результатов, могу ли просить вашей помощи. Куда что?

=IIf(Year(Forms!F_1!fld_Date)<Year(Date());IIf(Right(Forms!F_1!cbo_Sex;2)="н.";" в этом году пункт ”Б“ не посещала";" в этом году пункт ”Б“ не посещал"))

  Ответить  
 
 автор: Силblч   (30.07.2010 в 17:36)   личное сообщение
 
 

б... это бл...анк строгой отчетности? если нет, то не морочьте себе время
напишите "не посещал(а)" это толерантно!

  Ответить  
 
 автор: Bruno   (30.07.2010 в 17:48)   личное сообщение
 
 

Это анкета для виз, сотрудники консульства не склоны к широким дискуссиям и компромиссам. Хотя ваша идея тоже интересная, спасибо.

  Ответить  
 
 автор: Explorer   (30.07.2010 в 17:51)   личное сообщение
 
 

сделайте два отчета мужеський и женьський
открывайте тот в котором написано как надо

бо если в отчете будет много таких полей и надписей (которые могут меняться по признакам)
замучаешься везде прописывать условия и отлавливать ошибки

  Ответить  
 
 автор: Lukas   (30.07.2010 в 18:14)   личное сообщение
 
 

Два отчета?
Я в таких случаях описываю функции в модуле отчета, где все можно "красиво разложить по-полочкам".

||
v
++

  Ответить  
 
 автор: Explorer   (30.07.2010 в 18:18)   личное сообщение
 
 

предлагая два отчета я ориентировался по примерам которые выкладывал автор вопроса.

для него это самое простое и беспроблемное решение

  Ответить  
 
 автор: Lukas   (30.07.2010 в 18:19)   личное сообщение
 
 

Понял. :)

  Ответить  
 
 автор: Explorer   (30.07.2010 в 17:49)   личное сообщение
 
 


это толерантно



и это это концептуально!

паскоку выражения варьирующиеся по признакам пола, количества (и т.п.)
должны храниться в служебных таблицах БД а не подставляться в коде

единственное возможное исключение числительные прописью (да и то падвапросом, бо не концептуально)

  Ответить  
 
 автор: Bruno   (30.07.2010 в 18:19)   личное сообщение
 
 

Спасибо, наша анкета и так с двух сторон (печатаем анкеты на принтерах, у которых есть функция “дупликс”) почти девяносто позиций, используем в db все типы данных. Нам очень нужно это выражения. Помогите люди!

  Ответить  
 
 автор: Explorer   (30.07.2010 в 18:26)   личное сообщение
 
 

сделайте два варианта отчета - для мужчин и для женщин (сотоял-состояла посещал-посещала)

  Ответить  
 
 автор: Lukas   (30.07.2010 в 18:40)   личное сообщение
16 Кб.
 
 

В качестве пробы, на "скорую ногу" =>
Смотреть/править модуль отчета.

  Ответить  
 
 автор: Bruno   (30.07.2010 в 18:58)   личное сообщение
 
 

Спасибо, это то, что надо! Прошу извините за нечеткое формулирование вопросов, одним словом - дилетант. Спасибо всем.

  Ответить  
 
 автор: Lukas   (30.07.2010 в 18:59)   личное сообщение
 
 

Там нет проверки на годы.
Правильнее будет так как-то:

Private Function fun1() As String
    Const FORM_NAME As String = "F_1"
    Const TEXT1 As String = " в этом году пункт 'Б' не посещал"
    Dim str1 As String
    Dim bln As Boolean
    
    If CurrentProject.AllForms(FORM_NAME).IsLoaded Then
        With Forms(FORM_NAME)
            bln = IsNull(.Controls("fld_Date"))
            If Not bln Then bln = bln Or Year(.Controls("fld_Date")) < Year(Date)
            If bln Then
                If .Controls("cbo_Sex") = "Жен." Then
                    str1 = TEXT1 & "а"
                Else
                    str1 = TEXT1
                End If
            Else
                str1 = Format$(.Controls("fld_Date"), "dd mmmm yyyy")
            End If
        End With
    End If
    fun1 = str1
End Function

  Ответить  
 
 автор: Explorer   (30.07.2010 в 19:09)   личное сообщение
43 Кб.
 
 

нет проверки на Null - "не посещало"

у автора поле признака пола может содержать Null (или любое другое значение отличное от Муж. Жен.

:)

--------------
шуть шуть пошаманил ==>>>
на тему как хранить признак пола

ну и вообще

  Ответить  
 
 автор: Lukas   (30.07.2010 в 19:12)   личное сообщение
 
 

:)
А что вы хотите от трупика, который при попытке включить настольную лампу вырубает компьютер?

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList