2014-01-26 6 views
5

테이블 (Access 2010)에 이미 일련 번호가 있는지 확인하는 동안 오류 메시지가 표시됩니다.액세스 테이블에 값이 있는지 확인하는 방법

If CurrentDb.OpenRecordset("Select count(*) from Table_Name where vSerial='" & Forms!Form_Name!vSerial & "';").Fields(0) > 0 Then 
MsgBox ("Serial number already in use") 
Else 
Me.ctrl_register.Pages(1).Enabled = True 
Me.ctrl_register.Pages(1).SetFocus 
End If 

내가 잘못 뭐하는 거지 :

여기에 내가 사용하고 코드인가?

두 개의 다른 테이블에서 동일한 코드를 사용하고 있는데 그 차이점을 찾을 수 없습니다. 테이블 간의 유일한 차이점은 테이블의 데이터 수입니다.

누군가 올바른 방향으로 나를 가리킬 수 있습니까?

Access에서 런타임 오류 3464가 발생했습니다 - 기준 식의 데이터 형식 missmatch.

변수 vSerial은 숫자로 정의됩니다.

미리 감사드립니다.

답변

4

vSerial은 정수 값이며 ''를 쿼리에 사용했으면 제거하십시오. 따옴표는 문자열 값에 사용됩니다.

If CurrentDb.OpenRecordset("Select count(*) from Table_Name where vSerial=" & Forms!Form_Name!vSerial & ";").Fields(0) > 0 Then 
    MsgBox ("Serial number already in use") 
Else 
    Me.ctrl_register.Pages(1).Enabled = True 
    Me.ctrl_register.Pages(1).SetFocus 
End If 
또한이 방법을 사용할 수 있습니다
2

:

If DCount("vSerial", "from Table_Name", "vSerial=" & Forms!Form_Name!vSerial) > 0 Then 
    MsgBox ("Serial number already in use") 
Else 
    Me.ctrl_register.Pages(1).Enabled = True 
    Me.ctrl_register.Pages(1).SetFocus 
End If 
관련 문제