2015-02-02 2 views
1

처음에는 Access에서 숙련 된 프로그래머가 아닙니다. Excel에서 파일을 가져올 때 액세스로 자동 생성되는 가져 오기 오류 테이블을 비활성화 할 수있는 방법이 있습니까?Ms 액세스에서 가져 오기 오류 테이블 사용 안 함

내가하고 싶은 이유는 Excel 파일이 다른 위치에 대한 데이터가있는 약 4000 행을 가지고 있기 때문에 현재보고를해야하는 위치가 가져 오기 오류에 대해 걱정하지 않는 이유입니다. 또한, 그것은 단지 하나의 행에서 오류를 감지하고 내가이 오류 테이블을 생성하는 것을 계속할 vba 코드에서 테이블을 가져 오기 때문에 결국 큰 묶음으로 끝납니다.

몇 가지 조사를했지만 가져 오기 파일 형식을 수정하여 문제를 해결할 수있는 답변을 찾았지만 사용 중지 방법에 대한 답변을 얻지 못했습니다.

누구든지 도움을받을 수 있다면 감사합니다.

편집 :

다음 코드 @parfait에서 제안 트릭을 한 후

. 다른 제안도 환영합니다.

Sub dropImportError() Dim tbl_name As DAO.TableDef, str As String With CurrentDb For Each tbl_name In .TableDefs str = tbl_name.Name If InStr(str, "ImportErrors") <> 0 Then str = "DROP TABLE

+0

어떻게 가져? 'DoCmd.TransferSpreadsheet'와 함께 VBA를 사용한다면 tablesdefs를 사용하여 오류 가져 오기 테이블을 검색하고 가져온 후에 그것을 삭제하는 코드를 자동화 할 수 있습니까? 리본의 외부 데이터 탭을 통해 마법사를 사용하는 경우 마지막 단계에서 테이블 분석 상자의 선택을 취소하십시오. – Parfait

+0

@ Parpet - 답장을 보내 주셔서 감사합니다. 그래서 거기에 액세스 inbuilt 옵션을 그것을 해제하는 것으로 가정합니다. 나는 그걸 알고 싶었어. 또한 제안 해 주셔서 감사합니다. 다음 코드는 속임수 였지만 필요하다면 코드를 즉석에서 만들 수 있다면 감사하겠습니다. 아니면 대답으로 게시 할 것입니다. 감사 – iveedee

+0

서브 dropImportError() DAO.TableDef, .TableDefs의 각 tbl_name를 들어 CurrentDb 함께 문자열 로서 STR로 어둡게 tbl_name에 STR = tbl_name.Name InStr이 경우 (STR "ImportErrors") <> 0이어서 STR = "DROP TABLE" "& str &"' " DoCmd.RunSQL str 끝 부분 다음 끝으로 끝 서브 – iveedee

답변

3

" DoCmd.RunSQL str End If Next End With End Sub 그냥이 문제를 통해 자신을왔다 "&이 & STR은"절차의 가져 오기를 실행 한 후 나는 즉시 독립 실행 형 모듈에 저장 한 다음 코드를 실행했습니다. 매크로, 프로 시저 또는 함수에 DeleteImportErrors 함수를 붙여 넣기 만하면됩니다.

모듈 코드 :

Public Function DeleteImportErrors() 
    Dim n As Integer 
    Dim db As DAO.Database 

    Set db = CurrentDb 
    For n = db.TableDefs.Count - 1 To 0 Step -1 
    ' loop through all tables 
     If InStr(1, db.TableDefs(n).Name, "ImportError") > 0 Then 
     ' if table is import errors table 
      DoCmd.DeleteObject acTable, db.TableDefs(n).Name 
      ' delete table 
     End If 
    Next n 
End Function 
관련 문제