积极答复者
Access2007 没法打开2003版本编写的含用户级安全机制的数据库文件

问题
答案
-
Hi,
立即窗口中运行 VisualBasic 代码:
1.
在 Access 2007里, 打开信任数据库, 或启用现有数据库中宏。
2.
按 CTRL+G 以打开立即窗口。
3.
键入下面一行代码, 然后按 Enter。
DoCmd.RunCommand acCmdWorkgroupAdministrator
4.
工作组管理员 对话框中, 单击 【加入】 , 并单击 【浏览】。
5.
找到并然后单击下列文件, 并单击 打开 :
默认位置:C:\ProgramFiles\Common Files Files\system\System.mdw
选择自己的mdw文件
6.
工作组管理员 对话框中, 确定 , 依次 退出 。
Jaynet Zhang
TechNet Community Support
- 已标记为答案 Jaynet ZhangModerator 2012年9月18日 9:07
全部回复
-
Hi,
Access 2007 仅为在 Access 2003 和更低版本的 Access 中创建的数据库(.mdb 和 .mde 文件)提供用户级安全机制。在 Access 2007 中,如果您打开一个在较低版本的 Access 中创建的数据库,并且该数据库应用了用户级安全机制,那么该安全功能对该数据库仍然有效。例如,用户必须输入密码才能使用该数据库。
另外,您还可以启动和运行 Access 2003 和更低版本的 Access 提供的各种安全工具,如“用户级安全机制向导”和各种用户和组权限对话框。在操作过程中,请记住只有打开 .mdb 或 .mde 文件时这些工具才可用。如果将文件转换为 Office Access 2007 文件格式,那么 Access 会删除现有的所有安全功能。
我认为你是将Access 2003直接转换为了Access 2007了,所以就会出现这样的问题。
具体内容,可以查看以下链接:
Jaynet Zhang
TechNet Community Support
-
Hi,
立即窗口中运行 VisualBasic 代码:
1.
在 Access 2007里, 打开信任数据库, 或启用现有数据库中宏。
2.
按 CTRL+G 以打开立即窗口。
3.
键入下面一行代码, 然后按 Enter。
DoCmd.RunCommand acCmdWorkgroupAdministrator
4.
工作组管理员 对话框中, 单击 【加入】 , 并单击 【浏览】。
5.
找到并然后单击下列文件, 并单击 打开 :
默认位置:C:\ProgramFiles\Common Files Files\system\System.mdw
选择自己的mdw文件
6.
工作组管理员 对话框中, 确定 , 依次 退出 。
Jaynet Zhang
TechNet Community Support
- 已标记为答案 Jaynet ZhangModerator 2012年9月18日 9:07
-
Hi,Jaynet,
已解决,十分感谢!
在该数据库代码中,原来有一段如下的代码,原理是在表City中查找到距离与时间字段,然后在deliveryrate表中,查找到特定货代(CNPL)与运输方式(SemiFTL)在该距离段下2吨车的费率及最低收费,最后用2 吨车的数量*费率*距离得出的运费与最低收费比较取大者。
现在的deliveryrate表有rate1,Rate2,Rate3,Rate4,原理是先查找出发城市与到达城市的城市级别,然后在一张Matrix表中找到价格级别
请问我如何在原来的基础上修改代码,我是初学者,请不吝赐教,十分感谢!!!
- city表
苏州 常州 40 24 12 3
苏州 张家港 71 24 12 3原Deliveryrate表
Carrier Method Distance_Low_Km Distance_High_Km Weight_Low_Ton Weight_High_Ton Rate Rate_unit in_charg
CNPL SemiFTL 0 199.99 0 2 9.49 CNY/km 350
CNPL SemiFTL 0 199.99 0 3 9.95 CNY/km 400STemp = " SELECT Distance_km, SemiFTLDeliveryHour from City WHERE shipfrom= '" & Me![shipfrom] & "' and City= '" & Me![City] & "'" Rs.Open STemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic If Rs.RecordCount < 1 Then MsgBox "No information about this city in the city list, pls check!", vbOKOnly, "Warm notice" Exit Sub Else distance = Rs("Distance_km") deliveryhour = Rs("SemiFTLDeliveryHour") [ExArriveDate] = DateAdd("h", deliveryhour, [DispatchDate]) End If Rs.Close 'rate for 2t If [2t] > 0 Then STemp = "Select Rate,Min_Charge_CNY from DeliveryRate WHERE (Carrier='CNPL') AND (Method='SemiFTL') " STemp = STemp & "AND (Distance_Low_Km<=" STemp = STemp & CStr(distance) STemp = STemp & ") AND (Distance_High_Km>= " STemp = STemp & CStr(distance) STemp = STemp & ") AND (Weight_High_Ton=2)" Rs.Open STemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic cost2t = [2t] * distance * Rs("rate") If cost2t < [2t] * Rs("Min_Charge_CNY") Then cost2t = [2t] * Rs("Min_Charge_CNY") End If Rs.Close End If