2013-04-29 2 views
2

По сути, я пытаюсь найти, если пользователь в настоящее время вошел в систему, прежде чем создавать новую строку с TimeIn, но с кодом, когда он написан, пользователь может проверять несколько раз без проверка (поле TLog_TImeOut равно null). Мой код приведен ниже.DLookup In Access 2010 с использованием IsNull и нескольких критериев

If Not IsNull(DLookup("[TLog_TimeIn]", "TIMELOG", "IsNull(TLog_TImeOut)= True And NetID = '[TempVars]![CurrentID]'")) Then 
MsgBox ("Please Check out!") 
DoCmd.Close acForm, "CHECKIN", acSaveNo 
Exit Sub 
Else 
    NetID = [TempVars]![CurrentID] 
    TLog_TimeIn = Now() 
    MsgBox ("Thanks for checking in!") 
    DoCmd.Close acForm, "CHECKIN", acSaveYes 
Exit Sub 
End If 

ответ

3

Ваш DLOOKUP должно быть больше, как это:

If Not IsNull(DLookup("[TLog_TimeIn]", "TIMELOG", "TLog_TimeOut Is Null And NetID = '" & Forms![TempVars]![CurrentID] & "'")) Then 

В частности ваше состояние -

IsNull(TLog_TImeOut)= True And NetID = '[TempVars]![CurrentID]' 

следует рассматривать как WHERE условия в SQL заявление.

Во-первых, если это возможно, вы хотите, чтобы избежать функции доступа по причинам скорости (не имеет большого значения в данном конкретном случае), поэтому с помощью Is Null лучше IsNull(XXX)=True но особенно эта часть:

NetID = '[TempVars]![CurrentID]' 

Это происходит '! [TempVar] [CurrentID] буквально сравнить NetID в строку так, что вы хотите, чтобы построить эту строку так:

NetID = '" & Forms![TempVars]![CurrentID] & "'" 

(Предполагая, что [TempVars] скрытая форма, которую вы используете, чтобы сохранить переменную значения), которые, если CurrentID BOB на этой форме:

NetID = 'BOB' 

Это то, что вы хотите.

+0

Спасибо Dan !!!!! Тем не менее, TempVars - это функция в доступе 2010, которая позволяет передавать переменные из одной формы в другую ... просто избавилась от форм! и это сработало !!! –

+0

Отлично! Вы, дети, и ваши новомодные [TempVars] - почему в свое время нам приходилось идти в гору в снегу, чтобы использовать скрытую форму для этой же цели, и мы были рады этому! –

Смежные вопросы