- ベストアンサー
"パラメータが少なすぎます。1を指定して下さい。"
Access97を使用しています。 SQLで組んだモジュール中に "実行時エラー '3061'" "パラメータが少なすぎます。1を指定して下さい。" と表示されます。 デバッグをクリックすると下記2行目が黄色になります。 Set Database = CurrentDb Set Table = Database.OpenRecordset("選択クエリー", dbOpenDynaset, dbReadOnly) ← 情報が少ないかもしれませんが、何故このようなメッセージが出るのでしょうか?
- みんなの回答 (4)
- 専門家の回答
関連するQ&A
- Access2002のVBAエラーで
クエリで抽出したレコードを利用したいのですがうまくいきません。 Dim ds As Database Dim rs As Recordset Set ds = CurrentDb Set rs = ds.OpenRecordset("クエリ名") デバッグすると Set rs = ds.OpenRecordset("クエリ名") で止まります。 「実行時エラー’3061’ パラメータが少なすぎます。1を指定してください」のメッセージです。 どのような意味でしょう。教えてください。
- ベストアンサー
- オフィス系ソフト
- OpenRecordSet 他について
Accessプロジェクトを使用しています。 Dim strSQL As String Dim DBS As Database Dim RST As DAO.Recordset Set DBS = CurrentDb Set RST = DBS.OpenRecordset("TESTDATA", dbOpenDynaset,dbReadOnly) 「実行時エラー'91': オブジェクト変数またはWithブロック変数が設定されていません。」 と出てきます。デバッグを押すと、 上記最終行でSTOPします。 次のように変更しても同じでした。 Set RST = DBS.OpenRecordset("TESTDATA") 又は Set RST = DBS.OpenRecordset("TESTDATA", dbOpenDynaset) ヘルプ等を見ると、Jetワークスペースでのみ 使用可と出てきます。 ADO,DAO,OpenRecordset等が理解しきれていないように思うのですが、 Access97(DAO?)では 何も出てこなかった上記のような内容、 何故Accessプロジェクトでは 上手くいかないのでしょうか?
- ベストアンサー
- SQL Server
- ACCESS について
下記 イメージがわかりません CurrentDB,OpenRecordset,dbOpenDynaset,dbReadOnly アクセスで、オラクルのDBを使用していますが 上記のところで詰まっています。 "一旦、ファイルを、どういう状態で開くか" ってことでしょうか? 宜しくお願いします。
- ベストアンサー
- Visual Basic
- ACCESS97のMAX関数について
ACCESS97を使用しています。 "関数"の使い方が全くわかりません。 (というより、SQLも含めて…) テーブル"TBL_A"の"項目B" から最大値を変数SDHSに取得したいのですが どうすればいいのでしょうか? Dim db As DATABASE Dim RS As Recordset Dim SDHS, strSQL As String Set db = CurrentDb() strSQL = "SELECT Max(項目B) FROM TBL_A ;" Set RS = db.OpenRecordset(strSQL, dbOpenDynaset, dbReadOnly) SDHS = Max(項目B)
- ベストアンサー
- オフィス系ソフト
- SQLのパラメータ・・
たびたびお世話になっております。 顧客マスタの新規コードを、最大値に1を足して生成しています。 既存の顧客コードの最大値を求める為、 Dim mySQL as Stirng,Rst as Recordset mySQL="SELECT Max(局コード) AS 局コードの最大, 会社コード FROM 顧客マスタ GROUP BY 会社コード HAVING (会社コード=[Forms]![フォーム]![テキスト1]);" Set Rst = CurrentDB.OpenRecordset(mySQL) というSQL文をかきました。 ところが、SQLをレコードセットにすると「パラメータが少なすぎます。1を指定してください(3061)」というエラーメッセージが出てしまいます。 クエリーを作成して実行しても正しい結果を返すのに、SQLだとダメなのはなぜなのでしょうか。 どうぞよろしくお願いいたします。
- ベストアンサー
- その他(データベース)
- SQLの条件分に ( ) が入っている場合
Access97を使用しています。 SQLの条件で、項目名に '(' が入っている場合 どうすればいいのでしょうか? 例えば 下記の場合 " 式に未定義関数 '出荷日'があります " と出てきます。 Set DB = CurrentDb() strSQL = "SELECT SUM(数量) AS A FROM GAH100 WHERE " strSQL = strSQL + "出荷日(新)='" & Me.日付入力 "';" Set RS = DB.OpenRecordset(strSQL, dbOpenDynaset, dbReadOnly) 項目名に() が無いようにするしかないのでしょうか?
- ベストアンサー
- オフィス系ソフト
- VBAのコード
参考書に従って次のようなコードを書きました。 Private Sub previewButton_Click() Dim db as DAO.Database Dim rs as DAO.Recordset Set db = CurrentDb Set rs = db.OpenRecordset("Q_ラベル印刷", dbOpenDynaset)* if me!......................以下略 *印のところで「パラメーターが少なすぎます。1を指定してください。」というメッセージが出ます。 どう直せばいいのでしょうか。 よろしくお願いします。
- 締切済み
- その他MS Office製品
- SQLSERVERからデータを取得する方法
SQLSERVERに商品テーブルを作り ACCESSにローカルテーブル(下記の例では入力テーブル)を 作りました。 ACCESS VBAで ACCESSのローカルテーブルを1件ずつ読み SQLSERVERの商品テーブルを検索したいのですが 下記の例 どちらが処理スピードが速いのですか? なお下記以外にも処理スピードが速い方法が あったら教えてください。 ●例1 Dim db As DATABASE Dim rs As Recordset dim rt as Recordset Set db = CurrentDb Set rt = db.OpenRecordset("入力テーブル", dbOpenDynaset) sql = "SELECT 商品名 FROM 商品テーブル " sql = sql & "where 商品ID = '" & rt![商品ID] & "'" Set rs = db.OpenRecordset(sql) If rs.RecordCount = 0 Then MsgBox "NG" Else MsgBox rs![商品名] End If ●例2 Dim db As DATABASE Dim rs As Recordset dim rt as Recordset Set db = CurrentDb Set rt = db.OpenRecordset("入力テーブル", dbOpenDynaset) Set rs = db.OpenRecordset("商品テーブル", dbOpenDynaset) rs.FindFirst "商品CD = '" & rt![商品CD] & "'" If rs.NoMatch Then MsgBox "NG" Else MsgBox rs![商品名] End If よろしくお願いします。
- ベストアンサー
- Visual Basic
- 実行時エラー3061 パラメーターが少なすぎます
顧客情報を入力したフォームで顧客情報を入力した際 実行時エラー3061 パラメーターが少なすぎます。 1を指定してください。 と表示されましたが、これはどう処理すればよろしいでしょうか? デバックを表示で Set Rst = CurrentDb.OpenRecordset(strSQL) が黄色くなりました。 Access2010を使用しています。 よろしくお願い致します。
- ベストアンサー
- その他MS Office製品
- [ACCESS/VBA]動的にSQL文をテーブルから抽出する方法?
ボロボロです。知恵が足りずとても困っています。どなたか教えてください。 テーブル「T_SQL」の各レコードに、 クエリのSQL文(フィールド名=「strSQL」)と クエリ名(フィールド名=「QName」)と 通しNo.(フィールド名=「No」) をデータとして入力し、アクション等に応じて、「T_SQL」から 抽出したSQL文を、 マクロの「プロシージャの実行」の プロシージャ名 SetSQL("クエリー1",FindSQL(No)) により クエリ「クエリー1」に代入したいのです。 現在以下の通りに作りました。 'データベース定義 Public db As Database 'レコードセット定義 Public rs As Recordset Public Function SetSQL(QName As String, strSQL As String) CurrentDb.QueryDefs("QName").SQL = strSQL End Function Public Function FindSQL(No As String) Set db = CurrentDb() Set rs = db.OpenRecordset("T_SQL", dbopendynaset) strcriteria = "[No]='" & No & "'" rs.FindFirst strcriteria FindSQL = rs!strSQL rs.Close db.Close End Function これで実行すると、 「コンパイルエラー メソッドまたはデータメンバが 見つかりません」 というエラーメッセージが出ます。 ちょこちょこいろんなところを修正してみても、 このメッセージだけでなく他にもいろんな エラーメッセージが出ます。 冒頭に書いたような機能を可能にするには、 どのように記述すればよいのでしょうか?? ほんとにほんとに困っています。どなたか助けてください。
- ベストアンサー
- オフィス系ソフト