電子書籍の厳選無料作品が豊富!

iseriesのDBにエクセルのVBAを使ってデータをとりたいのですが、1レコードも取得できずにいます。ソースを提示しますのでどこが間違っているか教えていただけますでしょうか。VBAの初心者なんですが前任の見よう見まねで作っているところです。よろしくお願いします。


Public PARM As String  'PARMには入力してあります。 
Sub 受信()
ReDim SHINA(5000)
ReDim BANGO(5000)
GYO2 = 5
GYO1 = 1

Set ASCON = New ADODB.Connection
ASCON.CursorLocation = adUseClient
ASCON.Open = "DSN=" & DSN1 & "; UID=" & UID1 & ";PWD=" & PWD1

QSQL = ""
QSQL = QSQL & "SELECT MISE SHINA BANGO "
QSQL = QSQL & " FROM " & LIBLRY1 & ".DATAB"
QSQL = QSQL & " WHERE MISE =" & PARM  'MISEは文字列です
Set RS = New ADODB.Recordset
RS.Open QSQL, ASCON, adOpenDynamic, adLockOptimistic

Do While Not RS.EOF   'データがないのでloopで抜けてしまう
SHINA2(GYO1) = RS("SHINA")
BANGO2(GYO1) = RS("BANGO")

Cells(GYO2, 1) = RS("SHINA")
Cells(GYO2, 3) = RS("BANGO")

GYO1 = GYO1 + 1
GYO2 = GYO2 + 1

Loop

  RS.Close
Set RS = Nothing

ASCON.Close
Set ASCON = Nothing
  end sub

A 回答 (2件)

IBM製DBは使用したことはありませんが、、、


基本的なSQL文としてのアドバイスです。


WHERE句は文字列が抽出条件であれば、

QSQL = QSQL & " WHERE MISE =" & PARM  'MISEは文字列です

QSQL = QSQL & " WHERE MISE ='" & PARM & "'"  'MISEは文字列です
にしてみたらどうでしょう?
    • good
    • 0
この回答へのお礼

できました!ありがとうございました!

お礼日時:2010/04/18 00:41

ってか



iseriesをググッたらIBMが出たので勝手にDBだと思いこんだんだけど、、、

IBM製のDBであっているのだろうか?

この回答への補足

説明不足ですみません。IBM製です。正式には「DB2 UDB」というそうです。

補足日時:2010/04/17 23:59
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!