powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как организовать проверку, заполнены ли поля?
10 сообщений из 10, страница 1 из 1
Как организовать проверку, заполнены ли поля?
    #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
Как организовать проверку, заполнены ли поля?
    #32264556
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Надо писать не Len(XXX.Value) = 0, а XXX Is Null.
...
Рейтинг: 0 / 0
Как организовать проверку, заполнены ли поля?
    #32264557
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
То есть IsNull(XXX). :^)
...
Рейтинг: 0 / 0
Как организовать проверку, заполнены ли поля?
    #32264560
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Len - функция, возвращающая длину строки.
Len(EventTimeField.Value) - это ты Гетца начитался. Len(Null) возвратит либо Null, либо ошибку, по обстановке, точнее не знаю, не пробовал за ненадобностью.

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

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

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

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

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

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


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