2012-12-27 131 views
2

我想在Excel中使用VBA連接到數據庫,但不知道錯在哪裏。有什麼建議麼?在Excel中嘗試使用VBA連接到數據庫時出現錯誤

這是代碼。我想要得到的查詢結果,並把隨後到Excel表格中的同時

Private Sub CommandButton1_Click() 

Dim dd As String 
Dim nn As String 

OMCS_Connection.Show 

If OMCS_Connection.CommandButton1 = False Then 

dd = OMCS_Connection.TextBoxa.Value 
nn = OMCS_Connection.TextBoxb.Value 
End If 

Dim order_number As String 
order_number = TextBox1.Text 
Dim sql_query As String 

Set ad = CreateObject("ADODB.Connection")  'create and open ODBC connection 
ad.ConnectionString = "ODBC;DRIVER=IBM DB2 ODBC DRIVER - DB2COPY1; DSN=ODRPTDB;UID = " & dd & " ; PWD = " & nn & ";" 
'UID=me" 
ad.Open 

sql_query = "SELECT" & _ 
       "CMOT.MFGNO AS MANUFACTURING_NUMBER," & _ 
       "'BOX' AS ORDER_TYPE," & _ 
       "CMOT.IDCUS AS CUSTOMER_ID," & _ 
       "CMOT.WTCTN AS WT_CUSTOMER_ID," & _ 
       "CMOT.PLORN AS ORDER_NUMBER," & _ 
       "CMOT.IDMAC AS MACHINE_TYPE," & _ 
       "CMOT.IDSMN AS MODEL_NUMBER," & _ 
       "' ' AS NEW_MACHINE_TYPE," & _ 
       "' ' AS NEW_MODEL_NUMBER," & _ 
       "CMOT.BOXSH AS PSSD," & _ 
       "CMOT.ALDPF AS RSSD," & _ 
       "COGUS.ITPDC AS REGION" & _ 
       "FROM DB2COATG.COS1S0T0 CMOT" & _ 
       "INNER JOIN COGUS.WTCTN_CONVERSION COGUS" & _ 
       "ON(COGUS.WTCTN = CMOT.WTCTN AND COGUS.REGIO = CMOT.REGIO)" & _ 
       "WHERE CMOT.PLORN IN (" & order_number & ");" 


Set RS = ad.Execute(sql_query)  'execute query 
+1

嗨,我可以知道錯誤信息是什麼? – Larry

+0

嗨拉里,這是我得到的錯誤: SQL30081N檢測到通信錯誤。正在使用的通信協議:「TCP/IP」。正在使用通信API:「SOCKETS」。檢測到錯誤的位置:「127.0.0.1」。檢測錯誤的通信功能:「selectForConnectTimeout」。協議特定的錯誤代碼:「0」,「*」,「*」。 SQLSTATE = 08001 –

回答

0

之前ad.open嘗試插入下面的行 ad.CommandTimeout=0 這應該防止定時查詢,如果它運行長。 如果這不起作用,這將有助於瞭解哪一行代碼正在拋出錯誤。你知道如何思考代碼嗎?

+0

非常感謝,我只是使用了另一個代碼,它運行良好。 –

相關問題