MSDE FunClub
Microsoft Data Engine FunClub
MSDE初心者向けメーリングリスト過去ログ[1255]番
 
[TOP]>[MSDE初心者向けメーリングリスト過去ログ(1255番)]>[ウィンドを閉じる]
 
SQLServer2005時代でも
開発の基本は T-SQL
上巻で T-SQL の基礎作り
 
SQLServer2005時代でも
運用の基本はバックアップ
下巻でバックアップ手法を学びましょう
PASSJ人気コンテンツで学んだ後は下巻でさらなる学習を!
 
ウィンドを閉じる
MSDE/SQLServer FAQ
MSDE / MSDE2000 
技術情報サポート
初心者向け
メーリングリスト
過去ログの表示
技術者向け
メーリングリスト
過去ログの表示
メーリングリスト
活動状況の
表示
MSDE TOP メニュー
MSDEトップメニューに移動します
 

 
ADO プログラミングについて

Date: Wed, 30 Jun 2004 12:01:57 +0900
From: who@sub.example.jp


--0__=C6BBE450DF9F1A2B8f9e8a93df938690918cC6BBE450DF9F1A2B
Content-type: text/plain; charset=ISO-2022-JP

お世話になります。
SQLServer自習書シリーズ「SQLServer7.0(またはSQLServer2000)とAccess2000によ
るアプリケーション開発」に従って
パラメータ付ストアドプロシージャをレコードソースとして選択する連結フォーム
を作成しております。

フォームに設定したパラメータがストアドプロシージャにわたりません。
ADOのプログラミングうまくいきません。原因を教えて下さい。

なお、ストアドプロシージャをレコードソースとして選択する連結フォームを作成
しフォームを開くと[パラメータの入力]ダイアログボックスが表示され、この入力
をすると
フォームが正しく表示されます。

ストアドプロシージャのパラメータの受け渡しはCreateParameterを使いADOのプ
ログラミングは以下のとおり作りましたが、
実行結果として、フォームに設定したパラメータがストアドプロシージャにわたら
ず、[パラメータの入力]ダイアログボックスが表示されます。

テスト環境は Access2003 on WindowsXP に SQLServer7.0 Desktop をインストール
してます。(SP3)

ADOのプログラミング
Option Compare Database
Option Explicit
Const cFormName_M = "人事情報照会"  ...  初期画面(パラメータ入力用
Const cFormName_J = "人事情報照会_J"...  出力画面
Dim cn As ADODB.Connection
Dim cmd As ADODB.Command
Dim rs As ADODB.Recordset
Dim parm As ADODB.Parameter
Dim ado_err As ADODB.Error
Dim cmd1 As ADODB.Command
Dim Msg As String

Private Sub kanashimei_AfterUpdate()
  If Trim(Forms(cFormName_M)![kanashimei]) & "" = "" Or
Forms(cFormName_M)![kanashimei] = 0 Or
IsNumeric(Forms(cFormName_M)![kanashimei]) Then
     MsgBox "カナ氏名がスペースまたは数字です。"
     Exit Sub
  End If
   Set cn = Application.CurrentProject.Connection
  Set cmd = New ADODB.Command
  Set rs = New ADODB.Recordset
  Set parm = New ADODB.Parameter
  With cmd
      .ActiveConnection = cn
      .CommandType = adCmdStoredProc
      .CommandText = "str1"
      Set parm = .CreateParameter(, adVarWChar, adParamInput, 50,
Forms(cFormName_M)![kanashimei])
      .Parameters.Append parm
      .Execute
  End With
      Set rs = Nothing
      'Set rs = cmd.Execute
   'rs.MoveFirst
   DoCmd.OpenForm cFormName_J

   Exit Sub

trans_set_error:
     MsgBox Msg, , "エラー", Err.HelpFile, Err.HelpContext
     Exit Sub
trans_error:
     MsgBox Msg, , "エラー", Err.HelpFile, Err.HelpContext
End Sub

SEKI
--0__=C6BBE450DF9F1A2B8f9e8a93df938690918cC6BBE450DF9F1A2B
Content-type: text/html; charset=ISO-2022-JP
Content-Disposition: inline

<html><body><font face="MS Pゴシック">お世話になります。</font><br>
<font face="MS Pゴシック">SQLServer自習書シリーズ「SQLServer7.0(またはSQLServer2000)とAccess2000によるアプリケーション開発」に従って</font><br>
<font face="MS Pゴシック">パラメータ付ストアドプロシージャをレコードソースとして選択する連結フォームを作成しております。</font><br>
<br>
<font face="MS Pゴシック">フォームに設定したパラメータがストアドプロシージャにわたりません。</font><br>
<font face="MS Pゴシック">ADOのプログラミングうまくいきません。原因を教えて下さい。</font><br>
<br>
<font face="MS Pゴシック">なお、ストアドプロシージャをレコードソースとして選択する連結フォームを作成しフォームを開くと[パラメータの入力]ダイアログボックスが表示され、この入力をすると</font><br>
<font face="MS Pゴシック">フォームが正しく表示されます。</font><br>
<br>
<font face="MS Pゴシック">ストアドプロシージャのパラメータの受け渡しはCreateParameterを使いADOのプログラミングは以下のとおり作りましたが、</font><br>
<font face="MS Pゴシック">実行結果として、フォームに設定したパラメータがストアドプロシージャにわたらず、[パラメータの入力]ダイアログボックスが表示されます。</font><br>
<br>
<font face="MS Pゴシック">テスト環境は Access2003 on WindowsXP に SQLServer7.0 Desktop をインストールしてます。(SP3) </font><br>
<br>
<font face="MS Pゴシック">ADOのプログラミング</font><br>
<font face="MS Pゴシック">Option Compare Database</font><br>
<font face="MS Pゴシック">Option Explicit</font><br>
<font face="MS Pゴシック">Const cFormName_M = &quot;人事情報照会&quot;  ...  初期画面(パラメータ入力用</font><br>
<font face="MS Pゴシック">Const cFormName_J = &quot;人事情報照会_J&quot;...  出力画面</font><br>
<font face="MS Pゴシック">Dim cn As ADODB.Connection</font><br>
<font face="MS Pゴシック">Dim cmd As ADODB.Command</font><br>
<font face="MS Pゴシック">Dim rs As ADODB.Recordset</font><br>
<font face="MS Pゴシック">Dim parm As ADODB.Parameter</font><br>
<font face="MS Pゴシック">Dim ado_err As ADODB.Error</font><br>
<font face="MS Pゴシック">Dim cmd1 As ADODB.Command</font><br>
<font face="MS Pゴシック">Dim Msg As String</font><br>
<br>
<font face="MS Pゴシック">Private Sub kanashimei_AfterUpdate()</font><br>
<font face="MS Pゴシック">  If Trim(Forms(cFormName_M)![kanashimei]) &amp; &quot;&quot; = &quot;&quot; Or Forms(cFormName_M)![kanashimei] = 0 Or IsNumeric(Forms(cFormName_M)![kanashimei]) Then</font><br>
<font face="MS Pゴシック">     MsgBox &quot;カナ氏名がスペースまたは数字です。&quot;</font><br>
<font face="MS Pゴシック">     Exit Sub</font><br>
<font face="MS Pゴシック">  End If</font><br>
<font face="MS Pゴシック">   Set cn = Application.CurrentProject.Connection</font><br>
<font face="MS Pゴシック">  Set cmd = New ADODB.Command</font><br>
<font face="MS Pゴシック">  Set rs = New ADODB.Recordset</font><br>
<font face="MS Pゴシック">  Set parm = New ADODB.Parameter</font><br>
<font face="MS Pゴシック">  With cmd</font><br>
<font face="MS Pゴシック">      .ActiveConnection = cn</font><br>
<font face="MS Pゴシック">      .CommandType = adCmdStoredProc</font><br>
<font face="MS Pゴシック">      .CommandText = &quot;str1&quot;</font><br>
<font face="MS Pゴシック">      Set parm = .CreateParameter(, adVarWChar, adParamInput, 50, Forms(cFormName_M)![kanashimei])</font><br>
<font face="MS Pゴシック">      .Parameters.Append parm</font><br>
<font face="MS Pゴシック">      .Execute</font><br>
<font face="MS Pゴシック">  End With</font><br>
<font face="MS Pゴシック">      Set rs = Nothing</font><br>
<font face="MS Pゴシック">      'Set rs = cmd.Execute</font><br>
<font face="MS Pゴシック">   'rs.MoveFirst</font><br>
<font face="MS Pゴシック">   DoCmd.OpenForm cFormName_J</font><br>
<font face="MS Pゴシック"> </font><br>
<font face="MS Pゴシック">   Exit Sub</font><br>
<br>
<font face="MS Pゴシック">trans_set_error:</font><br>
<font face="MS Pゴシック">     MsgBox Msg, , &quot;エラー&quot;, Err.HelpFile, Err.HelpContext</font><br>
<font face="MS Pゴシック">     Exit Sub</font><br>
<font face="MS Pゴシック">trans_error:</font><br>
<font face="MS Pゴシック">     MsgBox Msg, , &quot;エラー&quot;, Err.HelpFile, Err.HelpContext</font><br>
<font face="MS Pゴシック">End Sub</font><br>
<br>
<font face="MS Pゴシック">SEKI</font></body></html>
--0__=C6BBE450DF9F1A2B8f9e8a93df938690918cC6BBE450DF9F1A2B--



[MSDE/SQLServerに関して、今、どんなことにお困りですか?]
よろしければお困りの内容を、電子メールで教えて下さい。
質問を電子メールで作成する


[ウィンドを閉じる]

[MSDE/SQLServer FAQ ]

[MSDE / MSDE2000 技術サポート情報一覧]

MSDE TOP ページに移動する

 
 
 
 
 
 
 
MSDE FunClubに関するご意見・ご要望等ございましたら、
msdefun@horikawa.ne.jp までご連絡下さい。
MSDEを始めとする各種データベースシステムの開発、コンサルタントに関するご要望等は、
msdedev@horikawa.ne.jp までご連絡下さい。