初めての質問になります、宜しくお願いします。
Access2007でのPG開発を行っています。
Insertのパラメータクエリーを作成してました(以下Q_Inst)。
VBA側でパラメータをセットして実行するとエラーが出てしまいます。
実行時エラー3265
要求された名前、または・・・
dbCmd.CommandText = "Q_Inst"
dbCmd.CommandType = adCmdStoredProc
dbCmd.Parameters.Refresh
dbCmd.Parameters("[ID]") = 1 ' ←ここでエラー
dbCmd.Parameters("[Name]") = TanakaTarou
dbCmd.Parameters("[Birth]") = "1980/12/01"
ADODB.Command をあまり使わないので勝手がいまいち分かりません。
SELECT、INSERT、UPDATEは今までdbCon.Execute(strSQL)でstrSQLの中にべた書きしてました。
エラーの対処方法をご教授お願い致しますm( _ _ )m
No.6ベストアンサー
- 回答日時:
以下もみてください。
ADOでのパラメータクエリの使用例
http://www.accessclub.jp/ado/createparameter.html
http://www.accessclub.jp/ado/refresh.html
ありがとうございます。
どのパターンも試してみたのですが
同じエラーで跳ね返されてしまうので
VBE側でINSERT分をコツコツ書くことにしました。
No.4
- 回答日時:
ローカルでの話になりますが、
> dbCmd.Parameters.Refresh
この前に、
dbCmd.ActiveConnection = CurrentProject.Connection
のような記述が必要かと思います。
ローカルの場合でも、上記をコメントにすると、
値を設定しようとした際に 3265 のエラーとなります。
また、dbCmd.Parameters で指定される文字列を一度確認されてみてはいかがでしょうか。
Dim prm As ADODB.Parameter を宣言しておいて、Refresh 後に
For Each prm In dbCmd.Parameters
Debug.Print prm.Name
Next
余談)
クエリの抽出条件に ・・・ WHERE ID = [DAT1] ・・・
のように、 [DAT1] をパラメータにしている時、
ADOでは、dbCmd.Parameters("[DAT1]") = 1 のように記述します。
dbCmd.Parameters("DAT1") = 1 ではまた 3265 のエラーになったと思います。
なお、DAO では、"[DAT1]" / "DAT1" どちらでも大丈夫みたいです。
※ adCmdStoredProc は使ったことが無いので、
VBE 側のヘルプで adCmdStoredProc を検索され、
「Command を使ってストアド プロシージャを呼び出す」部分を参照してみてください
No.3
- 回答日時:
>dbCmd.CommandType = adCmdStoredProc
を
dbCmd.CommandType = adCmdText
にしてみてください。
あるいは、上記に
dbCmd.Prepared = True
をついかしてみてください。
No.2
- 回答日時:
No1です。
No1は他のパラメータの設定も同様です。
>dbCmd.Parameters("[Name]") = TanakaTarou
>dbCmd.Parameters("[Birth]") = "1980/12/01"
たとえば、フィールドの順番が[ID]、[Name]、「Birth]ならば
dbCmd.Parameters(1) = TanakaTarou
dbCmd.Parameters(2) = "1980/12/01"
あるいは、
dbCmd.Parameters("[Name]に設定したパラメータ名") = TanakaTarou
dbCmd.Parameters("[Birth]に設定したパラメータ名") = "1980/12/01"
No.1
- 回答日時:
>dbCmd.Parameters("[ID]") = 1 ' ←ここでエラー
において、
dbCmd.Parameters("パラメータクエリで設定しているパラメータ名") = 1
で、フィールド名を書き入れるのではありません。
たとえば、IDに[AAA]と設定しているならば、
dbCmd.Parameters("AAA") = 1
あるいは、フィールドが0から始まるので、
IDが一番最初のフィールドならば、
dbCmd.Parameters(0) = 1
のようにして設定します。
ご返答ありがとうございます。
dbCmd.Parameters(0) = 1
でも同じエラーがでます。
[ ]の中はフィールド名ではなく、クエリー内のパラメータで宣言した名前にしてあります。
dbCmdのParameters Countが0になっているのは関係ありますか・・・?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- Excel(エクセル) VBAのエラーが直せません 4 2023/06/12 22:10
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
実行時エラー 3265「要求された名前、または序数
Visual Basic(VBA)
-
エラー(型が一致しません。)の対処方法
Visual Basic(VBA)
-
アクセスのフォームのビューが表示されないのですが、
その他(データベース)
-
-
4
Accessのテーブルデータを一気にVBAで追加したい・・
その他(データベース)
-
5
レコードセット(ADO.Recordset)で処理レコードは何番目?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
実行時エラー3001「引数が間違...
-
ExcelVBA Range クラスの Page...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAでのエラー
-
VB6+SQL サーバー 2000 で 実行...
-
VBAがブレークモードになっ...
-
EXCEL/VBAで、自分のPCだけエラ...
-
実行時エラー48発生時のDLL特定...
-
VBS シートをコピーして別のブ...
-
UWSCのビジー待ちで60秒経った...
-
SQL文をVBAで流すと「型...
-
Application.ActiveInspectorで...
-
AccessVBAでExcelを起動し、罫...
-
ACCESSのエラーで困っています
-
マクロについて教えてください...
-
職場から目的地までの距離集計
-
'Speak'メソッドは失敗しました
-
アクセス 実行時エラー3265
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
【Excel VBA】マクロをボタンに...
-
VBAでのエラー
-
マクロについて教えてください...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAがブレークモードになっ...
-
実行時エラー3001「引数が間違...
-
ExcelVBA Range クラスの Page...
-
VBS実行時エラー オブジェクト...
-
EXCEL VBAマクロ中断でデバッグ...
-
Outlook.ApplicationをCreateOb...
-
VBSで変数の宣言はできないので...
-
VBAのコードがエラーになっ...
-
実行時エラー -'-2147417848
-
ADODB.Streamを使用してUTF-8を...
-
EXCEL/VBAで、自分のPCだけエラ...
-
OLEDB.NETで接続できない
-
プロシージャ名の取得
-
VB6+SQL サーバー 2000 で 実行...
おすすめ情報