2

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
4

1 に答える 1

0

ad.open の前に次の行を挿入してみてください ad.CommandTimeout=0 。これにより、長時間実行された場合にクエリがタイムアウトするのを防ぐことができます。それでもうまくいかない場合は、コードのどの行がエラーをスローしているかを知ることが役立ちます。コードをステップ実行する方法を知っていますか?

于 2012-12-29T02:11:09.377 に答える