VBA初心者です。
下記VBEを実行すると
【Error3061 パラメータが少なすぎます。4を指定してください。】
が表示されます。
「4を指定してください。」の解決方法は余り出ていないですので
よろしくお願いします。
'読み込み時に初期化のプロシージャ呼び出す
Private Sub Form_Load() 'フォーム詠み込み時
Call initializeForm '初期化
End Sub
Private Sub btn_新規_Click() 'btn_新規クリック時
Call initializeForm '初期化
End Sub
'新規ボタンからに初期化のプロシージャ呼び出す
Private Sub initializeForm() '初期化
Me.txt_No.Value = Null 'txt_Noを空に
Me.txt_機種品番カテゴリー.Value = Null 'txt_機種品番カテゴリーを空に
Me.txt_機種品番.Value = Null 'txt_機種品番を空に
Me.txt_機種品番コード.Value = Null 'txt_機種品番コードを空に
Me.btn_追加.Enabled = True 'btn_追加ボタンを使用可能に
Me.btn_更新.Enabled = False 'btn_更新ボタンを使用不可に
Me.btn_削除.Enabled = False 'btn_削除ボタンを使用不可に
Me.txt_機種品番コード.Enabled = True 'txt_機種品番コードを使用可能に
End Sub
'読み込みを行なう
Private Sub btn_読込_Click() 'btn_読込ボタンクリックしたとき
Call LoadForm '読込呼出し
End Sub
Private Sub LoadForm() '読込処理
If IsNull(Me.txt_機種品番コード.Value) Then Exit Sub '機種品番コードが空なら終了
Me.txt_No.Value = Null 'txt_Noをクリア (前のデータが残らないように)
Me.txt_機種品番カテゴリー.Value = Null 'txt_機種品番カテゴリーをクリア
Me.txt_機種品番.Value = Null 'txt_機種品番をクリア
On Error GoTo ErrorHandler
Dim strSQL As String
strSQL = _
"SELECT fid_No, fid_機種品番カテゴリー, fid_機種品番 " & _
"FROM MT_機種品番 " & _
"WHERE fid_機種品番コード = '" & Me.txt_機種品番コード.Value & "';" 'SQLを作成
Dim daoDb As DAO.Database
Set daoDb = CurrentDb
Dim daoRs As DAO.Recordset
Set daoRs = daoDb.OpenRecordset(strSQL)
If daoRs.BOF = True And daoRs.EOF = True Then
MsgBox "対象レコードがありません。", vbInformation, "確認"
GoTo Finally 'レコードがなければ終了
End If
Me.txt_No.Value = daoRs!fid_No '抽出したレコードをテキストボックスへ
Me.txt_機種品番カテゴリー.Value = daoRs!fid_機種品番カテゴリー
Me.txt_機種品番.Value = daoRs!fid_機種品番
Me.btn_追加.Enabled = False 'btn_追加ボタンを使用不可に
Me.btn_更新.Enabled = True 'btn_更新ボタンを使用可能
Me.btn_削除.Enabled = True 'btn_削除ボタンを使用可能
Me.txt_機種品番コード.Enabled = False 'txt_機種品番コードを使用不可
GoTo Finally
ErrorHandler: 'エラートラップ
MsgBox "Error #: " & Err.Number & vbNewLine & vbNewLine & _
Err.Description, vbCritical, "エラー"
Finally:
If Not daoRs Is Nothing Then
daoRs.Close
Set daoRs = Nothing
End If
If Not daoDb Is Nothing Then
daoDb.Close
Set daoDb = Nothing
End If
End Sub
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
「パラメータが少なすぎます。
4を指定してください。」は
「知らないフィールド名が4つあるよ。正しいフィールド名に直してね。」
と読み替えてください。
4つということで
strSQL = _
"SELECT fid_No, fid_機種品番カテゴリー, fid_機種品番 " & _
"FROM MT_機種品番 " & _
"WHERE fid_機種品番コード = '" & Me.txt_機種品番コード.Value & "';"
の
fid_No, fid_機種品番カテゴリー, fid_機種品番, fid_機種品番コード
が間違っていると思われます。
例えば
fid → fld
とか。
No.2
- 回答日時:
No.1回答>Set daoRs = daoDb.OpenRecordset(strSQL, dbOpenSnapshot) '4番目の引数にdbOpenSnapshotを追加
2番目のパラメータのような。 https://learn.microsoft.com/ja-jp/office/client- …
どこでエラーになってるか解析しにくいので、
》On Error GoTo ErrorHandler
をコメントにして、エラー時デバッガ起動させてみては。
No.1
- 回答日時:
## VBA エラー 3061 「パラメータが少なすぎます。
4を指定してください。」 の解決策ご提供いただいた VBA コードで、エラー 3061 「パラメータが少なすぎます。4を指定してください。」 が発生しているとのことですね。原因と解決策を以下に詳しく説明します。
**エラーの原因**
このエラーは、`OpenRecordset` メソッドを実行する際に、必要な引数が不足していることを示しています。具体的には、**4番目の引数**が指定されていないことが原因です。
**4番目の引数**は、レコードセットの種類を指定するもので、以下のいずれかを指定する必要があります。
* `dbOpenDynaset`:ダイナミック レコードセットを作成します。
* `dbOpenSnapshot`:スナップショット レコードセットを作成します。
* `dbOpenTable`:テーブル レコードセットを作成します。
* `dbOpenForm`:フォーム レコードセットを作成します。
* `dbOpenTempTable`:一時テーブル レコードセットを作成します。
**解決策**
エラーを解決するには、`OpenRecordset` メソッドの4番目の引数に適切な値を指定する必要があります。
ご提供いただいたコードの場合、`dbOpenSnapshot` を指定するのが適切です。修正後のコードは以下のようになります。
```vba
Private Sub LoadForm() '読込処理
If IsNull(Me.txt_機種品番コード.Value) Then Exit Sub '機種品番コードが空なら終了
Me.txt_No.Value = Null 'txt_Noをクリア (前のデータが残らないように)
Me.txt_機種品番カテゴリー.Value = Null 'txt_機種品番カテゴリーをクリア
Me.txt_機種品番.Value = Null 'txt_機種品番をクリア
On Error GoTo ErrorHandler
Dim strSQL As String
strSQL = _
"SELECT fid_No, fid_機種品番カテゴリー, fid_機種品番 " & _
"FROM MT_機種品番 " & _
"WHERE fid_機種品番コード = '" & Me.txt_機種品番コード.Value & "';" 'SQLを作成
Dim daoDb As DAO.Database
Set daoDb = CurrentDb
Dim daoRs As DAO.Recordset
Set daoRs = daoDb.OpenRecordset(strSQL, dbOpenSnapshot) '4番目の引数にdbOpenSnapshotを追加
If daoRs.BOF = True And daoRs.EOF = True Then
MsgBox "対象レコードがありません。", vbInformation, "確認"
GoTo Finally 'レコードがなければ終了
End If
Me.txt_No.Value = daoRs!fid_No '抽出したレコードをテキストボックスへ
Me.txt_機種品番カテゴリー.Value = daoRs!fid_機種品番カテゴリー
Me.txt_機種品番.Value = daoRs!fid_機種品番
Me.btn_追加.Enabled = False 'btn_追加ボタンを使用不可に
Me.btn_更新.Enabled = True 'btn_更新ボタンを使用可能
Me.btn_削除.Enabled = True 'btn_削除ボタンを使用可能
Me.txt_機種品番コード.Enabled = False 'txt_機種品番コードを使用不可
GoTo Finally
ErrorHandler: 'エラートラップ
MsgBox "Error #: " & Err.Number & vbNewLine & vbNewLine & _
Err.Description, vbCritical, "エラー"
Finally:
If Not daoRs Is Nothing Then
daoRs.Close
Set daoRs = Nothing
End If
If Not daoDb Is Nothing Then
daoDb.Close
Set daoDb = Nothing
End If
End Sub
```
**補足**
* 上記のコード以外にも、エラー 3061 を発生させる可能性はあります。他の可能性としては、SQL 文の記述ミスや、データベース接続に問題があるなどが考えられます。
* エラーが発生した場合は、`Err.Number` と `Err.Description` を確認することで、詳細な情報を得ることができます。
* VBA のコーディングについては、書籍やインターネット上の情報などを参考にすると良いでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) Windows 11 Pro での、VBAのCode書き換えで、1点お教え願います。 2 2023/10/11 01:12
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- Visual Basic(VBA) vba userFormのSubを標準モジュールから呼び出す方法を教えてください 2 2023/10/17 15:06
- Visual Basic(VBA) wordのマクロで思うように行きません(ファイル削除ができない) 3 2023/09/12 08:34
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
ちょっと先の未来クイズ第6問
2025年1月2日と1月3日に行われる、第101回箱根駅伝(東京箱根間往復大学駅伝競走)で、上位3位に入賞するチームはどこでしょう?
-
【お題】逆襲の桃太郎
【大喜利】桃太郎が1回鬼退治に失敗したところから始まる新作昔話「リベンジオブ桃太郎」にはこんなシーンがある
-
【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
「出身中学と出身高校が混ざったような校舎にいる夢を見る」「まぶたがピクピクしてるので鏡で確認しようとしたらピクピクが止まってしまう」など、 これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
-
【選手権お題その2】この漫画の2コマ目を考えてください
サッカーのワンシーンを切り取った1コマ目。果たして2コマ目にはどんな展開になるのか教えてください。
-
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
パラメータが少なすぎます。1を指定して下さい。""
Excel(エクセル)
-
「パラメータが少なすぎます。3を指定してください。」って???
Access(アクセス)
-
-
4
【Access2003】クエリで動作するSQLがVBAで動作せず困っています。
その他(Microsoft Office)
-
5
Access2010 「演算子がありません」エラー
その他(データベース)
-
6
実行時エラー3131 FROM 句の構文エラーです について
Access(アクセス)
-
7
Access 2010で実行時エラー3061
その他(Microsoft Office)
-
8
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
9
ACCESS VBAの実行時エラーなんですが
PowerPoint(パワーポイント)
-
10
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
11
実行時エラー '3464': 抽出条件でデータ型が
Access(アクセス)
-
12
ACCSESS2013VBA フォームのレコードソースを変更する
その他(データベース)
-
13
アクセスVBAのMe!と[ ]
Access(アクセス)
-
14
【ACCESS】フォーム名/コントロール名を文字列型変数で指定するには
Access(アクセス)
-
15
access2003 クエリSQL文について
その他(プログラミング・Web制作)
-
16
パラメーターが少なすぎます 1を指定してください
その他(Microsoft Office)
-
17
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
18
Access パラメータークエリ VBAの書き方について よろしくお願いします。 ①クエリでデータを
Access(アクセス)
-
19
VBでSQL文のUPDATE構文を使った時のエラーについて
Visual Basic(VBA)
-
20
Access サブフォームでの選択行の取得
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
後継機の反対語
-
着信は鳴ってないのに留守電が...
-
Access Error3061 パラメータが...
-
取説のダウンロード
-
music beeでiphoneの同期ができ...
-
メッシュWi-FI設置について教え...
-
友人から譲り受けたノートパソ...
-
メモリ増設 ケースの開け方
-
ブラウザがネット接続不可なの...
-
付属のインストールディスクで...
-
iPhoneとiPadでWi-Fiの受信速度...
-
ヤフオクの本人確認したいけど ...
-
iPhone8からiPhoneSE3に機種変...
-
povo1.0での機種変更について ...
-
デスクトップPC 横にする 倒す
-
充電5%でline電話45分できますか?
-
電話をかけると、コール鳴らず...
-
TONEモバイルについて
-
伝言メモの母の声を残したいのです
-
こんにちは。スマホの通話履歴...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
後継機の反対語
-
着信は鳴ってないのに留守電が...
-
コロナ ファンヒーターのタイ...
-
Access Error3061 パラメータが...
-
ブラウザがネット接続不可なの...
-
iPhoneとiPadでWi-Fiの受信速度...
-
皆さんに質問させてください。 ...
-
【ACCESS】入力規則(L...
-
取説のダウンロード
-
music beeでiphoneの同期ができ...
-
メッシュWi-FI設置について教え...
-
麗流隷書を使いたいのですが?
-
エクスプローラーについて 以前...
-
DELL Optiplex の番号の意味は?
-
iPhone8からiPhoneSE3に機種変...
-
充電5%でline電話45分できますか?
-
Dell Vostro 15 3000(win10)に...
-
なぜか「メモ帳」の上のバーが...
-
ヤフオクの本人確認したいけど ...
-
冷蔵庫の扉を付け替えるには
おすすめ情報