Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : 指定なし)
パラメーターが少なすぎます。1を指定してください。
投稿日時: 21/03/18 17:29:07
投稿者: miyama2305

access2019
テーブル(T仕訳伝票明細)のフイールドは以下です
月度/日付/伝票番号/借方科目NO/借方科目名/借方原価コード/借方工事NO/借方金額/貸方科目NO/貸方科目名/貸方原価コード/貸方工事NO/貸方金額/摘要
202001/2020/1/1--/--1/1113/普通預金/----/----/200/1111/現金/---/---/200/預金/
202001/2020/1/1--/--2/1133/未成工事/5431/1234/200/1111/現金/---/---/200/預金/
202001/2020/1/3--/--3/1111/現金---/-----/----/500/4111/売上/---/---/500/S会社/
202001/2020/1/4--/--4/1133/未成工事/5434/1237/550/1111/現金/---/---/550/預金/
以降続く
上記の借方科目NO,貸方科目NOが1133(未成工事)の場合、ユニオンクエリにて
抽出しました。以下です
クエリ名(Q未成工事集計仕訳伝票明細)です。
SELECT
 月度 AS 月 
, 日付
, 伝票番号
, 借方工事NO AS 工事NO
, IIf([借方原価コード]=5412,[借方金額],0) AS 5412
, IIf([借方原価コード]=5431,[借方金額],0) AS 5431
, IIf([借方原価コード]=5433,[借方金額],0) AS 5433
, IIf([借方原価コード]=5434,[借方金額],0) AS 5434
, IIf([借方原価コード]=5435,[借方金額],0) AS 5435
, IIf([借方原価コード]=5441,[借方金額],0) AS 5441
, IIf([借方原価コード]=5453,[借方金額],0) AS 5453
, IIf([借方原価コード]=5455,[借方金額],0) AS 5455
, IIf([借方原価コード]=5456,[借方金額],0) AS 5456
, IIf([借方原価コード]=5458,[借方金額],0) AS 5458
, IIf([借方原価コード]=5459,[借方金額],0) AS 5459
, IIf([借方原価コード]=5461,[借方金額],0) AS 5461
, IIf([借方原価コード]=5467,[借方金額],0) AS 5467
FROM
T仕訳伝票明細
WHERE
借方科目NO = 1133
UNION SELECT
 月度 AS 月 
, 日付
, 伝票番号
, 貸方工事NO AS 工事NO
, IIf([貸方原価コード]=5412,[貸方金額] * -1,0) AS 5412
, IIf([貸方原価コード]=5431,[貸方金額] * -1,0) AS 5431
, IIf([貸方原価コード]=5433,[貸方金額] * -1,0) AS 5433
, IIf([貸方原価コード]=5434,[貸方金額] * -1,0) AS 5434
, IIf([貸方原価コード]=5435,[貸方金額] * -1,0) AS 5435
, IIf([貸方原価コード]=5441,[貸方金額] * -1,0) AS 5441
, IIf([貸方原価コード]=5453,[貸方金額] * -1,0) AS 5453
, IIf([貸方原価コード]=5455,[貸方金額] * -1,0) AS 5455
, IIf([貸方原価コード]=5456,[貸方金額] * -1,0) AS 5456
, IIf([貸方原価コード]=5458,[貸方金額] * -1,0) AS 5458
, IIf([貸方原価コード]=5459,[貸方金額] * -1,0) AS 5459
, IIf([貸方原価コード]=5461,[貸方金額] * -1,0) AS 5461
, IIf([貸方原価コード]=5467,[貸方金額] * -1,0) AS 5467
FROM
T仕訳伝票明細
WHERE
貸方科目NO = 1133
ORDER BY 日付, 伝票番号;
以下の様式で表示します。
月/日付/伝票番号/工事NO/5412/5431/5433/5434/5435/5441
/5453/5455/5456/5458/5459/5461/5467/
202001/2020/1/1-/--2/1234/--/200/--/--/--/--
/--/--/--/--/--/--/--/
202001/2020/1/4-/--4/1237/--/--/--/550/--/--
/--/--/--/--/--/--/--/
 
上記テーブルから検索して下記フォームに表示します。
月及び工事NOを検索対象にします。
フォーム名(F集計_工事台帳集計)に以下のコードを記述しています。
要点のコードを表示します。
工事NO,工事NO2,cbo年月及びcbo年月2は、検索するフォーム(F工事台帳集計)のテキストボックスです
Dim strUtiID As String, strUtiID2 As String
strUtiID = Format(工事NO)
strUtiID2 = Format(工事NO2)
 
strJoken = "[月] >= " & [cbo年月] & " and [月] <= " & [cbo年月2]
strJoken = strJoken & " and ([工事NO] Between '" & _
           strUtiID & "' And '" & strUtiID2 & "')"
 
 
strSQL = "SELECT Q未成工事集計仕訳伝票明細.* INTO T_工事集計抽出作業用 FROM Q未成工事集計仕訳伝票明細 WHERE " & strJoken & ";"
 db.Execute strSQL
以上です。
T_工事集計抽出作業用 は検索結果を表示します。
 
エラーですが、 [db.Execute strSQL]です。1を指定してください、と表示されます。
調べましたら、WHERE句では列別名が使用できませんとか、説明があるのですが。
申し訳ありません。ご指導お願いします。
 
 
 
 
 

回答
投稿日時: 21/03/19 10:49:07
投稿者: sk

引用:
SELECT
 月度 AS 月 
, 日付

引用:
UNION SELECT
 月度 AS 月 
, 日付

[Q未成工事集計仕訳伝票明細]側のフィールドが
[月 ](後ろに全角スペース)であるのに対し、
 
引用:
strJoken = "[月] >= " & [cbo年月] & " and [月] <= " & [cbo年月2]

実行しようとしている SQL 文において、
[月]という[Q未成工事集計仕訳伝票明細]には
存在しないフィールドの名前が記述された結果、
ここでの[月]が暗黙的なパラメータであると解釈されたためです。

投稿日時: 21/03/24 13:24:40
投稿者: miyama2305

sk様 遅くなりました、申し訳ありません
月を月度に変更しておこないました。
 
 strSQL = "SELECT Q未成工事集計仕訳伝票明細.* INTO T_工事集計抽出作業用 FROM Q未成工事集計仕訳伝票明細 WHERE " & strJoken & ";"
を以下の変更しました
 strSQL = "SELECT Q未成工事集計仕訳伝票明細.* INTO T_工事集計抽出作業用 FROM Q未成工事集計仕訳伝票明細 WHERE [月度] >= " & cbo年月 & " and [月度] <= " & cbo年月2 & ";"
 
表示されるようになりました。
 
感謝します