Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
访问VBA/SQL错误_Vba_Ms Access - Fatal编程技术网

访问VBA/SQL错误

访问VBA/SQL错误,vba,ms-access,Vba,Ms Access,尝试在Access数据库中运行SQL行时,我收到以下错误:运行时错误“3061”:参数太少。预期为1。 VBA在这行代码处停止: Set rst = appAcc.CurrentDb.OpenRecordset(LW_Data, dbOpenSnapshot) 这里是我定义LW_数据的地方: LW_Data = "SELECT [TbC LW: Final Dispos / HR].Caller, [TbC LW: Final Dispos / HR].[Caller Name], [TbC

尝试在Access数据库中运行SQL行时,我收到以下错误:
运行时错误“3061”:参数太少。预期为1。

VBA在这行代码处停止:

Set rst = appAcc.CurrentDb.OpenRecordset(LW_Data, dbOpenSnapshot)
这里是我定义LW_数据的地方:

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_数据的变量定义中存在格式错误。但是如果我手动打开数据库,创建一个新的查询,然后粘贴这段代码,它就会运行得很好(当然会替换掉换行符)


有人能解释一下吗?我已经检查确保所有的表和字段也存在,就像我说的,我可以在数据库中手动运行它。但从Excel中的VBA执行此操作似乎是不可能的。

我在包含VBA的SQL查询中发现了这段代码:

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

应该是这样的

 Left( "&[CurrentProject].[Name]&",Len("&[CurrentProject].[Name]&")-6) 
另外,请尝试阅读您在这里发布的内容,然后至少努力将其格式化。如果您不确定如何操作,请单击小按钮?按钮位于文本区域右上角上方,以获取标记帮助。当你编辑时,你也可以改进你的标题,这样就可以解释你遇到的问题或你提出的问题。您在这里所做的只是重复标记中的可用信息,并添加SQL错误,这是无用的。您的标题应该足够清晰,以便将来的读者在搜索结果中使用。