访问:仅在从.NET

时间:2016-05-02 11:17:42

标签: .net ms-access odbc

我正在使用标准的Microsoft ODBC驱动程序从.NET环境中查询MDB。

我正面临错误:

ERROR [07002] [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 2.

运行以下查询时:

SELECT [SP_TST].[PRJ_ID] AS [PROJECT_ID], [SP_TST].[SP_ID] AS [PC_ID], 
       [SP_TST_STD_INT].[STD_ID] AS [INT_PRES_STD_ID],
       [SP_TST_STD_EXT].[STD_ID] AS [EXT_PRES_STD_ID]
FROM ([SP_TST]
  LEFT JOIN
            (SELECT [SP_TST_STD].[PRJ_ID], [SP_TST_STD].[SP_ID], [SP_TST_STD].[STD_ID]
             FROM [SP_TST_STD]
             WHERE [SP_TST_STD].[TYPE_CODE] = "I") [SP_TST_STD_INT]
  ON ([SP_TST].[PRJ_ID] = [SP_TST_STD_INT].[PRJ_ID]) AND
     ([SP_TST].[SP_ID] = [SP_TST_STD_INT].[SP_ID])
) LEFT JOIN
            (SELECT [SP_TST_STD].[PRJ_ID], [SP_TST_STD].[SP_ID], [SP_TST_STD].[STD_ID]
             FROM [SP_TST_STD]
             WHERE [SP_TST_STD].[TYPE_CODE] = "E") [SP_TST_STD_EXT]
  ON ([SP_TST].[PRJ_ID] = [SP_TST_STD_EXT].[PRJ_ID]) AND
     ([SP_TST].[SP_ID] = [SP_TST_STD_EXT].[SP_ID])

但在Access环境中运行时查询正常

MS doc说明Prompting for query parameters is a functionality of the Microsoft Access user interface. However, the Microsoft Access ODBC driver doesn't have this capability; therefore, it generates an error message.

但是我的查询没有提示任何参数!

如何在不大幅更改查询的情况下解决此问题?

修改
发现我需要将“E”替换为“E”(和“I”替换为“I”),但它似乎可以检索不同的数据。
外出吃午饭,稍后会有更多更新。

编辑2
解决方案正是将“E”替换为“E”(和“I”替换为“I”) 检索数据的差异是因为我在查询不同的MDB,我的不好! :)

实际上,新问题可能是,为什么它在Access环境中有效? 引号和双引号在该环境中是否可以互换?

0 个答案:

没有答案