2016-12-19 15 views
-1

AccessデータベースにSQLの行を実行しようとしたとき、私は次のエラーが表示されますRun-time error '3061': Too few parameters. Expected 1.アクセスVBA/SQLエラー

VBAのコード行で停止します。ここで、Iここ

Set rst = appAcc.CurrentDb.OpenRecordset(LW_Data, dbOpenSnapshot) 

ですLW_Dataを定義する:

LW_Data = "SELECT [TbC LW: Final Dispos/HR].Caller, [TbC LW: Final Dispos/HR].[Caller Name], [TbC LW: Final Dispos/HR].[Caller Level] AS [Lvl], [TbC LW: Final Dispos/HR].[Final Dispos] AS [FDs], [TbC LW: Final Dispos/HR].[$/Final Dispo] AS [PFD], [TbC LW: Final Dispos/HR].[Average Gift] AS [Average], [TbC LW: Check $].[Check Count] AS [Ck], [TbC LW: Check $].[Check $] AS [Ck $], [TbC LW: Check $].[Check $ Paid] AS [Ck Paid], [TbC LW: Credit Card $].[CC Count] AS [CC], " & _ 
"[TbC LW: Credit Card $].[CC $], [TbC LW: Credit Card $].[CC $ Paid], [TbC LW: SIs].[Send Infos] AS SIs, [TbC LW: DNCs].CountOfDisposition AS [DNCs], [TbC LW: Check $].[Ck Paid], [TbC LW: Credit Card $].[CC Paid], [TbC LW: Q4].Q4, [TbC LW: Hour Figures].[$/HR], [TbC LW: Hour Figures].[FD/HR], FormatPercent(Round((Nz([TbC LW: Check $]![Check Count],0)+Nz([TbC LW: Credit Card $]![CC Count],0))/[TbC LW: Final Dispos/HR]![Final Dispos],2),0) AS [Pldg/FD], " & _ 
"[TbC LW: Hour Figures].SumOfPledge, [TbC LW: Hour Figures].SumOfHours,[TbC LW: Check $]![check count]+[TbC LW: Credit Card $]![cc count] AS [Pldge Count], Left([CurrentProject].[Name],Len([CurrentProject].[Name])-6) AS [Camp] " & _ 
"FROM ((((([TbC LW: Final Dispos/HR] LEFT JOIN [TbC LW: Check $] ON [TbC LW: Final Dispos/HR].Caller = [TbC LW: Check $].Caller) LEFT JOIN [TbC LW: DNCs] ON [TbC LW: Final Dispos/HR].Caller = [TbC LW: DNCs].Caller) LEFT JOIN [TbC LW: Credit Card $] ON [TbC LW: Final Dispos/HR].Caller = [TbC LW: Credit Card $].Caller) LEFT JOIN [TbC LW: SIs] ON [TbC LW: Final Dispos/HR].Caller = [TbC LW: SIs].Caller) LEFT JOIN [TbC LW: Q4] ON [TbC LW: Final Dispos/HR].Caller = [TbC LW: Q4].Caller) LEFT JOIN [TbC LW: Hour Figures] ON [TbC LW: Final Dispos/HR].Caller = [TbC LW: Hour Figures].Caller " & _ 
"ORDER BY [TbC LW: Final Dispos/HR].[Caller Level], [TbC LW: Final Dispos/HR].Caller;" 

ここで私は完全に失われます。他の変数をSQL文として定義し、同じコード行で正常に動作するため、データベースに正しく接続されていて、行の構文が正しいです。私は、LW_Dataの変数定義内に書式設定エラーがあると確信しています。しかし、私は手動でデータベースを開いて、新しいクエリを作成し、このコードを貼り付けると、それはうまく動作します(もちろん、改行は改行されます)。

誰もがこれに光を当てることができますか?私はすべてのテーブルとフィールドが存在することを確認するためにチェックしました、私は言ったように、私はデータベース内で手動でこれをうまく動かすことができます。しかし、VBAからExcelでそれを行うことは不可能と思われます。

+2

http://stackoverflow.com/search?q=ようになるはずです%5Bvba%5D + run-time + error + 3061また、あなたがここに投稿したものを読んでみてください。それから[編集]して、少なくともそれをフォーマットするよう努力してください。方法がわからない場合は、マークアップヘルプのテキストエリアの右上にある** **ボタンをクリックしてください。編集中は、タイトルを改善して、質問している問題や質問していることを説明することもできます。ここで行ったことは、タグで利用可能な情報を繰り返し、* SQLエラー*が追加されたことです。これは役に立たないものです。あなたのタイトルは、将来の読者が検索結果に使用できるほど明確でなければなりません。 –

答えて

1

私はVBAを含むあなたのSQLクエリでコードのこの部分を見つけた:

Left([CurrentProject].[Name],Len([CurrentProject].[Name])-6)

それはこの

Left("&[CurrentProject].[Name]&",Len("&[CurrentProject].[Name]&")-6)