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

 열심맨 (ojk)

추천:  1
파일:     조회:  2106
제목:   [RE]업데이트 완료 한 개수를 알수있을까요?
     
  해당관련 소스입니다.

Private Sub 택배송장가져오기_Click()


    '선택한 파일이 존재하는지 검사
    StrPathC = CurrentProject.Path & "\xlsTdata\"
    Dim MyFile As String

    MyFile = Dir(StrPathC & "택배사배송파일.xls")
    If MyFile = "" Then
        MsgBox "해당 파일이 존재하지 않습니다.         " & vbCrLf & vbCr & "해당 파일이 있어야 할 위치 -> " & StrPathC & "택배사배송파일.xls", vbCritical, " 안내 "
        Exit Sub
    End If
    

    '엑세스 에러멘트 안나오게
    DoCmd.SetWarnings 0
    
    '기존 테이블에 있는 자료 먼저 삭제
    DoCmd.RunSQL "Delete * From 임시택배송장테이블"
    
    '택배사데이타 테이블로 가져오기
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "임시택배송장테이블", StrPathC & "택배사배송파일.xls", True
    aaa = DCount("ID", "임시택배송장테이블")
    MsgBox "택배사 배송파일 가져오기 성공!       " & vbCrLf & vbCr & "가져온 데이타 : " & aaa & "개        ", vbInformation, " 안내"
    
    
    '주문번호 없는 레코드는 삭제
    DoCmd.RunSQL "Delete * From 임시택배송장테이블 where isnull(주문번호)"
    bbb = DCount("ID", "임시택배송장테이블")
    MsgBox "가져온 데이타중 주문번호 없는 데이타 삭제!       " & vbCrLf & vbCr & "삭제한 데이타 : " & aaa - bbb & "개" & vbCrLf & vbCr & "결과 : 정상적으로 가져온 데이타는 " & bbb & "개 입니다.       ", vbInformation, " 안내"

    '주문테이블에 송장번호만 업데이트 하기
    DoCmd.RunSQL "UPDATE 주문테이블 INNER JOIN 임시택배송장테이블 ON 주문테이블.접수코드 = 임시택배송장테이블.물품코드 SET 주문테이블.송장번호 = [운송장번호]"

    MsgBox "택배사 송장번호 -> 주문테이블에 " & bbb & "개 저장 성공!        ", vbInformation, " 안내"

End Sub
 
[불량 게시물 신고]  
황동준정리된 임시택배송장테이블의 레코드가 모두 업데이트 된다면 작성하신 코드로 잘 동작하지 싶은데요?  만약, 조건에 의해 임시테이블의 일부 레코드만 업데이트 된다면 아래 코드를 참조하세요.07-19 (17:47)
삭제 ■신고
황동준QueryDef.RecordsAffected 속성

가장 최근에 호출된 Execute 메서드의 영향을 받는 레코드 수를 반환합니다.

구문 : expression.RecordsAffected

expression : QueryDef 개체를 나타내는 변수입니다.

비고 : Execute 메서드를 사용하여 QueryDef 개체에서 실행 쿼리 (실행 쿼리: 데이터를 복사하거나 변경하는 쿼리입니다. 실행 쿼리에는 추가 쿼리, 삭제 쿼리, 테이블 만들기 쿼리 및 업데이트 쿼리가 있습니다. 데이터베이스 창에서는 이러한 쿼리 이름 옆에 느낌표(!)가 표시됩니다.)를 실행할 경우 RecordsAffected 속성에는 삭제, 업데이트 또는 삽입된 레코드 수가 포함됩니다.
07-19 (17:47)
삭제 ■신고
황동준'주문테이블에 송장번호만 업데이트 하기
    Dim strSQL As String
 
    strSQL = "UPDATE 주문테이블 INNER JOIN 임시택배송장테이블 ON 주문테이블.접수코드 = 임시택배송장테이블.물품코드 SET 주문테이블.송장번호 = [운송장번호];"
 
    With CurrentDb
        .Execute strSQL
        MsgBox "택배사 송장번호 -> 주문테이블에 " & .RecordsAffected & "개 저장 성공!        ", vbInformation, " 안내"
    End With
07-19 (17:49)
삭제 ■신고
황동준추가로 변수 선언이 빠진게 많네요.
계산이 잘 안될수도 있습니다.

그리고 마지막으로 간단한 꼼수로... 업데이트 쿼리 직전에
DoCmd.SetWarnings -1
쓰셔서 시스템 메세지를 받아 보시는것두 괜찮아 보입니다.
07-19 (17:55)
삭제 ■신고
열심맨감사합니다~
황동준 선생님~
알려주신 비책대로 해보겠습니다.
정말로 감사드립니다.
즐거운 하루 되세요~~ ^^
07-19 (18:26)
삭제 ■신고
열심맨복 많이 받으시고요~~ ^^07-19 (18:26)
삭제 ■신고
열심맨황동준 선생님~

알려주신대로 소스 사용해보고 결과보니 100% 업데이트 잘되고
굳입니다~
정말 정말 감

그런데요... 궁금중 하나...
서점에 가서 엑세스 책을 잘 사는 편입니다
하지만 황동준 선생님 처럼
노하우 내용을 담은 책은 없습니다

그냥 엑세스에 관해서 
엑세스는 이런 프로그램이고 이렇게 사용 하면 됩니다
정도의 수준(?) 이더라고요..

정말로 vba 를 사용하여 프로그람 짜는 책은 본적이 없습니다
만약 있다면 알려주세요
당장 구매 압니다.. ㅋ

다시 한번 감사 드립니다...
07-19 (23:59)
삭제 ■신고
열심맨위에글 스마트폰으로 작성했더니 오타 많네요~
죄송합니다~
07-20 (00:02)
삭제 ■신고
황동준책은 아시는데로 입문용 정도 밖에 안되는거 같더라구요.
구글 검색으로 해외사이트에서 많은 정보를 접하실수 있습니다. 저역시 프로그래밍을 제데로 알고 머리속에서 나오는 답변이 아니라.. 여기저기 찾아보고 시키는데로 해보고 되면 답변 달아드리곤 합니다 (영어를 못해서 엄청 헤맵니다 ㅋ)
제가아는 국내사이트 중에서는 네이버카페 "엑온" 추천드립니다. 빠르고 정확하고 깊이있는 답변을 받으실수 있습니다.
https://cafe.naver.com/xpath
07-20 (13:38)
삭제 ■신고
열심맨감사합니다.~ ^^07-22 (20:20)
삭제 ■신고
        
  

작성일 : 2018-07-19(12:14)
최종수정일 : 2018-07-19(12:17)
 


 ◎ 관련글

  제 목   작성자   날짜
업데이트 완료 한 개수를 알수있을까요? 열심맨 2018-07-19
[RE]업데이트 완료 한 개수를 알수있을까요? 열심맨 2018-07-19