2008-10-06 15 views
12

से तालिका निर्माण डीडीएल क्या माइक्रोसॉफ्ट एक्सेस (2007) से तालिका निर्माण डीडीएल को पुनर्प्राप्त करने का कोई आसान तरीका है या क्या मुझे टेबल संरचना को पढ़ने के लिए इसे स्वयं VBA का उपयोग करके कोड करना है?माइक्रोसॉफ्ट एक्सेस

मेरे पास लगभग 30 टेबल हैं जो हम ओरेकल को पोर्ट कर रहे हैं और यदि हम एक्सेस परिभाषाओं से तालिकाओं को बना सकते हैं तो यह जीवन को आसान बना देगा।

उत्तर

17

अन्य सुझावों के लिए धन्यवाद। जब मैं इंतजार कर रहा था तो मैंने ऐसा करने के लिए कुछ वीबीए कोड लिखा था। यह सही नहीं है, लेकिन मेरे लिए नौकरी की।

Option Compare Database 
Public Function TableCreateDDL(TableDef As TableDef) As String 

     Dim fldDef As Field 
     Dim FieldIndex As Integer 
     Dim fldName As String, fldDataInfo As String 
     Dim DDL As String 
     Dim TableName As String 

     TableName = TableDef.Name 
     TableName = Replace(TableName, " ", "_") 
     DDL = "create table " & TableName & "(" & vbCrLf 
     With TableDef 
      For FieldIndex = 0 To .Fields.Count - 1 
       Set fldDef = .Fields(FieldIndex) 
       With fldDef 
        fldName = .Name 
        fldName = Replace(fldName, " ", "_") 
        Select Case .Type 
        Case dbBoolean 
         fldDataInfo = "nvarchar2" 
        Case dbByte 
         fldDataInfo = "number" 
        Case dbInteger 
         fldDataInfo = "number" 
        Case dbLong 
         fldDataInfo = "number" 
        Case dbCurrency 
         fldDataInfo = "number" 
        Case dbSingle 
         fldDataInfo = "number" 
        Case dbDouble 
         fldDataInfo = "number" 
        Case dbDate 
         fldDataInfo = "date" 
        Case dbText 
         fldDataInfo = "nvarchar2(" & Format$(.Size) & ")" 
        Case dbLongBinary 
         fldDataInfo = "****" 
        Case dbMemo 
         fldDataInfo = "****" 
        Case dbGUID 
         fldDataInfo = "nvarchar2(16)" 
        End Select 
       End With 
       If FieldIndex > 0 Then 
       DDL = DDL & ", " & vbCrLf 
       End If 
       DDL = DDL & " " & fldName & " " & fldDataInfo 
       Next FieldIndex 
     End With 
     DDL = DDL & ");" 
     TableCreateDDL = DDL 
End Function 


Sub ExportAllTableCreateDDL() 

    Dim lTbl As Long 
    Dim dBase As Database 
    Dim Handle As Integer 

    Set dBase = CurrentDb 

    Handle = FreeFile 

    Open "c:\export\TableCreateDDL.txt" For Output Access Write As #Handle 

    For lTbl = 0 To dBase.TableDefs.Count - 1 
     'If the table name is a temporary or system table then ignore it 
     If Left(dBase.TableDefs(lTbl).Name, 1) = "~" Or _ 
     Left(dBase.TableDefs(lTbl).Name, 4) = "MSYS" Then 
      '~ indicates a temporary table 
      'MSYS indicates a system level table 
     Else 
      Print #Handle, TableCreateDDL(dBase.TableDefs(lTbl)) 
     End If 
    Next lTbl 
    Close Handle 
    Set dBase = Nothing 
End Sub 

मैंने कभी भी वीबी प्रोग्रामर होने का दावा नहीं किया।

+0

दशमलव क्षेत्रों – Peter

+0

के लिए काम नहीं कर रहा कल्पना कर सकते हैं कि आप जोड़ सकते हैं: प्रकरण dbDecimal fldDataInfo = "number" मामले बयान में । जैसा कि मैंने कहा, मैं वीबी प्रोग्रामर नहीं हूं। –

+0

मुझे Access2007 – DJDave

2

मैं इस किया है:

वहाँ एसक्यूएल सर्वर तक पहुंच से "अपसाइज़िंग" के लिए एक उपकरण है। ऐसा करें, फिर स्क्रिप्ट उत्पन्न करने के लिए उत्कृष्ट SQL सर्वर उपकरण का उपयोग करें।

http://support.microsoft.com/kb/237980

+0

यह प्रासंगिक नहीं है! –

+1

@iDevlop - यह * आईएस * प्रासंगिक है, लेकिन शायद मैंने इसे सही समझा नहीं है। मूल प्रश्न पूछता है कि क्या स्क्रिप्ट बनाने का कोई तरीका है या इसे हाथ से लिखा जाना चाहिए। यदि आप मेरे निर्देशों का पालन करते हैं, तो आप एमएस एसक्यूएल सर्वर आपके लिए स्क्रिप्ट उत्पन्न करते हैं। आपको अभी भी एक्सेस के लिए हाथ से ट्विक करना होगा, लेकिन SQL सर्वर चाल आपको 90% प्राप्त करेगी। –

0

आप एक ODBC डेटा स्रोत के लिए टेबल निर्यात करने के लिए Access में निर्यात सुविधा का उपयोग कर सकते हैं। ओरेकल डेटाबेस में एक ओडीबीसी डेटा स्रोत सेट करें और फिर "टेबल्स" टैब में तालिका पर राइट क्लिक करें और निर्यात चुनें। ओडीबीसी "फ़ाइल स्वरूपों" में से एक है - फिर यह सामान्य ओडीबीसी संवाद लाएगा।

1

आप स्कीमा जानकारी प्राप्त करने के लिए एडीओएक्स में देखना चाहेंगे। एडीओएक्स का उपयोग करके आप चाबियाँ, विचार, रिलेशनशिप इत्यादि जैसी चीजें प्राप्त कर सकते हैं।

दुर्भाग्यवश मैं वीबी प्रोग्रामर नहीं हूं, लेकिन तालिका स्कीमा पर पहुंचने के लिए एडीओएक्स का उपयोग करके वेब पर कई उदाहरण हैं।

2

ओरेकल के एसक्यूएल डेवलपर माइग्रेशन वर्कबेंच का उपयोग करें।

एक्सेस डेटाबेस को ओरेकल में here पर कनवर्ट करने पर एक पूर्ण ट्यूटोरियल है। यदि इसके बाद आप केवल संरचनाएं हैं, तो आप सेक्शन 3.0 पर ध्यान केंद्रित कर सकते हैं।

+0

में काम करने के लिए Dim fldDef As ऑब्जेक्ट (फील्ड नहीं) का उपयोग करना था उपर्युक्त लिंक टूटा हुआ है। यह सहायक हो सकता है: http://www.oracle.com/technetwork/database/migration/access-084991.html – Somu

+0

यह अब और काम नहीं करेगा, SQLDeveloper जावा 8 का उपयोग करता है, जो ओडीबीसी पुल का समर्थन नहीं करता है। – notzippy

0

पार्टी के लिए थोड़ा देर हो चुकी है, लेकिन मैं एक्सेस डेटाबेस के लिए डीडीएल उत्पन्न करने के लिए RazorSQL का उपयोग करता हूं।

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