Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7265 / 13645 ツリー ←次へ | 前へ→

【40160】ストアドプロシジャの実行 boku 06/7/7(金) 17:28 質問[未読]
【40165】Re:ストアドプロシジャの実行 neptune 06/7/7(金) 17:41 回答[未読]
【40169】Re:ストアドプロシジャの実行 boku 06/7/7(金) 18:12 質問[未読]
【40172】Re:ストアドプロシジャの実行 neptune 06/7/7(金) 18:24 回答[未読]
【40175】Re:ストアドプロシジャの実行 よろずや 06/7/7(金) 20:22 回答[未読]
【40233】Re:ストアドプロシジャの実行 boku 06/7/10(月) 8:03 お礼[未読]

【40160】ストアドプロシジャの実行
質問  boku  - 06/7/7(金) 17:28 -

引用なし
パスワード
   いつも参考にさせていただいてます。
環境はWinXP Pro Excel2000 MSDE2000です

現在下記コードでExcelからMSDE2000のデータを取得しています。
別に不都合はないのですが、MSDE2000に作成したストアドプロシジャ
に検索値を送った方が早いと思うのですが、ストアドプロシジャ
を実行させるコードが解らず質問させていただきました。
ご存知の方おられましたら、教えていただけますでしょうか?
よろしくお願いします。

Sub code()
Set cnn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
  
cnn.Open "Provider=MSDASQL;DRIVER=SQLServer};SERVER=**;UID=**;PWD=**;DATABASE=??SQL"

xxx = "12345"

strSQL = "SELECT 商品マスタ.定価, 商品マスタ.商品名, 商品マスタ.規格, "
strSQL = strSQL & "商品マスタ.JANコード "
strSQL = strSQL & "FROM 商品マスタ "
strSQL = strSQL & "WHERE (商品コード = '" & xxx & "' ) "
strSQL = strSQL & "ORDER BY 商品マスタ.商品コード"
  
rs.Open strSQL, cnn
 
If rs.EOF = True Then
 MsgBox "その商品コードは登録されていません!", 16, "コードに誤り"
Else
 Sheets("sheet1").Cells(2, 2).CopyFromRecordset rs
End If 
rs.Close
End Sub

【40165】Re:ストアドプロシジャの実行
回答  neptune  - 06/7/7(金) 17:41 -

引用なし
パスワード
   肝だけですが、動いている奴です。MSDE1.0ですが、変わってないでしょう?
Dim com As ADODB.Command
Dim param1 As ADODB.Paramete
  '省略
  '接続を指定
  Set com.ActiveConnection = cnn
  'パラメータ作成(データ型により変更の必要あり)
  Set param1 = com.CreateParameter("Param1", adBSTR, adParamInput, Len(pKey1))
  param1.Value = pKey1
  com.Parameters.Append param1
  'ストアドプロシージャを指定
  com.CommandText = "ストアドプロシージャ名"
  com.CommandType = adCmdStoredProc
  '実行
  Set rec = com.Execute
  '省略

【40169】Re:ストアドプロシジャの実行
質問  boku  - 06/7/7(金) 18:12 -

引用なし
パスワード
   neptune 様

返信ありがとうございます。
デバッッグしたら

Dim com As ADODB.Command

でエラーになりました。
ユーザー定義型は定義されていません。
とのことです。

ツールの参照設定でなにかチェックを入れておくのでしょうか?

【40172】Re:ストアドプロシジャの実行
回答  neptune  - 06/7/7(金) 18:24 -

引用なし
パスワード
   ▼boku さん:
>Dim com As ADODB.Command
>でエラーになりました。
>ユーザー定義型は定義されていません。
>とのことです。
>
>ツールの参照設定でなにかチェックを入れておくのでしょうか?
変数宣言をADODB.Commandとしてますから、2000だとADO2.6かな?
当然チェックは必要ですよ。

あの〜あまりこういうことは言いたくないのですが、ものすごく基本的な事
をお尋ねですが、SQLServerにちょっかい出す事は許されてますか?

いろんな権限はありますが・・・・心配です。

【40175】Re:ストアドプロシジャの実行
回答  よろずや  - 06/7/7(金) 20:22 -

引用なし
パスワード
   > Set cnn = CreateObject("ADODB.Connection")
これは参照設定をしない場合の書き方です。

>Dim com As ADODB.Command
こちらは参照設定の必要な書き方です。

参照設定を使うかどうか決めたら、書き方を統一しましょう。

【40233】Re:ストアドプロシジャの実行
お礼  boku  - 06/7/10(月) 8:03 -

引用なし
パスワード
   neptune様
よろずや様

返信ありがとうございました。
大変参考になりました。

無事値を取得することが出来ました。
お付き合い頂き、ありがとうございました。

7265 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free