2013-04-11 2 views
4

Details :DoCmd.DeleteObject와 acTable의 차이점은 무엇입니까? DROP TABLE

데이터베이스에 로컬로 테이블을 생성하는 MS-Access Database 프로 시저가 있습니다. 그러나 내가 만든 테이블이 테스트되었는지 확인하고 테스트가 실패하면 작성된 다른 테이블을 삭제/삭제해야합니다. 기본적으로 롤백 절차를 추측합니다.

질문 : 테이블을 삭제하는 두 가지 방법을 통해 들어 왔지만 하나는 등 단점보다 더 많은 직업이 있는지 알아낼 수 없습니다

...

누군가가 차이가 무엇인지 말씀해 주시겠습니까?

많은 감사!

Dim cdb As DAO.Database 
Set cdb = CurrentDb 
cdb.TableDefs.Delete "aaaTest" 

답변

9
DoCmd.DeleteObject acTable, "aaaTest" 

... 그리고 ...

Dim cdb As DAO.Database 
Set cdb = CurrentDb 
cdb.Execute "DROP TABLE [aaaTest]", dbFailOnError 

...와 ...는 ... 모두 같은 일을 달성 단지 다른 방법입니다. 그들은 해당 이름 (실제 로컬 테이블 또는 테이블 링크)을 사용하여 로컬 TableDef 개체를 삭제합니다.

+0

나는 실제적인 차이가 없다는 것을 말하고있다. 괜찮아. 나는 단지 큰 차이점을 놓치지 않았 음을 확신하고 싶었다. 감사! – Justin

+0

제목에 아포스트로피가있는 ImportError 테이블을 삭제하려고 시도했지만 위의 두 번째 방법 (DROP TABLE)이 작동하지 않았습니다. 하지만 위의 첫 번째 메서드 (DeleteObject)는 정상적으로 작동했습니다. 감사! –

0

방금 ​​DropTable에서 테이블 이름에 대시가 포함 된 것을 알지 못했습니다. 나는 꽤 많았으므로 DoCmd.Rename을 사용하여 테이블을 삭제하기 전에 droptable을 사용하기 직전에 테이블의 이름을 변경했습니다. 내가 임시 파일 정리를 위해 출구에서 지우는 모든 테이블과 함께 대시가있는 15 개의 테이블이 있었기 때문에 이것은 나에게 가장 쉬운 수정이었습니다.

관련 문제