Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как организовать проверку, заполнены ли поля? / 10 сообщений из 10, страница 1 из 1
14.09.2003, 21:06
    #32264550
Deenamo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать проверку, заполнены ли поля?
Нужно проверить на заполненность несколько полей, перед выполнением команды INSERT.
Я написал такую вот процедурку:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Private Sub NewButton_Click()
  Dim EverythingsOK As Boolean
  EverythingsOK = False
  
  If ((Len(EventTimeBox.Value) =  0 ) And (Len(EventTimeField.Value) =  0 )) Then
    MsgBox  "Please select time for the event." 
  ElseIf Len(SubjectField.Value) =  0  Then
    MsgBox  "Please type the event subject." 
  ElseIf Len(RepeatCombo.Value) =  0  Then
    MsgBox  "Please select event repeat." 
  Else
    EverythingsOK = True
  End If
  
  If EverythingsOK = True Then
    Dim EventDateString As String
    EventDateString = ActiveXCalendar.Day &  "/"  & ActiveXCalendar.Month &  "/"  & ActiveXCalendar.Year
    Dim EventTimeString As String
    If Len(EventTimeField.Value) <>  0  Then
      EventTimeString = EventTimeField.Value
    ElseIf Len(EventTimeBox.Value) <>  0  Then
      EventTimeString = EventTimeBox.Value
    End If
    DoCmd.RunSQL ( "INSERT INTO Events (event_date, event_time, event_subject, event_comments, event_location, carrier_id, repeat_id) VALUES (#"  & EventDateString &  "#, #"  & EventTimeString &  "#, '" & SubjectField & "', '" & CommentsField & "', '" & LocationField & "', "  & CarrierCombo &  ", "  & RepeatCombo &  ")" )
    MsgBox  "Event added." 
  End If
End Sub


Но почему-то все мои старания с проверками и флагом "EverythingsOK" тупо игнорируются, и прога сразу лезет выполнять команду INSERT...

Что я недопонимаю?
...
Рейтинг: 0 / 0
14.09.2003, 21:23
    #32264556
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать проверку, заполнены ли поля?
Надо писать не Len(XXX.Value) = 0, а XXX Is Null.
...
Рейтинг: 0 / 0
14.09.2003, 21:24
    #32264557
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать проверку, заполнены ли поля?
То есть IsNull(XXX). :^)
...
Рейтинг: 0 / 0
14.09.2003, 21:29
    #32264560
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать проверку, заполнены ли поля?
1. Len - функция, возвращающая длину строки.
Len(EventTimeField.Value) - это ты Гетца начитался. Len(Null) возвратит либо Null, либо ошибку, по обстановке, точнее не знаю, не пробовал за ненадобностью.

2. Проверь, стоит ли в начале модуля строка
Option Explicit
и нет ли в прототипе этой процедуры
On Error Resume Next

Возможно, дело в этом.
...
Рейтинг: 0 / 0
14.09.2003, 21:48
    #32264564
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать проверку, заполнены ли поля?
2ВС.
И что же это, я опоздал? :(
:)
...
Рейтинг: 0 / 0
14.09.2003, 22:00
    #32264571
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать проверку, заполнены ли поля?
Ты не опоздал, твое 1 было раскрытием моего ответа. :^)
...
Рейтинг: 0 / 0
15.09.2003, 03:20
    #32264605
Deenamo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать проверку, заполнены ли поля?
Да, действительно, через IsNull всё работает!

Странно, ведь кроме Len(xxx)=0 я еще пробовал xxx.value="" и xxx.value=Null, тоже не работало... :-/

VB/VBScript я хоть и знаю, но в VBA я новичек :-)

Спасибо!
...
Рейтинг: 0 / 0
15.09.2003, 10:28
    #32264784
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать проверку, заполнены ли поля?
xxx.value="" - это False, потому что value не равно "".

xxx.value=Null - это Null, потому что любое выражение, содержащее Null, дает в результате Null. Далее, If Null срабатывает как If False.
...
Рейтинг: 0 / 0
15.09.2003, 10:41
    #32264802
Sfagnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать проверку, заполнены ли поля?
можно и
Код: plaintext
Len(Nz(text,""))= 0 
...
Рейтинг: 0 / 0
15.09.2003, 10:49
    #32264809
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать проверку, заполнены ли поля?
Тогда уж можно и
Nz(text,"") = ""
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как организовать проверку, заполнены ли поля? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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