以编程方式更新数据访问页链接
时 间:2009-08-26 14:13:16
作 者: ID:4070 城市:杭州
摘 要:以编程方式更新数据访问页链接
正 文:
如果您熟悉 ODBC 表和 Microsoft Access 数据库,就会了解 ODBC 表不是按字面存储在 Access 数据库中。实际上,Access 数据库包含指向后端 ODBC 表的实际位置的链接。
Access 数据库中的数据访问页也是由链接表示。它们不是驻留在数据库中的对象,如表单、报表、查询等。数据访问页是 HTML 文件,它们存储在数据库之外的外部文件中。您在 Access 数据库中看到的数据访问页对象只是指向外部 HTML 文件的链接。
如果数据库或 HTML 文件被移到新的位置,则“数据库”窗口中的数据访问页链接将不再有效。开发人员在将数据库部署到其他计算机时可能会遇到此情况。这样,在部署数据库后,开发人员或最终用户必须将数据访问页重新链接到相应的 HTML 文件,才能使数据访问页正常工作。
本文提供了 Visual Basic for Applications (VBA) 示例代码,以阐释如何以编程方式更新 Microsoft Access 数据库中的数据访问页链接。
回到顶端
更多信息在驱动器 C 的根目录中创建一个名为 Test 的新文件夹。 将 Samples 文件夹中的所有文件复制到 C:\Test 文件夹中。注意:Samples 文件...在驱动器 C 的根目录中创建一个名为 Test 的新文件夹。
将 Samples 文件夹中的所有文件复制到 C:\Test 文件夹中。
注意:Samples 文件夹可能位于以下位置:
对于 Access 2002:<Office 路径>\Office10\
对于 Access 2003:<Office 路径>\Office11\
使用 Access 打开 C:\Test\Northwind.mdb。
在插入菜单上,单击模块。
在模块中键入或粘贴以下 VBA 代码:
Option Compare Database
Option Explicit
Sub subUpdatePageLinks()
'
'Update the links for each data access page.
'
Dim aoDAP As AccessObject
Dim strLocation As String
Dim intPosition As Integer
'Retrieve the new path/location of the database.
intPosition = InStrRev(CurrentDb.Name, "\")
strLocation = Left$(CurrentDb.Name, intPosition)
'For each page...
For Each aoDAP In Application.CurrentProject.AllDataAccessPages
'Select the page.
DoCmd.SelectObject acDataAccessPage, aoDAP.Name, True
'Assign the new path/location to the page.
aoDAP.FullName = strLocation & aoDAP.Name & ".htm"
Next aoDAP
MsgBox "Links Updated."
End Sub
在调试菜单上,单击编译 Northwind。
在视图菜单上,单击立即窗口。
在“立即”窗口中键入 subUpdatePageLinks,然后按 Enter 键。在代码完成运行后,在消息框中单击确定。
在文件菜单上,单击“关闭并返回到 Microsoft Access”。
在“数据库”窗口中单击页面,右键单击任一现有页,然后在快捷菜单上单击属性。请注意,路径框显示了 HTML 文件的新位置。
此示例仅用于说明目的。如果您的数据库和 HTML 文件没有位于同一文件夹中,您必须使用其他方法在 VBA 代码中提供路径。注意:要在 .adp 文件内部使用这些代码,必须更改以下两个命令行:
intPosition = ...
strLocation = ...
这些命令行应引用 CurrentProject 对象而不是 CurrentDB 对象。例如:
intPosition = InStrRev(CurrentProject.FullName, "\")
strLocation = Left$(CurrentProject.FullName, intPosition)
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)
- 微软Access邀测新Monaco...(11.12)
- Access列表框左右互选、列表框...(11.11)
- 高效率在导入数据前删除记录(11.10)
- Access报价单转订单示例代码(11.08)
- Access系统自带的日期选择器不...(11.08)