Date: Fri, 2 Feb 2001 17:06:26 +0900
From: "奥田寿珠子" <who@example.co.jp>
はじめまして、奥田といいます。
アクセスからストアドプロシージャの引数の渡し方についてどうしても
分からない所があったので教えてください。
Access2000+MSDE+SQLServer7.0で作業しています。
フォームからパラメータつきストアドプロシージャに連結処理をして、
処理の結果をフォームに表示しようとしています。
ストアドは「全体を表示するもの(引数なし)」と「検索の為のもの(引数あり)」の
2つをつくり、2つのコマンドボタン(「全表示」と「検索」)をクリックした時に、
RecordSource呼びだす方のストアドプロシージャ名を設定しています。
しかし、「検索(引数あり)」から「全表示(引数なし)」に変更する時に、
Me.RecordSource = ""のみでは、InputParametersはクリアにならないようで,
Me.RecordSource = PROC全表示、と引数なしのストアドを指定しているにも
かかわらず、引数の入力を求められます。
ならばMe.InputParameters = ""、とすればいいのかと思ったのですが、
すると、ここに達した時にアプリケーションエラーでAccessが落ちるように
なってしまいました。
レコードソースをコロコロ変えたりしてはいけないのでしょうか?
それともInputPrametersのクリアの仕方に問題があるのでしょうか?
MSDE初心者の私としては考え抜いたつもりなのですが、どうしてもわかりません。
たすけてください。
全表示コマンドボタン クリックの時
'パラメータ解除
Me.InputParameters = ""
'現在のレコードソース解除
Me.RecordSource = ""
'再描画
Me.Repaint
'レコードソースを指定
Me.RecordSource = "PROC全表示" ←ここでよく落ちてしまします。
Exit Sub
検索ボタンクリックの時
'現在の連結を解除する
Me.RecordSource = ""
'パラメータを指定
Me.InputParameters = "@KeiNo nvarchar(5) = [検索番号を入力してください]"
'レコードソースをストアドに設定
Me.RecordSource = RecSrce
'キャンセルボタンが押されたら
If Frm.Recordset Is Nothing Then
Frm.Refresh
Exit Sub
End If
'結果=0の時
If Frm.Recordset.RecordCount = 0 Then
MsgBox "この条件に対応するレコードはありません。", vbCritical +
vbOKOnly
End If
'再描画
Frm.Repaint
よく出るエラーメッセージは
直前の操作はキャンセルされました。と
OLEオブジェクトのプロパティまたはメソッドにアクセスする時にエラーが発生しま
した。でした。
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|