2012-11-26 6 views
10
Dim oConn As ADODB.Connection 
Private Sub ConnectDB() 
Set oConn = New ADODB.Connection 
Dim str As String 
str = "DRIVER={MySQL ODBC 5.2.2 Driver};" & _ 
              "SERVER=sql100.xtreemhost.com;" & _ 
              "PORT=3306" & _ 
              "DATABASE=xth_9595110_MyNotes;" & _ 
              "UID=xth_9595110;" & _ 
              "PWD=myPassword;" & _ 
              "Option=3" 
''' error ''' 
oConn.Open str 
End Sub 

Private Sub InsertData() 
Dim rs As ADODB.Recordset 
Set rs = New ADODB.Recordset 
ConnectDB 
sql = "SELECT * FROM ComputingNotesTable" 
rs.Open sql, oConn, adOpenDynamic, adLockOptimistic 
Do Until rs.EOF 
    Range("A1").Select 
    ActiveCell = rs.Fields("Headings") 
    rs.MoveNext 
Loop 
rs.Close 
oConn.Close 
Set oConn = Nothing 
Set rs = Nothing 
End Sub 

PHP में समान चीजें करना, मैं सफलतापूर्वक MySQL सर्वर में लॉग इन कर सकता हूं। मैंने ओडीबीसी कनेक्टर स्थापित किया है। लेकिन उपर्युक्त वीबीए कोड में, मैं असफल रहा। एक त्रुटि बदल जाती है। (कोड को देखने जहां त्रुटि मौजूद है)एक्सेल में वीबीए MySQL डेटाबेस से कैसे कनेक्ट हो सकता है?

$connect = mysql_connect("sql100.xtreemhost.com","xth_9595110","myPassword") or die(mysql_error()); 

mysql_select_db("myTable",$connect); 

उत्तर

4

रणजीत के कोड ने टिन द्वारा रिपोर्ट की गई एक ही त्रुटि संदेश का कारण बना दिया , लेकिन ओडीबीसी चालक के साथ सीएन.ओपेन को अपडेट करने के बाद काम किया। ओडीबीसी डेटा स्रोत प्रशासक में ड्राइवर्स टैब की जांच करें। माइन ने कहा "MySQL ओडीबीसी 5.3 यूनिकोड चालक" तो मैंने तदनुसार अद्यतन किया।

+1

आपको बहुत धन्यवाद वास्तव में बहुत लंबे समय पहले पोस्ट कोड का परीक्षण करने के लिए !!! –

8

VBA का यह टुकड़ा मेरे लिए काम किया:

Sub connect() 
    Dim Password As String 
    Dim SQLStr As String 
    'OMIT Dim Cn statement 
    Dim Server_Name As String 
    Dim User_ID As String 
    Dim Database_Name As String 
    'OMIT Dim rs statement 

    Set rs = CreateObject("ADODB.Recordset") 'EBGen-Daily 
    Server_Name = Range("b2").Value 
    Database_name = Range("b3").Value ' Name of database 
    User_ID = Range("b4").Value 'id user or username 
    Password = Range("b5").Value 'Password 

    SQLStr = "SELECT * FROM ComputingNotesTable" 

    Set Cn = CreateObject("ADODB.Connection") 'NEW STATEMENT 
    Cn.Open "Driver={MySQL ODBC 5.2.2 Driver};Server=" & _ 
      Server_Name & ";Database=" & Database_Name & _ 
      ";Uid=" & User_ID & ";Pwd=" & Password & ";" 

    rs.Open SQLStr, Cn, adOpenStatic 

    Dim myArray() 

    myArray = rs.GetRows() 

    kolumner = UBound(myArray, 1) 
    rader = UBound(myArray, 2) 

    For K = 0 To kolumner ' Using For loop data are displayed 
     Range("a5").Offset(0, K).Value = rs.Fields(K).Name 
     For R = 0 To rader 
      Range("A5").Offset(R + 1, K).Value = myArray(K, R) 
     Next 
    Next 

    rs.Close 
    Set rs = Nothing 
    Cn.Close 
    Set Cn = Nothing 
End Sub 
+0

अपने कोड के लिए धन्यवाद। लेकिन मैं अटक गया हूं जिसमें मुझे नहीं पता कि सर्वर क्या होना चाहिए। मैं Xtreemhost के MySQL का उपयोग कर रहा हूं और मैं "sql100.xtreemhost.com" का उपयोग कर रहा हूं। Xtreemhost समर्थन का कहना है कि यह सर्वर के लिए नाम है। तब मुझे क्या करना चाहिए? –

+0

क्या आपने अपने एक्सेल शीट के सेल बी 2 में अपना सर्वर नाम रखने की कोशिश की है ?? –

+0

हां, मैंने माना है कि सर्वर का नाम "sql100.xtreemhost.com" है लेकिन ड्राइवर के लिए, मैंने इस तरह के कोड लिखे हैं: "ड्राइवर = {MySQL ओडीबीसी 5.1.11 चालक}", मेरे संस्करण के अनुसार मशीन। मैं "सीएन ओपन" में फंस गया था और त्रुटि वही है: "रन-टाइम त्रुटि -214746725 9 (80004005) स्वचालन त्रुटि निर्दिष्ट त्रुटि" –

1

सक्षम करें Microsoft ActiveX डेटा ऑब्जेक्ट 2.8 लाइब्रेरी

Dim oConn As ADODB.Connection 
Private Sub ConnectDB()  
Set oConn = New ADODB.Connection  
oConn.Open "DRIVER={MySQL ODBC 5.1 Driver};" & _   
"SERVER=localhost;" & _   
"DATABASE=yourdatabase;" & _   
"USER=yourdbusername;" & _  
"PASSWORD=yourdbpassword;" & _  
"Option=3" 
End Sub 

वहाँ बाकी यहाँ है: http://www.heritage-tech.net/908/inserting-data-into-mysql-from-excel-using-vba/

+1

ने डेटा ऑब्जेक्ट लाइब्रेरी को सक्षम किया है। और मुझे आश्चर्य है कि अगर SERVER = localhost, एप्लिकेशन को कैसे पता चलेगा कि मेरा SQL सर्वर xtreemhost SQL पर है? अभी भी वही त्रुटि है: "रन-टाइम त्रुटि -2147467259 (80004005) स्वचालन त्रुटि निर्दिष्ट त्रुटि" –

+0

मैंने कोशिश की और त्रुटि मिली: "डेटा स्रोत का नाम नहीं मिला और कोई डिफ़ॉल्ट ड्राइवर निर्दिष्ट नहीं किया गया" – hammythepig

4

किसी भी व्यक्ति के लिए सिर्फ एक साइड नोट जो इस पूछताछ पर ठोकर खा रहा है ... मेरा ऑपरेटिंग सिस्टम 64 बिट है - इसलिए निश्चित रूप से मैंने 64 बिट MySQL ड्राइवर डाउनलोड किया है ... हालांकि, मेरे कार्यालय अनुप्रयोग 32 बिट हैं ... एक बार जब मैंने 32 बिट संस्करण डाउनलोड किया, तो त्रुटि दूर हो गई और मैं आगे बढ़ सकता था।

+1

क्या ड्राइवर? और आपने इसे कहां से डाउनलोड किया?मुझे खेद है, लेकिन मैं MySQL से बात करने के लिए एक्सेल पाने की कोशिश करने के लिए नया हूं। मेरे पास 64 बिट मशीन और 32 बिट ऑफिस के साथ एक ही सेटअप है, इसलिए मुझे संदेह है कि मेरी समस्या आपके जैसा ही हो सकती है। – lukehawk

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