こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

AccessとSqlServer

いまだ、Accessプロジェクトを利用しているものです。
SqlServerにユーザー定義関数(スカラ値関数)があり、Access(adp)からそのユーザー定義関数に、フォーム上のコントロール値をパラメータとして渡し、その戻り値をAccessで受け取りたいのですが、そのやり方で躓いています。
  例 SqlServerのユーザー定義関数
     Alter Function dbo.Total
(@Para1 int,@Para2 int)
Returns int
As
Begin
Declare @Total int
End
BEGIN
@Total = Para1 + Para2
Teturn(@Total)
End
     とし、
     AccessのForm1のテキストボックス1、2をパラメータとして、テキストボックス3
     に、SqlServerのユーザー定義関数の戻り値「@Total」を表示させたいと望んでいる     のですが。
     お知恵を借りたく、質問させていただきました。

投稿日時 - 2015-11-16 10:48:44

QNo.9081106

困ってます

質問者が選んだベストアンサー

Access側から直接SQL文を投げつけてレコードセットを取得する方法はいかがでしょうか。
Form1のテキストボックス2の更新後処理イベントに以下の文を貼り付けてみて下さい。

Dim cn As ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strSQL As String
strSQL = "SELECT dbo.Total(" & Me.テキストボックス1 & ", " & Me.テキストボックス2 & ") AS A"
Set cn = Application.CurrentProject.Connection
rs.Open strSQL, cn, adOpenStatic, adLockReadOnly
Me.テキストボックス3 = rs!A
rs.Close: Set rs = Nothing: cn.Close: Set cn = Nothing

投稿日時 - 2015-11-17 10:42:13

お礼

ご教示ありがとうございます。さっそくコードを設定して実行し、取得できました。ADOについては、今ひとつ理解不足ですが、本件を参考にしたいと思います。本当にありがとうございました。

投稿日時 - 2015-11-17 14:32:54

ANo.1

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)