2010-10-27 8 views
8

मेरे पास ~ 30 टेबल के साथ एक एक्सेस डेटाबेस है।Excel में किसी एक्सेस डेटाबेस से सभी तालिकाओं को निर्यात करने के लिए - प्रत्येक तालिका के लिए एक शीट

मैं Excel कार्यपुस्तिका में सभी 30 तालिकाओं को अलग-अलग चादरों में कैसे निर्यात कर सकता हूं?

मुझे कुछ वीबीए/वीबीएस कोड खोजने की उम्मीद है जो मैं इस कार्य को पूरा करने के लिए एक्सेस के भीतर से चला सकता हूं।

कोई विचार?

+2

आप अभी तक कुछ भी कोशिश की है:

यहाँ कोड है? – Buggabill

उत्तर

14

आप इस तरह कुछ करने के लिए सक्षम होना चाहिए:

Dim tbl as Tabledef 
For Each tbl in Currentdb.TableDefs 
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, tbl.name, "PathName.xls", True, tbl.name 
Next 

दूसरा tbl.name कार्यपत्रक नाम है।

8

यहां मेरा पूरा मॉड्यूल है जिसका उपयोग मैंने किया था।

Sub expotT() 
Dim td As DAO.TableDef, db As DAO.Database 
Set db = CurrentDb() 
For Each td In db.TableDefs 
    If Left(td.Name, 4) <> "msys" Then 
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, _ 
    td.Name, "C:\xExcelTables.xls", True, td.Name 
    End If 
Next 
End Sub 
+0

यह मेरे लिए बहुत उपयोगी था। मुझे जवाब कोड के साथ एक त्रुटि मिल रही थी जो मुझे बता रही थी कि "Msys *" तालिका गुम थी। मैं आपके काम की सराहना करता हूं! – Huntdogg

3

यहां उपरोक्त कोड का प्रारूपित और निश्चित संस्करण है। हमें शीट नामों में एक्सेल फ़ाइल और डीबीओ उपसर्ग में MSys तालिकाओं की आवश्यकता नहीं है। निर्यात एमएस एक्सेस डीबी या फिक्स्ड के सापेक्ष भी बनाया जा सकता है।

Sub exportTables2XLS() 
Dim td As DAO.TableDef, db As DAO.Database 
Dim out_file As String 

out_file = CurrentProject.path & "\excel_out.xls" 

Set db = CurrentDb() 
    For Each td In db.TableDefs 
    If Left(td.Name, 4) = "MSys" Then 
    '// do nothing -- skip 
    Else 
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, _ 
    td.Name, out_file, True, Replace(td.Name, "dbo_", "") 
    End If 
    Next 
End Sub 
संबंधित मुद्दे

 संबंधित मुद्दे