"表达式中的未识别函数'InStrRev'"来自C#的Access查询中的错误

Age*_*ock 2 c# ms-access winforms

有一个名为"InStrRev"的函数在Access中工作正常,但是当我使用相同的函数来获取C#窗体中的记录时,会弹出一条错误消息说

表达式中的未识别函数'InStrRev'.

有没有办法可以使用这个函数,还是我可以在我的Access查询中使用一些其他函数来获取字段中任何字符的最后一个索引?

Gor*_*son 5

Access的旧"Jet"驱动程序不允许我们像InStrRev()外部应用程序的查询一样使用VBA函数.这些功能仅适用于从Microsoft Access本身运行的查询.

但是,用于较新版本的Access数据库引擎(又称"ACE")的OLEDB和ODBC驱动程序允许外部应用程序使用许多这些内置VBA函数.因此,如果您的应用程序使用

Provider=Microsoft.Jet.OLEDB.4.0;(OLEDB),或
Driver={Microsoft Access Driver (*.mdb)};(ODBC)

然后该InStrRev()功能将无法正常工作.但是,如果您使用较新的"ACE"驱动程序:

Provider=Microsoft.ACE.OLEDB.12.0;(OLEDB),或
Driver={Microsoft Access Driver (*.mdb, *.accdb)};(ODBC)

那些相同的InStrRev()查询将运行没有错误.

较新版本的Access数据库引擎(和驱动程序)可在此处免费下载:

Microsoft Access数据库引擎2010可再发行组件