如何以编程方式更改它时如何转义新的Microsoft Access数据库密码?

时间:2016-10-25 13:30:38

标签: ms-access vb6 escaping

我需要以编程方式更改Access数据库密码,我正在使用此代码(例如简化):

Dim adoCn As ADODB.Connection
Set adoCn = New ADODB.Connection
adoCn.Mode = adModeShareExclusive
adoCn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb";JET OLEDB:Database Password=TEST;"
adoCn.Execute "ALTER DATABASE PASSWORD p@ssword TEST;"
adoCn.Close

这会在{1}}的执行行中落空。

经过一些测试后,似乎只有£和_符号可以在密码中用作任何其他符号 - $%^& *()+?!@ - 抛出错误。

有没有办法逃避密码,以便它可以接受其他字符?我已经尝试了'p @ ssword'和[p @ ssword],但都没有效果。

1 个答案:

答案 0 :(得分:3)

在Jet SQL中,严重重音字符可以用作标识符转义或引用表,字段,甚至用户和组的名称,但它也适用于ALTER DATABASE PASSWORD SQL语句中的密码。

ALTER DATABASE PASSWORD `!@#$%^&*(` NULL

我们习惯于括号[]引用,但很多SQL方言都很满意,喜欢甚至需要严肃的口音。我认为安装程序数据库SQL需要它并且不会接受括号。