#vba #ms-access-2016
Вопрос:
Таблица содержит столбец «Код» и пытается соответствовать текстовому окну формы доступа, если данные в текстовом поле совпадают с данными в столбце «Код», он должен сказать, что данные существуют.. прошу вашей любезной помощи.я пытался, но, похоже, ошибся
ecode = Me.code.Text
Dim dupsql
dupsql = "SELECT Code FROM [BookingTable]WHERE Code ='" amp; ecode amp; "'"
'Debug.Print dupsql
If dupsql = ecode Then
MsgBox " The Entered Code is already in Use! ", vbInformation
end if
Комментарии:
1. попытка использовать Dlookup, Dim datafind В качестве строки datafind = DLookup(«Код», «Таблица бронирования») ‘Отладка. Распечатайте datafind, Если datafind = ecode, То MsgBox » Введенный код уже используется!», Vbинформация Заканчивается, Если
Ответ №1:
Инструкция SELECT SQL используется для открытия объекта набора записей. Ваш код не открывает объект набора записей. Просто ссылка на переменную, содержащую строку SQL, ничего не делает.
Не нужен объект набора записей. Агрегатной функцией домена DLookup может служить.
If Not IsNull(DLookup("Code", "BookingTable", "Code='" amp; Me.Code amp; "'") Then
MsgBox " The Entered Code is already in Use! ", vbInformation
End If
Или постоянный счет.
If DCount("*", "BookingTable", "Code='" amp; Me.Code amp; "'") > 0 Then
Комментарии:
1. спасибо за ваши указания .. в соответствии с вашим предыдущим вопросом вы предложили использовать Dlookup, и я попробовал это сработало .. .большое спасибо
Ответ №2:
Я использовал следующий код, и он работает.
ecode = Me.code.Text
Dim datafind As String
datafind = Nz(DLookup("[Code]", "BookingTable", "Code = '" amp; ecode amp; "'"), 0)
Debug.Print datafind
If datafind = ecode Then
MsgBox " The Entered Code is already in Use! ", vbInformation
end if