EXCEL中用VBA打开ACCESS数据库时的密码问题
EXCEL中用VBA打开ACCESS数据库时的密码问题
打开ACCESS 2000 时有密码:
用户:管理员
密码:123
要打开的数据库 DB1.mdb 也有密码:456
请问如何在EXCEL 2000 中用VBA打开ACCESS数据库 DB1.mdb ,而不需要人工再输入上述的密码?
____________________
看客
kanker@sohu.com
kanker.8u8.com
OICQ:345111
问题点数:20、回复次数:9Top
1 楼Ganzl(甘逐浪)回复于 2001-12-14 12:57:51 得分 20
Dim cnn As New ADODB.Connection
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Test\db1.mdb;Persist Security Info=False;Jet OLEDB:Database Password=123"Top
2 楼kanker(看客)回复于 2001-12-14 21:50:16 得分 0
Ganzl(甘逐浪) 你好。
我还没试过你的方法,但从你的语句上来看,还没有达到我的要求啊
1、我打开的ACCESS程序是有密码保护的:用户名是:管理员,口令是:123
2、我的DB1.mdb 文件也是有密码:456 的。
我的OICQ是345111,欢迎各位高手一起探讨Top
3 楼Ganzl(甘逐浪)回复于 2001-12-15 12:05:51 得分 0
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Test\db1.mdb;Persist Security Info=False;Jet OLEDB:Database Password=456","admin","123" Top
4 楼kanker(看客)回复于 2001-12-16 17:29:52 得分 0
Ganzl(甘逐浪) 你好。你的OICQ是多少?能否一起探讨?
我提这个问题的意思是:
可以开放EXCEL,但不开放ACCESS,所以从EXCEL中调用ACCESS打开所要的数据库,然后再复制到EXCEL后关闭ACCESS,比较习惯于打开视图来处理。应如何处理?Top
5 楼kanker(看客)回复于 2001-12-18 16:19:15 得分 0
我是这样做的:
*****************
Option Explicit
Const acCmdSelectAllRecords = &H6D
Const acCmdCopy = &HBE
Const acCmdClose = &H3A
Const Target As String = "c:\temp\db1.mdb"
Sub GetAccessTableData()
Dim AccessObject As Object
Set AccessObject = CreateObject("Access.Application")
AccessObject.OpenCurrentDatabase Target
AccessObject.Visible = False
AccessObject.docmd.opentable "table1"
AccessObject.docmd.runcommand acCmdSelectAllRecords
AccessObject.docmd.runcommand acCmdCopy
AccessObject.docmd.runcommand acCmdClose
AccessObject.docmd.Close
AppActivate "microsoft Excel"
Workbooks.Open "c:\temp\db1.xls"
Worksheets("Sheet1").Activate
Worksheets("Sheet1").Range("A1").Select
ActiveSheet.PasteSpecial
End Sub
'上面代码的意思是:在EXCEL里写代码打开ACCESS数据库DB1.mdb,把table1表里的数据复制到EXCEL表里。
*****************
以上的操作都在视图下操作的。问题在于 打开ACCESS数据库是有密码保护:
用户:管理员,口令:123
所要打开的数据库DB1.mdb 也是有口令保护的,口令是:456
AccessObject.OpenCurrentDatabase 这个方法不能打开有口令保护的数据库 :(
所以请教各位高手。
我不善于使用ADO,如果只能用ADO的话,能否把全部代码写全?
谢谢了。
Top
6 楼Ganzl(甘逐浪)回复于 2001-12-19 19:56:22 得分 0
你是想把整个表中的记录导出到Excel中吧
dim cnn as new adodb.connection,rst as new adodb.recordset
dim i as long,j as long
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Test\db1.mdb;Persist Security Info=False;Jet OLEDB:Database Password=123"
rst.open "table1",cnn
'打开Excel,获得ActiveWorksheet,略...
do until rst.eof
i=i+1
for j=1 to rst.fields.count
activeworksheet.cells(i,j).value=rst.fields(j-1)
next j
rst.movenext
loop
代码没有调试过,不过逻辑没有什么问题Top
7 楼Ganzl(甘逐浪)回复于 2001-12-19 20:00:49 得分 0
哦,又少了一截,应该是:
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Test\db1.mdb;Persist Security Info=False;Jet OLEDB:Database Password=456","admin","123"
Office开发的问题可以转到VBA论坛里去
:)Top
8 楼kanker(看客)回复于 2001-12-21 09:12:06 得分 0
非常感谢 Ganzl(甘逐浪) 的指点。我己把贴子转到VBA论坛。
我试一下代码。:)Top
9 楼sunyuzhe(sunyuzhe.363.net)回复于 2001-12-22 16:10:55 得分 0
关注 upup Top




