关于Win7下使用Adodc 报错 无效的授权说明 的解决方法分享贴
因为需要使用 Adodc 绑定数据到 MSHFlexgrid 控件
在 xp、win2000 下 如下代码可用
Public Con1 As New ADODB.Connection
Con1.Open "Provider=SQLOLEDB;data source='" & Ser & "';Database=" & Db1 & ";Uid=" & User & ";PWD=" & Pass & ";"
Adodc1.ConnectionString=con1.ConnectionString
Adodc1.RecordSource = "Select * From TableNameXX"
Adodc1.Refresh
'如果有数据那么
If Adodc1.Recordset.RecordCount > 0 Then Set MS1.DataSource = Adodc1
而在Win7 下此段代码无法通过
在运行到 "Adodc1.Refresh" 时会报错 "无效的授权说明"
需要将连接方式改为
Adodc1.ConnectionString = "Provider=SQLOLEDB.1;Data Source='" & Ser & "';User ID=" & User & ";PWD=" & Pass & ";Initial Catalog=" & Db1 & ";Persist Security Info=False"
此时 运行到 "Adodc1.Refresh" 时会报错 "无效的 TableNameXX"
需要将数据源中增加数据库名称 Select * From DataBaseName..TableNameXX
即可通过,win7下代码需写成如下方式
Adodc1.ConnectionString = "Provider=SQLOLEDB.1;Data Source='" & Ser & "';User ID=" & User & ";PWD=" & Pass & ";Initial Catalog=" & Db1 & ";Persist Security Info=False"
Adodc1.RecordSource = "Select * From DataBaseName..TableNameXX"
Adodc1.Refresh
'如果有数据那么
If Adodc1.Recordset.RecordCount > 0 Then Set MS1.DataSource = Adodc1
另外还需注意,xp、2000 下的程序要在win7下运行,所涉及到的控件需要以管理员身份进行注册,否则无法使用
在 %systemroot%\system32\ 找到 CMD.exe 右键选择以管理员身份运行
然后 执行 Regsvr32 XXXX.ocx 即可注册成功
[解决办法]
该回复于2010-12-24 11:24:19被版主删除