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

 다몰라^|^ (dhvltm2001)

추천:  0
파일:     에러메세지.bmp (234.9KB) 조회:  2695
제목:   [RE]데이타베이스안의 모든 테이블명을 알수 있는 방법?
     
  질문을 다시 올립니다.
==============[런투선님 글에 대한 답변입니다]==============

질의로 테이블명단을 얻으려면 MSysObjects라는 시스템 테이블을 이용하기도 하는데...
액세스 옵션에서 숨긴개체보기를 하면 보입니다.

SELECT MSysObjects.Name, MSysObjects.ParentId
FROM MSysObjects
WHERE (((MSysObjects.ParentId)=251658241) AND ((Left([name],4))<>"MSys" And (Left([name],4))<>"~sq_"));

그러나 필드리스트는 DAO의 tableDef개체나 ADOX의 Catalog개체를 이용해야 합니다.
따라서 사용자 정의함수를 사용하는데....
아마 오라클에서 작업을 하시는 것 같은데 저는 경험이 없어서....
아래 코드에서....
CurrentProject, CurrentData는 액세스 응용프로그램 개체라 당연히 오라클에서는 
참조되지 않습니다.

다만 액세스에서는 다음과 같이 합니다.
ListField()가 실행려면 ADOX라이브러리가 참조되어 있어야 합니다.

Sub ListField()
   Dim col As New Column
   Dim tbl As New Table
   Dim cat As New ADOX.Catalog

"카탈로그 열기
    " 카탈로그를 엽니다.
    " 연결문자열은 
    " 액세스에서는 편의상 CurrentProject.Connection에서 가져옵니다. 
    "그런데 CurrentProject는 액세스 응용프로그램 개체이기 때문에 
    " 오라클에서는 오류가 나올겁니다. 따라서 
    " "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb;" 과 같이 주시면...

   cat.ActiveConnection = CurrentProject.Connection

   Set tbl = cat.Tables("테이블이름")
    
   For Each col In tbl.Columns
    Debug.Print col.Name
   Next
End Sub


액세스 이용자에게 참고로 2000버전에서는 CurrentData란 개체가 추가되어서...
다음과 같이 테이블 이름을 얻을 수 있습니다.

Sub AllTables()
    Dim obj As AccessObject, dbs As Object
    Set dbs = Application.CurrentData
    
    For Each obj In dbs.AllTables            
        Debug.Print obj.Name
    Next obj
End Sub



==============[김규경님 글에 대한 답변입니다]==============
이와같은 코드을 이용하여 VB에서 사용하니 에러가 나는군요.
좋은 답변 부탁드립니다. 참고로 전 VB6.0에 OFFICE 2000을 사용합니다.
그리고 에러 메세지를 첨부합니다.
 
[불량 게시물 신고]  
        
  

작성일 : 2001-11-14(17:54)
최종수정일 : 2001-11-14(17:54)
 


 ◎ 관련글

  제 목   작성자   날짜
데이타베이스안의 모든 테이블명을 알수 있는 방법? 런투선 2001-08-24
[RE]데이타베이스안의 모든 테이블명을 알수 있는 방법? 김규경 2001-08-25
[RE]데이타베이스안의 모든 테이블명을 알수 있는 방법? 다몰라^|^ 2001-11-14