ADO_003 | Recordset , SQL DISTINCT
uno21.com의 Daily Wisdom을 PC상의 엑셀에서 항상 볼수 있게..
ADO를 시작한 이유는
많은 분들의 원격써버의 정보를 엑셀에서 처리하고 싶다는 것에
대한 답이기 때문에 하는 것..
uno21.com의 Daily Wisdom을 아래화일을 열고 인터넷과 연결된 상태에서
버튼 크릭하면 ..웹써버에 모아놓은 SQL DB상의 좋은 말들의 분류명이
콤보상자에 들어가고..
콤보상자에서 목록의 분류를 선택하면 해당 분류에 해당하는 내용이
뿌려진다
ADO를 사용하여 갖여온 정보중에는
웹에서 처리하는 문자열로 저장을 해놓아서
HTML Tag가 문자열 정보에 섞여 있어서 이것이 엑셀로 옮겨지면
해석을 하지 못하고 흉한 모양이 된다..
그래서 필요 없는 HTML Tag나 줄바꿈 문자등을 벗겨 내버린다
이런 것을 하려면 Regular Expression용 라이브러리를 참조하고 처리하면
좋겠으나 외부개체참조하기도 번거롭고 그냥 대강하나 아래와 같이 만들어서
사용하는 것도 괞찮다
ADO와 더불어 문자열처리연습도 하시고..
Function StripHTMLTags(sHtml As String) As String
On Error Resume Next
Dim lt As Long
Dim gt As Long
Dim sBuf As String
Dim sTag As String
sBuf = sHtml
lt = InStr(sBuf, "<")
gt = InStr(sBuf, ">")
Do While lt > 0 And gt > 0 And gt > lt
sTag = Mid(sBuf, lt, gt - lt + 1)
sBuf = Replace(sBuf, sTag, "")
lt = InStr(sBuf, "<")
gt = InStr(sBuf, ">")
Loop
sBuf = Replace(sBuf, " ", " ")
sBuf = Replace(sBuf, "&", "&")
sBuf = Replace(sBuf, """, """")
sBuf = Replace(sBuf, "", "#")
sBuf = Replace(sBuf, "<", "<")
sBuf = Replace(sBuf, ">", ">")
sBuf = Replace(sBuf, "%20", " ")
sBuf = Trim(sBuf)
StripHTMLTags = sBuf
End Function
ADO던 DAO를 하던 해보면..
데이타를 갖여오고 저장하고 하는 것은 몇개안되는 명령들이다
기본 개념이 안잡혀서 공연히 쫄고 겁내는 것이 DB의 접근과 처리다
물론 DB데이타를 SQL 문으로 정보분석을 하거나
저장을 하는데 있어서 여러테이블을 조합하여 처리하거나 할때는
또 다른 경험들을 요하지만 간단한 것을 갖여오고 처리하는 것은
별일이 아니다..
SQL 문으로 원하는 것을 찾아내는 구문작성이 낯섫다면
일부만 갖여다가 엑셀에서 분석처리하면 되기도 하는 것이니까..
실은 엑셀에서 범위에 접근하고 처리하고는 난이도가 훨씬 높다
그러니 엑셀을 기본으로 시작하였다면
다른 것은 하고자 하는 필요욕구가 있다면 별것이 아니니..
아무쪼록 엑셀기본을 바탕에 항상 깔아 놓고 있으시기를..
그리고 ADO, SQL을 깊이 이해하게 되면 작업이 훨씬 효율적이 된다
예를 들어서 테이블의 어떤 휠드의 내용을 모두 갖여 와야 하는데
중복되는 값을 제외하려면 엑셀에 몽땅 갖여다가 처리하기에는
교통량이 많다
하지만 SQL 문의 DISTINCT라는 키워드를 하나 알면
"SELECT DISTINCT 휠드명 FROM 테이블명"
엑셀에서의 번거로운 작업이 필요없는 것이다
SQL 문은 ADO를 하던, DAO를 하던 유용한 것이니 잘 챙기자
XLADO_003.