Excel VBA質問箱 IV

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

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


10766 / 13644 ツリー ←次へ | 前へ→

【19787】VBAをオラクルと接続しDBの結果を出した... みかん 04/11/17(水) 10:36 質問[未読]
【19797】Re:VBAをオラクルと接続しDBの結果を出した... Asaki 04/11/17(水) 13:54 回答[未読]
【19836】何とかなりました。しかし、またわからない... みかん 04/11/17(水) 17:40 お礼[未読]
【19837】Re:何とかなりました。しかし、またわから... Asaki 04/11/17(水) 17:55 回答[未読]
【19858】Re:何とかなりました。しかし、またわから... みかん 04/11/18(木) 9:14 質問[未読]
【19863】Re:何とかなりました。しかし、またわから... Asaki 04/11/18(木) 9:37 回答[未読]
【19865】Re:何とかなりました。しかし、またわから... みかん 04/11/18(木) 9:47 お礼[未読]
【19990】ありがとうございました!! みかん 04/11/22(月) 16:30 お礼[未読]

【19787】VBAをオラクルと接続しDBの結果を出した...
質問  みかん  - 04/11/17(水) 10:36 -

引用なし
パスワード
   はじめまして!!
今、VBAを勉強中です。
DBの中にある、個人データを名前から検索して出す。と言う、VBAを作っています。フォームの方は、何とかできたのですが、そこからオラクルに接続する方法がわかりません。サンプルソースをもらったのですが、いまいち解読できず、悪戦苦闘中です。どなたか、この方法を教えてください。下に載せたのがサンプルソースです。

Sub GetData(strPG As String)
On Error GoTo Err_Fnc
 ' ADOのオブジェクト変数を宣言する
  Dim cnn As New ADODB.Connection
  Dim rec As New ADODB.Recordset
  Dim strID As String
  Dim strPWD As String
  Dim strSID As String
  Dim strSQL As String
  
  '接続情報の取得
  strID = ActiveSheet.Cells(3, 3)
  strPWD = ActiveSheet.Cells(4, 3)
  strSID = ActiveSheet.Cells(5, 3)
  ' Oracleとの接続を確立する
  cnn.Open "Provider=MSDAORA;" & _
       "Data Source=" & strSID & ";", strID, strPWD
      
  'ストアドの引数設定
  strSQL = "begin "
  strSQL = strSQL & strPG & ";"
  strSQL = strSQL & "end;"
  
  'ストアドを実行する。
  Set rec = cnn.Execute(strSQL)
  
  '終了メッセージ
  MsgBox "データの登録が終了しました", vbOKOnly, "確認"
  
Exit_Fnc:
  ' 終了処理
  cnn.Close
  Set cnn = Nothing
  
  Exit Sub
  
Err_Fnc:
  'エラー処理
  MsgBox "エラーが発生しました" & vbCrLf & Err.Number & ":" & Err.Description
  Exit Sub

End Sub

【19797】Re:VBAをオラクルと接続しDBの結果を出し...
回答  Asaki  - 04/11/17(水) 13:54 -

引用なし
パスワード
   こんにちは。

サンプルでは、ストアドプロシージャを利用していますが、実際にそうするのですか?
直接SQL文を実行すれば良さそうに思いますが。
ストアドプロシージャを利用するなら、Outのパラメータを設定する必要が有るのではないかと思います。

参考サイトをあげて置きます。(既知かもしれませんが)
◇ VBでデータベース
http://homepage2.nifty.com/inform/vbdb/

◇ SAK Streets
http://homepage2.nifty.com/sak/

【19836】何とかなりました。しかし、またわからな...
お礼  みかん  - 04/11/17(水) 17:40 -

引用なし
パスワード
   返信ありがとうございます。
無理にストアドプロシージャを作るのはやめることにしました。(汗)
ASAKIさんの教えてくれたHPは、とても役に立ちました。ありがとうございます。
何とか,検索してDBから結果を持ってこれるようになりました。
で、また質問なんですが、この検索結果をVBAのフォームで出したいのですが、
なにかヒントをいただけないでしょうか?お願いします。

【19837】Re:何とかなりました。しかし、またわか...
回答  Asaki  - 04/11/17(水) 17:55 -

引用なし
パスワード
   >で、また質問なんですが、この検索結果をVBAのフォームで出したいのですが、
取得するデータはどのくらいあるのでしょうか?
件数が多いのなら、シートに表示したほうが良いと思います。

そうでなければ、取り敢えずユーザーフォームに必要なだけテキストボックスなどを貼り付けて、
そこに結果をセットするようにしたら良いのではないでしょうか?

【19858】Re:何とかなりました。しかし、またわか...
質問  みかん  - 04/11/18(木) 9:14 -

引用なし
パスワード
   おはようございます!!
フォームに結果をセットすると言うのは、フォームを作ってそこにCALLで情報を呼ぶ感じにして、setでつける?感じでしょうか?後、検索結果はどうやって呼べばいいんでしょうか?本当に、しょうもない質問でごめんなさい・・・。

【19863】Re:何とかなりました。しかし、またわか...
回答  Asaki  - 04/11/18(木) 9:37 -

引用なし
パスワード
   >フォームに結果をセットすると言うのは、フォームを作ってそこにCALLで
>情報を呼ぶ感じにして、setでつける?感じでしょうか?
記述そのものは
UserForm1.TextBox1.Value = "test"
みたいな感じになりますが、処理タイミングなど、詳細がわかりませんので、なんとも。

>後、検索結果はどうやって呼べばいいんでしょうか?
コードがUpされていないので、よくわかりませんが、
レコードセットから特定のフィールドの値を取り出す方法は、先に紹介したサイトにあったと思うのですが。

【19865】Re:何とかなりました。しかし、またわか...
お礼  みかん  - 04/11/18(木) 9:47 -

引用なし
パスワード
   なるほど!!
なんか、感じがつかめて来た気がします!!

何回も質問に答えていただいてありがとうございます。
ちょっと、これで頑張ってみます!!!

【19990】ありがとうございました!!
お礼  みかん  - 04/11/22(月) 16:30 -

引用なし
パスワード
   なんとか、ソースも書けて、自分の思っていたプログラムが書けました!!
色々、アドバイスありがとうございました!!

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