2012-10-05 188 views
0

所以,我必须在我的实习中编写一段代码,将一些excel工作表与MySQL数据库链接起来,并保持更新,到目前为止,我有这个,但它一直给我错误。你有没有看到任何错误? 感谢您的阅读。连接到Excel中的Mysql数据库

我得到的错误是:运行时错误-2147217900自动化错误。

PS:我是很新的VBA

Dim server_name As String 
Dim database_name As String 
Dim user As String 
Dim Password As String 
Dim rs As adodb.Recordset 
Dim naam As String 
Dim oConn As adodb.Connection 


Public Sub getSerieNummer() 

Dim result As String 
Dim b As Long 
Dim strSQL As String 

naam = Range("C1").Value 

server_name = "servername" 
database_name = "dbname" 
user_id = "idname" 
Password = "password" 

Set oConn = New adodb.Connection 
oConn.Open "SERVER=" & server_name _ 
& ";PORT=3306" _ 
& ";DATABASE=" & database_name _ 
& ";UID=" & user_id _ 
& ";PWD=" & Password & _ 
";DSN=name_in_odbc;" 

strSQL = "SELECT [serial_number] FROM view_aix WHERE [name] ='" & naam & "';" 
Set rs = oConn.Execute(strSQL) 

b = 0 
With rs 
    Do Until .EOF 
    b = b + 1 
    result = !serial_number 
    rs.MoveNext 
    Loop 
End With 
    oConn.Close 
    rs.Close 
Set rs.ActiveConnection = Nothing 
Set oConn = Nothing 
Range("C2").Value = result 

End Sub 
+1

您需要提供错误的详细信息..它甚至连接? ('naam'必须单引号,如果它是一个字符串的话) –

+0

是否有必要编写代码...如果没有的话请通过本教程http://helpdeskgeek.com/office-tips/excel-to-mysql/ – Shubhansh

+0

在我的sql字符串中插入单引号后仍然出现相同的错误。我想我必须编写它,因为Excel表已经创建好了,我必须从Excel数据库中的某些单元格中插入数据。我认为没有编码就无法做到这一点。 – user1722742

回答

0

的MySQL不支持 “[” 改为使用 “`”。

也许是你的连接字符串的问题。

ODBC连接型式

Driver={mySQL};Server=localhost;Option=16834;Database=myDataBase; 

OLEDB连接型式

Provider=MySQLProv;Data Source=mydb;User Id=myUsername;Password=myPassword;