2012-12-27 2 views
2

Excel에서 VBA를 사용하여 데이터베이스에 연결하려고하지만 잘못된 점을 알지 못합니다. 어떤 제안?VBA를 사용하여 데이터베이스에 연결할 때 오류가 발생합니다.

다음은 코드입니다. 나는 쿼리 결과를 얻을 ad.open 다음 줄 ad.CommandTimeout=0 가 오랫동안 실행하는 경우이 타이밍에서 쿼리를 방지해야한다를 삽입 시도하기 전에 동시에

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

안녕 Larry, 여기에 오류가 있습니다 : SQL30081N 통신 오류가 감지되었습니다. 사용중인 통신 프로토콜 : "TCP/IP". 사용중인 통신 API : "소켓 (SOCKETS)". 오류가 발견 된 위치 : "127.0.0.1". 오류를 감지하는 통신 기능 : "selectForConnectTimeout". 프로토콜 고유의 오류 코드 : "0", "*", "*". SQLSTATE = 08001 –

답변

0

에서 엑셀 시트에 다음 넣어합니다. 그래도 문제가 해결되지 않으면 어떤 코드 줄에서 오류가 발생하는지 알 수 있습니다. 코드를 단계별로 실행하는 방법을 알고 있습니까?

+0

정말 고마워, 방금 다른 코드를 사용했는데 제대로 작동했다. –

관련 문제