2011-12-30 10 views
1

私は長い間MS Accessアプリケーションを作成してきました。私はAccess 2010に切り替えたばかりで、コード内でInputParametersを作成しているフォームを開くと、アプリケーションはパラメータを入力するように促します。私はうんざりしており、これを理解することはできません。MS Access 2010はフォームロード時にパラメータを要求するようになりました

次のコードは、アクセス2010までのMS Accessのすべての以前のバージョンに取り組んできました:フォーム負荷が私はパラメータ1と@のパラメーター2 @入力するように求め得るとき今

Dim strRS As String 
    Dim lngID as Long 
    Dim intSomethignElse as Integer 

    strRS = "dbo.StoredProcedureName" 
    lngID = 1 
    intSomethignElse = 2 

    Forms!SomeFormName.InputParameters = "@parameter1 = " & lngID & ", @parameter2 = " & intSomethignElse 

'Verify the parameters do indeed exist and they do: 
    Debug.Print Forms!SomeFormName.InputParameters 

    Forms!SomeFormName.RecordSource = strRS 

。 MS Access 2010でこれを再び動作させるにはどうすればよいですか? 何か助けていただければ幸いです。

+0

'Forms!SomeFormName.RecordSource =" exec dbo.StoredProcedureName @ parameter = "&lngID'の行には何かがありますか? – Fionnuala

+0

私はこれがAccessデータプロジェクトだとしますか? InputParameters機能はデータプロジェクトでのみ機能し、通常のmdb、またはaccDB(標準)アクセスデータベースでは機能しません。非ADPにinputParametersを使用する場合、またはSQL Serverにリンクテーブルを使用している場合、InputParameters機能は使用できません。 –

+1

私の提案が合っていなければ、どうしていいのか分かりません。私はSQL Serverと2010 adpでテストしました。 – Fionnuala

答えて

1

を。最近までAccess 2010で正常に動作していましたが、パラメータを要求するポップアップウィンドウと同じ問題がありました。私はRemouはコメントで示唆されているように、私のアプリケーションが再び動作する

Forms!SomeFormName.RecordSource = "exec dbo.StoredProcedureName @parameter=" & lngID 

にsimliarようにコードを変更した後

1

RecordSourceが空ではない可能性があります。デザインビューで空であることを確認します。


EDIT:

msdn

は言う:ストアドプロシージャが一つと{呼び出し}構文を含むコマンド文字列を使用して実行されなければなりませんか? InputParametersリストのデフォルト以外の各パラメーターのマーカー。

私は、呼び出し構文を知らないが、私はこのような何かしようとするだろう:私は似たVBAコードを持っていた

strRS = "exec dbo.StoredProcedureName ?, ?" 
+0

私はそれを確認した、ありがとう。私は、フォームがロードされるときにInputParametersとRecordSourcesの両方が空白であることを確認しました。 –

関連する問題