2009-05-29 25 views
5

से एक SQL तालिका बनाएं समस्या यह है कि मुझे वेरिएबल, "tblName" में दर्ज किया गया तालिका नाम नहीं मिल सकता है, इसके बजाय मुझे "tblName" नाम की एक तालिका के साथ सही ढंग से नामित डेटाबेस मिलता है।एक्सेल वीबीए

क्या "tblName" में नाम चुनने का कोई तरीका है या नाम बदलने के बाद किसी नाम को उपयोगकर्ता नाम दर्ज करने के बाद इसे बदलने का कोई तरीका है?

Private Sub CreateDatabaseFromExcel() 

    Dim dbConnectStr As String 
    Dim Catalog As Object 
    Dim cnt As ADODB.Connection 
    Dim dbPath As String 
    Dim tblName As String 

    'Set database name in the Excel Sheet 
    dbPath = ActiveSheet.Range("B1").Value 'Database Name 
    tblName = ActiveSheet.Range("B2").Value 'Table Name 

    dbConnectStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath & ";" 

    'Create new database using name entered in Excel Cell ("B1") 
    Set Catalog = CreateObject("ADOX.Catalog") 
    Catalog.Create dbConnectStr 
    Set Catalog = Nothing 

    'Connect to database and insert a new table 
    Set cnt = New ADODB.Connection 
    With cnt 
     .Open dbConnectStr 
     .Execute "CREATE TABLE tblName ([BankName] text(50) WITH Compression, " & _ 
       "[RTNumber] text(9) WITH Compression, " & _ 
       "[AccountNumber] text(10) WITH Compression, " & _ 
       "[Address] text(150) WITH Compression, " & _ 
       "[City] text(50) WITH Compression, " & _ 
       "[ProvinceState] text(2) WITH Compression, " & _ 
       "[Postal] text(6) WITH Compression, " & _ 
       "[AccountAmount] decimal(6))" 
    End With 
    Set cnt = Nothing 

End Sub 
+0

धन्यवाद, यह एक आकर्षण की तरह काम करता है। –

+0

मदद करने के लिए हमेशा खुश हैं। आंखों का एक अलग सेट कभी दर्द नहीं करता है। –

+4

क्या आपको इसे "उत्तर" के रूप में स्वीकार नहीं करना चाहिए? ;) – Oorang

उत्तर

12

बदलें इस लाइन:

.Execute "CREATE TABLE tblName ([BankName] text(50) WITH Compression, " & _ 
इस के लिए

:

.Execute "CREATE TABLE " & tblName & " ([BankName] text(50) WITH Compression, " & _