Undefined function 'Replace' in expression

自闭症网瘾萝莉.ら 提交于 2019-12-01 20:20:32

Unfortunately when you connect to an Access database from you VB.Net application you aren't using the Access query engine at all. You're using Jet. Some of the functions available to you in Access (such as Replace) aren't available in Jet.

The classic solution is to use a combination of Iif, Instr etc (those are available). Yep, it's not as nice as having Replace to play with but you'll have to learn to do without.

The currently-accepted answer to this question is somewhat outdated. Using

Provider=Microsoft.ACE.OLEDB.12.0

the following C# code works just fine:

cmd.CommandText =
    "UPDATE table1 SET field1 = Replace(field1, '|', '\"')";
cmd.ExecuteNonQuery();

In other words, the Replace() function may have caused problems with the older "Jet" OLEDB driver (and perhaps earlier versions of the "ACE" driver) but as of the version for Access 2010 this is no longer an issue.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!