2017-01-18 2 views
0

У меня есть следующая настройка кода vb в одной из моих форм. Я устанавливаю текстовое поле, в котором пользователь может выполнять поиск по номеру CN, но у меня возникает проблема. Если пользователь ничего не вводит в текстовое поле, и они нажимают кнопку «Поиск», им предлагается ввести CN # (это то, что я хочу). Если пользователь вводит CN #, мой запрос найдет CN # с его деталями (это то, что я хочу). Если моя проблема заключается в том, что пользователь вводит неверный CN #, запрос все равно будет всплывать, но таблица запросов пуста. Я пытаюсь установить поле проверки, которое ограничивает то, что можно ввести, или позволяет пользователю узнать, что введенный CN # неверен.Проверка доступности VB-MS для текстового поля

Private Sub cmdSearch_Click() 
    If Nz(txtCN, "") <> "" Then 
     DoCmd.OpenQuery "querySearchCN_CE", acViewNormal, acReadOnly 
     'DoCmd.OpenQuery "query_CO_CE", acViewNormal, acReadOnly 
     'DoCmd.OpenQuery "querySearchCN_2010_2015_CE", acViewNormal, acReadOnly 
     'DoCmd.OpenQuery "querySearchCN_2016_CE", acViewNormal, acReadOnly 
    Else 
     'If Nz(txtReportDate, "") = "" Then 
     MsgBox "NOTICE! Please enter a CN #" 
     Exit Sub 
    End If 
End Sub 
+1

это не код VB.NET. Нет DoCmd. Вероятно, вам нужен тег 'access-vba' – Plutonix

+0

@Plutonix, спасибо, сэр! – KKP

+1

Вам следует рассмотреть возможность использования ComboBox вместо текстового поля. Постройте его, чтобы получить его значения из таблицы, содержащей ваши действительные CN # s. В свойствах ComboBox установите для параметра «Ограничить список» значение «Да». – tlemaster

ответ

0

Вы можете добавить функцию DCOUNT для проверки входного текста перед тем, как продолжить работу с кодом. Если count возвращает 0, вы можете предположить, что нет записей, соответствующих введенным критериям.

Private Sub cmdSearch_Click() 
    If Nz(txtCN, "") <> "" Then 

     If DCount("fldField", "tblTable", "fldField = " & txtCN) > 0 Then 
      DoCmd.OpenQuery "querySearchCN_CE", acViewNormal, acReadOnly 
      'DoCmd.OpenQuery "query_CO_CE", acViewNormal, acReadOnly 
      'DoCmd.OpenQuery "querySearchCN_2010_2015_CE", acViewNormal, acReadOnly 
      'DoCmd.OpenQuery "querySearchCN_2016_CE", acViewNormal, acReadOnly 
     Else 
      MsgBox "You have entered an invalid CN #" 
     End If 
    Else 
     'If Nz(txtReportDate, "") = "" Then 
     MsgBox "NOTICE! Please enter a CN #" 
     Exit Sub 
    End If 
End Sub