2014-07-22 2 views
-1

데이터베이스 데이터 추출기에 대한 사용자 정의 폼이 있습니다. 여기에는 사용자가 데이터를 추출하고자하는 부품 번호를 입력하기위한 TextBox가 있습니다. 대량 추출기가 실행되기 전에 사용자가 부품 번호의 올바른 형식을 입력했는지 확인하고 싶습니다. 다음 5 개 개의 숫자 userform 텍스트 상자 항목의 형식 유효성 검사

내가 처음에 다음과 같은 검증을 시도

3 개 숫자 1 영문자 또는 1 Hyphon 이렇게하려면 나는 텍스트를 특정 형식으로 입력되었는지 확인하는 코드가 필요합니다 :

'validate that box is not empty 

If TextBox1.Value = "" Then 

MsgBox ("Sorry, you need to provide an Amount") 

TextBox1.SetFocus 

Exit Sub 

End If 


'validate that box is numeric 

If Not IsNumeric(TextBox1.Value) Then 

MsgBox ("Sorry, must enter a numer") 

TextBox1.SetFocus 

Exit Sub 

End If 

그러나 그런 다음 네 번째 위치에 알파벳 문자 또는 하이 폰이있을 수 있다는 사실을 깨달았습니다.

나는 어떤 제안이라도 고맙게 생각합니다.

미리 감사드립니다. 필요에 따라

+0

무엇 지금까지 해봤 니? 어쨌든 여기에 특정 위치에서 숯불을 얻을보세요 : http://stackoverflow.com/questions/17127272/getting-char-from-string-at-specified-index-in-the-visual-basic 그러면 테스트 할 수 있습니다 가 '그 상자가 그런 다음 " 만약 TextBox1.Value ="비어 있지 확인 : caracters이, 또는 당신이 문자열을 추출하고이를 분석 할 수 있습니다 ('ISNUMERIC은()'등) – smagnan

+0

@smagnan 난 이미 다음을 있는 MsgBox는 TextBox1.SetFocus 종료 하위 종료 ("죄송합니다, 당신은 금액을 제공해야") 만약 'valida 테 그 상자는 숫자입니다 경우 있는 MsgBox하지 ISNUMERIC (TextBox1.Value) (​​"죄송합니다하는 numer에를 입력해야합니다") TextBox1.SetFocus 종료 하위 끝 하지만 그때 깨달았 나는 4 번째 위치에있는 알파벳 문자 또는 하이 폰 문자를 고려해야하므로 코드를 바꿀 필요가 있었지만 이렇게 익숙하지 않았기 때문에 어떻게해야 할 지 잘 모르겠다. get-char 메소드를 사용할 수있을 것이다. 감사합니다. –

답변

1

이 입력을 확인하는 초보자 방법은 입력 문자열을 잘라 및 부품을 비교하는 것입니다 :

Const alpha as String = "abcdefghijklmnopqrstuvwxyz-" 
Dim strValue as String 
Dim msg as String 
strValue = TextBox1.Value 

'Make sure it's the right LENGTH 
If Len(strValue) <> 9 Then 
    msg = "Please enter the ID as 3 numeric, 1 alpha/hyphen, 5 numeric" 
    GoTo EarlyExit 
End If 

'Check the first three for numeric: 
If Not IsNumeric(Left(strValue), 3) Then 
    msg = "The first three characters should be numeric" 
    GoTo EarlyExit 
End If 

'Check the middle character, assuming case not sensitive: 
If Instr(1, alpha, Lcase(Mid(strValue, 4, 1)) = 0 Then 
    msg = "The fourth character should be hyphen or alphabet" 
    GoTo EarlyExit 
End If 

'Check the last four characters 
If Not IsNumeric(Right(strValue, 4)) Then 
    msg = "The last four characters should be numeric" 
    GoTo EarlyExit 
End If 

'If you've gotten here, then the input is validated: 
Exit Sub 

EarlyExit: 
MsgBox msg 
TextBox1.SetFocus 
End Sub 

3 숫자 1 개 영문자 또는 1 Hyphon 다음 5 개의 숫자를

+1

약간의 수정 작업을했습니다. 감사합니다. –

관련 문제