首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB使用数据环境连接带密码的access,测试连接时失败解决方案

2012-01-14 
VB使用数据环境连接带密码的access,测试连接时失败VB使用数据环境连接带密码的access,测试连接时失败在没

VB使用数据环境连接带密码的access,测试连接时失败
VB使用数据环境连接带密码的access,测试连接时失败

在没有设置密码时就可以测试连接,就可以成功。
在access我把打开方式改为普通打开,不用独占方式,还是失败,报同样的错误。请问这是什么原因?
谢谢。

[解决办法]
晕死看错你的问题了
不用数据环境可以正常连接,那为什么还要去用数据环境呢?
我不用数据环境,不过看你的贴图,问题应该和密码无关,好象你图中多是乱码,你检查一下路径看看
[解决办法]
建立模块,代码如下:


'传递参数SQL传递查询语句,MsgString传递查询信息。自身以一个数据集对象的形式返回
Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset
Dim Cnn As ADODB.Connection '定义连接
Dim Rst As ADODB.Recordset
Dim sTokens() As String '定义字符串

On Error GoTo ExecuteSQL_Error '异常处理

sTokens = Split(SQL) '用Split函数产生一个包含各个子串的数组

Set Cnn = New ADODB.Connection '创建连接
Cnn.Open ConnectString

If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then '判断字符串中是否含有指定内容
Cnn.Execute SQL '执行查询语句
MsgString = sTokens(0) & "query successful" '返回查询信息
Else
Set Rst = New ADODB.Recordset '闯将数据集对象
Rst.Open Trim$(SQL), Cnn, adOpenKeyset, adLockOptimistic '返回查询结果
Set ExecuteSQL = Rst '返回记录集对象
MsgString = "查询到" & Rst.RecordCount & " 条记录"
End If

ExecuteSQL_Exit:

Set Rst = Nothing '清空数据集对象
Set Cnn = Nothing '中断连接
Exit Function

ExecuteSQL_Error: '判断错误类型

MsgString = "查询错误:" & Err.Description
MsgBox MsgString
Resume ExecuteSQL_Exit

End Function

'连接数据库
Public Function ConnectString() As String
'返回一个数据库连接
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password= password ;Data Source=" & App.Path & "\db.mdb"
End Function


在程序中引用如下:

Private Sub CmdReg_Click()
Dim TxtSQL As String
Dim Mrc As New ADODB.Recordset
Dim MsgText As String

TxtSQL = "select * from system"
Set Mrc = ExecuteSQL(TxtSQL, MsgText)
Mrc.Fields("RegSN") = Me.TxtReg.Text
Mrc.Update
Mrc.Close
End Sub
[解决办法]
可能是你的Access版本太新了??

以前我处理过的就是必须把Access转换成2000 还是 97 的才没有问题。
你转换看看。。。
[解决办法]
既然转换格式都不能了,
那出现问题的就是在密码设置那边。

虽然不怎么清楚,但是感觉就是账号、密码那边的问题。
[解决办法]

探讨
也有可能是密码的问题,但不用数据环境时就可以连接上。
用数据环境就不行。
是不是数据环境连接带密码的数据源时不能这样连?

[解决办法]
在第四个选项卡,修改Jet OLEDB:Database Password的值为你的数据库密码
试试
[解决办法]
手头上刚好有一个系统功能组件是用vb6 and access写的,或许可以给楼主一些idea。
首先,第三楼的第一图对的,第二个图什么都不写,(db name,account and password)

第二,代码上,
' initialize database, #DATASOURCE# is the access file name.
ConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=#DATASOURCE#;Jet OLEDB:Database Password=password;'
deSQLAccess.Conn.ConnectionString = ConnectionString

然后你在程序测试可否连接db

重点是不要理会vb 向导的错误,我也无法在向导测试带password 的access db


热点排行
Bad Request.