2016-07-13 5 views
-1

매크로를 사용하여 가져온 테이블을 몇 개 가져 와서 일부 SQL 쿼리를 실행합니다. 현재 파일을 가져 오기 전에 파일 이름을 변경해야하며 가져온 후에 자동으로 이름을 변경하려고합니다.VBA를 사용하여 액세스 테이블 이름 변경

예를 들어 SSIReport()이라는 파일이 있는데이 테이블을 SSI_Data으로 변경하려고합니다. 한 가지 문제는 SSIReport의 대괄호 안에 파일이 생성 된 날짜가 있으므로 변경되는 날짜입니다. 여기에 가져 오기 오류 테이블을 삭제하는 데 사용하는 코드가 약간 있습니다. 이름 바꾸기 테이블로 변환하는 방법이 있는지 확실하지 않습니다.

For Each otable In CurrentDb.TableDefs 
If otable.Name Like "*ImportErrors*" Then 
CurrentDb.TableDefs.Delete otable.Name 
End If 
Next otable 
+0

파일 이름을 변경하면서 DoCmd.Rename을 시도했지만 필자는이를 포함시키는 방법을 잘 모르고있었습니다. 또한 가져 오기 오류 테이블을 삭제하는 루프가 있습니다. – Rukgo

+0

테이블이 있다고 말하면 tblMatrix라고 말하면 부분 단어가 생길 수 있으므로 SSI와 테이블 이름을 SSI_Data라고 말하면이 테이블에서 파일 이름을 확인한 다음 docmd.transferspreadsheet를 사용하여 반환 할 수 있습니다. 미주리에서 액세스 할 수 없으므로 100 % 확신 할 수 없습니다. https://msdn.microsoft.com/en-us/library/office/ff844793.aspx –

+1

DoCmd.Rename strNewName, acTable, strOldName' 작동합니다. 나는 실제 문제가 뭔지 잘 모르겠다. – Andre

답변

0

파일을 가져 오기 전에 이름을 바꾸는 것이 훨씬 쉽습니다.

+0

이렇게 간단하게 처리 할 방법이 없습니까? – Rukgo

+0

매크로가있는 것은 아니지만 매크로는 사용하지 않습니다. – Gustav

+0

VBA 코딩 측면을 포함하는 매크로가 올바르다 고 할 때? – Rukgo

0

이와 비슷한 작업이 필요합니다.

Dim dbCurr As DAO.Database 
Dim tdfCurr As DAO.TableDef 

Set dbCurr = CurrentDb() 
For Each tdfCurr In dbCurr.TableDefs 
If Left$(tdfCurr.Name, 4) = "dbo_" Then 
tdfCurr.Name = Mid$(tdfCurr.Name, 5) 
End If 
Next tdfCurr 
관련 문제