나눔터  
  HOME > 나눔터 > 묻고답하기 > 액세스
액세스
액세스에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내

작성자:  

 qqqq (qazz111)

추천:  1
파일:     조회:  2053
제목:   Instr 문의
     
  문의 드립니다

필드내에서 특정 문자(문자, 숫자, 부호 포함)의 첫번째 위치는
Instr로 간단하게 찾아지는데, 두번째와 세번째 위치는 어떻게 찾을 수 있는지요?

예) IP주소 필드 값에 10.50.60.123 형태로 데이터가 있을 경우

- 첫번째 "."의 위치는 instr([IP주소],".")로 하면 3의 값을 얻음
- 두번째 "."의 위치 값과 세번째 위치값은 어떻게?

그리고,,,,이 필드내 "."의 총갯수는 어떻게 구할 수 있을까요?


 
[불량 게시물 신고]  
qqqqInStr([IP주소],".")
InStr(1,[IP주소],".")
InStr(2,[IP주소],".")  의 값이 모두 동일하게 첫번째 위치 값이 나오네요
08-08 (16:04)
삭제 ■신고
황동준
    Dim LString As String   '분리할 문자열
    Dim LArray() As String  '분리값을 담을 배열
    Dim SCount As Integer   '분리자의 개수
    
    LString = "10.50.60.123"
    
    SCount = UBound(Split(LString, "."))
    
    MsgBox "분리자 [.]의 개수는" & SCount & "개 입니다."
        
    LArray = Split(LString, ".", SCount + 1)
    
    For i = 0 To SCount
        MsgBox i + 1 & "번째 : " & LArray(i)
    Next i
08-09 (16:27)
삭제 ■신고
qqqq오 !......제겐 심오하네요 !
하지만 주말에 도전해 볼게요!!
고맙습니다 동준님!
08-09 (17:14)
삭제 ■신고
황동준다시작성합니다 
    Dim LString As String   '분리할 문자열
    LString = "10.50.60.123"

    첫번째 = Left(LString, InStr(LString, ".") - 1)

    두번째 = Mid(LString, InStr(1, LString, ".") + 1, InStr(InStr(1, LString, ".") + 1, LString, ".") - InStr(1, LString, ".") - 1)

    세번째 = Mid(LString, InStr(InStr(1, LString, ".") + 1, LString, ".") + 1, InStr(InStr(InStr(1, LString, ".") + 1, LString, ".") + 1, LString, ".") - InStr(InStr(1, LString, ".") + 1, LString, ".") - 1)

    네번째 = Mid(LString, InStrRev(LString, ".") + 1, Len(LString))
08-09 (17:23)
삭제 ■신고
황동준위의 네번째함수는 뒤에서 카운트 하여 마지막 점 이후의 값을 가져옵니다.
예) 10.50.60.123.000 ==> 000

아래의 함수는 3번째 점 이후의 모든값을 가져 옵니다.
예) 10.50.60.123.000 ==> 123.000

    네번째 = Right(LString, Len(LString) - InStr(InStr(InStr(1, LString, ".") + 1, LString, ".") + 1, LString, "."))
08-09 (17:23)
삭제 ■신고
qqqq아네,,,,,고맙습니다~~08-10 (19:47)
삭제 ■신고
        
  

작성일 : 2019-08-08(16:01)
최종수정일 : 2019-08-08(16:01)