替换 Access 2010 应用程序中的日历控件.docx_第1页
替换 Access 2010 应用程序中的日历控件.docx_第2页
替换 Access 2010 应用程序中的日历控件.docx_第3页
替换 Access 2010 应用程序中的日历控件.docx_第4页
替换 Access 2010 应用程序中的日历控件.docx_第5页
已阅读5页,还剩18页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

替换 Access 2010 应用程序中的日历控件Office 20101(共 1)对本文的评价是有帮助-评价此主题摘要:了解如何替换 Microsoft Access 2010 应用程序中已弃用的 Calendar 控件。适用范围:Microsoft Office 2010 | Microsoft Access 2010发布时间:2010 年 10 月供稿人:Ken Getz,MCW Technologies, LLC(该链接可能指向英文页面)Microsoft Access 自首次在 Access 2.0 中添加对 ActiveX 控件的支持后,就包含了一个Calendar控件。Access 2010 中未包含日历控件MSCAL.OCX。此外,如果您尝试打开包含该控件的窗体,则会收到以下错误:“Microsoft Office Access 数据库或项目包含一个对文件MSCAL.OCX的丢失的或损坏的引用。”对于替换 Access 2010 应用程序中的日历控件,您有多个选择。您可以: 对绑定到日期字段的任何TextBox控件使用内置 DatePicker 功能。 使用 WindowsDatePicker控件(它是 Windows 公共控件的一部分)。 使用外观和功能与日历类似的子窗体。 使用第三方日期/日历控件。此直观操作方法演示除最终选项之外的所有选项。若要开始操作,请下载示例数据库 CalendarDemo.accdb(一个 Access 2010 数据库)。请注意,该数据库包含一个名为 Birthdates 的带三个字段(ID、CustomerName 和 Birthdate)的表和两个窗体: Birthdates,已绑定到名为 Birthdates 的示例表。 frmCalendar,Calendar控件的示例替换。如果您当前的应用程序使用MSCAL.OCXCalendar 控件,则您必须先移除该控件的每个实例,然后才能使用当前包含该控件的窗体。此示例演示下一个步骤,即使用 AccessCalendar控件的替代项。使用内置 DatePicker利用 Access 2007 和 Access 2010,您可以将日期选取器附加到任何绑定到日期字段的文本框控件。若要查看使用中的窗体,请打开 Birthdates 窗体(见图 1)。将“Birthdate”文本框绑定到 Birthdates 表中的 Birthdate 字段,当该文本框获得焦点时,您可以单击该字段旁边的小日历图标以显示日历并选择日期。日历图标仅在文本框获得焦点时显示。图 1. 内置日期选取器若要使用内置日期选取器,您必须确认 ShowDatePicker 属性已设置为 For Dates,如图 2 所示。TextBox控件必须已绑定到日期字段,如果您之前已创建输入掩码,则还必须删除该控件的 InputMask 属性。图 2. ShowDatePicker 属性使用 DatePicker 控件Windows 公共控件提供了一个在所有应用程序中使用的DatePickerActiveX 控件,并且 Access 应用程序也可使用此控件。虽然使用此控件所需的工作量大于使用内置日期选取器所需的工作量,但可以实现更大的灵活性。示例应用程序包含 WindowsDatePicker控件的多个实例。不过,您应尝试自行添加实例。若要使用 WindowsDatePicker控件,请在设计视图中打开 Birthdates 窗体。在功能区中,单击控件组右下角的下拉按钮以展示所有控件,然后从选项列表中选择“ActiveX 控件”(见图 3)。图 3. ActiveX 控件选项在“插入活动控件”对话框中,向下滚动以查找Microsoft Date and Time Picker Control 6.0 (SP4)(您计算机上的该控件可能具有更新的 SP,如 SP6),然后单击“确定”以插入该控件(见图 4)。请注意,您的可用控件列表可能与此图不符。图 4. Microsoft Date and Time Picker 控件选择该控件会在当前窗体中插入实例。可以像对 Access 中的任何其他控件一样,调整该控件的大小、移动和修改该控件(正如对原始Calendar控件执行的操作一样)。删除之前添加的控件 - 窗体中已有DatePicker控件的一个示例(见图 5)。请注意与该控件有关的以下内容: 由于DatePicker控件的 ControlSource 属性已设置为 Birthdate,因此该控件的外观和功能与任何其他 Access 控件类似 - 当您更改DatePicker中的日期时,Access 会自动将该值存储到窗体的当前行的 Birthdate 字段中。 该控件的 CheckBox 属性已设置为 Yes。此属性确定该控件是否应显示一个指示其包含非 Null 值的复选框。若要使用户能够将新行添加到窗体的基础表中,请将此属性设置为 Yes,否则该控件将无法指示 Birthdate 字段的新行的 Null 值。 您能够很好地控制该控件的用户界面。可以显示或隐藏向上键和向下键;可以更改字体(在此示例中设置为 Calibri 以匹配其他控件)和其他可视特性。图 5. 包含 DatePicker 控件的示例窗体尝试使用该控件:打开 Birthdates 窗体,然后单击该控件中的下拉箭头(见图 6)。选择一个日期,移至下一行并返回,您会发现,您已成功更改当前人员的出生日期。移至新的一行,您会发现该控件中的复选框并未选中(表明该值为 Null)。完成操作后,关闭该窗体。图 6. DatePicker 控件使用自定义日历窗体除了前面的技术之外,您可能还需要一个始终显示的日历,正如旧的Calendar控件一样。实现此目的的一种方法是使用一个包含日历的所有行为的子窗体。以前已为您创建了至少一个这样的窗体,并且示例应用程序包含一个名为 frmCalendar 的窗体。该窗体是一个自包含窗体,您只需将该窗体导入您自己的应用程序,即可将其作为子窗体嵌入任何其他窗体。在设计视图中打开 frmCalendar(见图 7),您将看到,它是一个具有按钮和其他控件的小型窗体 - 该窗体中的代码会执行更新和管理窗体的所有工作。在功能区的“工具”组中,选择“查看代码”。查看代码,但不要更改代码。完成此操作后,请依次关闭 Visual Basic 编辑器和 frmCalendar。图 7. 设计视图中的示例 frmCalendar若要尝试在功能区中使用日历窗体,请选择“创建”,再选择“窗体设计”。从导航窗格中,将 frmCalendar 的副本拖动到新窗体上。此操作将创建一个新的子窗体,如图 8 所示。默认情况下,该子窗体的名称为 Calendar。您可以更改该名称,但现在请将其保持不变。图 8. 新窗体上的 frmCalendar 实例如果您只能选择日期,则此日历窗体不起作用 - 此外,您必须能够确定更改选定日期的时间。示例窗体将引发DateChanged事件,这将为其事件处理程序传递一个包含新的选定日期的参数。由于子窗体不是控件,因此响应此事件需要其他操作。实际上,这仅需要另外两行代码:下列步骤演示如何挂接事件处理程序。在“设计”视图中打开之前创建的新窗体后,将一个TextBox控件添加到该窗体中的日历的旁边。将新的TextBox控件命名为 selectedDate。在功能区上,选择“查看代码”。在窗体模块中,添加以下声明。VBPrivate WithEvents calendarForm as Form_frmCalendar此声明定义可引用日历窗体类(默认情况下名为Form_frmCalendar- 每个窗体提供一个名为 Form_ 的类)的变量。通过使用 WithEvents 关键字,您可以响应变量引用的对象所引发的事件。在此示例中,该对象仅引发DateChanged事件,并且您将为该事件添加一个事件处理程序。从 Visual Basic 编辑器窗口左上角的“对象”下拉列表中,选择“窗体”。此操作将创建Form_Load事件处理程序。修改该事件处理程序,使其与下面的代码示例类似。VBPrivate Sub Form_Load() Set calendarForm = Calendar.FormEnd Sub此代码可设置您之前创建的变量,使其引用在该窗体上创建的子窗体的 Form 属性。也就是说,它使您能够以编程方式与日历窗体进行交互。最后,在“对象”下拉列表中,选择“calendarForm”(之前使用 WithEvents 关键字声明的变量)。此操作将创建calendarForm_DateChanged事件处理程序。修改该事件处理程序,使其与下面的代码示例类似。VBPrivate Sub calendarForm_DateChanged(newDate As Date) selectedDate = newDateEnd Sub此代码采用由日历窗体传递给事件处理程序的参数,并将此值复制到该窗体上的“selectedDate”文本框中。保存您的更改,并将该窗体命名为 Form1,然后切换回 Access 2010。打开该窗体,然后选择日历中的日期。您应在TextBox控件中看到选定日期(见图 9)。完成此操作后,请关闭该窗体。图 9. 日历日期虽然您无法将日历窗体绑定到表字段(使用Calendar控件可做到这一点),但可编写代码来模拟该行为。示例窗体 Birthdates 包含要挂接绑定的一些简单代码。在“设计”视图中打开该窗体,然后选择“查看代码”。请注意,窗体模块中的代码与您所看到的代码类似,但有一点除外:如下面的代码示例所示的窗体的Current事件处理程序。VBPrivate Sub Form_Current() On Error Resume Next calendarForm.Value = Me.BirthdateEnd Sub此代码验证,当您在窗体上的行之间移动时,日历窗体是否会在当前行中显示 Birthdate 字段。通过添加On Error Resume Next语句,代码可以避免新行(其中 Birthdate 字段为 Null)所需的特殊错误处理。此外,DateChanged事件处理程序会设置窗体的 Birthdate 字段值,而不是设置窗体上的TextBox控件的值。VBPrivate Sub calendarForm_DateChanged(newDate As Date) Me.Birthdate = newDateEnd Sub此源于之前的代码的更改会使得日历窗体中的更改立即传播回基础 Birthdate 字段,因此只要您进行更改,绑定到该字段的任何其他控件就会更新。关闭 Visual Basic 编辑器窗口,并打开 Birthdates 窗体。在行之间移动并验证日历窗体是否已更新以匹配当前 Birthdate 字段。更改日历窗体中的出生日期,并验证绑定到 Birthdate 字段的其他控件是否也将更新。完成此操作后,请关闭该窗体。根据此处显示的选项,您应能够将Calendar控件替换为内置日期选取器、DatePicker控件或日历子窗体。这些替换项的工作方式不会与原始Calendar控件完全相同。不过,应能够将该控件替换为这些选项之一。考虑每个选项的以下优点和缺点: 内置日期选取器o 易于使用(只需设置 ShowDatePicker 属性)。o 无可用的自定义设置。o 仅能与绑定到表中的 Date 字段的TextBox控件一起使用。 DatePicker控件o 易于使用。o 允许的自定义设置多于内置日期选取器允许的自定义设置。o 还可用于选择时间。o 可绑定到数据源。o 根据 Microsoft 自定义控件 DLL 的不同,这将引发严重的版本控制问题。您的最终用户可能没有安装与您的 DLL 版本相同的 DLL,这就需要将其 DLL 更新到最新版本。o 仅以下拉形式显示,且无法显示为打开的日历。 日历窗体o 仅显示为打开的日历(优点和缺点)。o 可完全进行自定义,但需要在设计器和代码中执行一些操作。o 易于使用 - 只需拖动到窗体上并编写代码。o 挂接事件需要额外的代码。o 在未编写代码的情况下,绑定将不可用。在 Web 应用程序中,通常会看到横跨在页面顶部的主菜单项,以及位于主菜单下方或者页面左侧或右侧的子项。Access 2010 旨在使您能够轻松创建面向 Web 的数据库应用程序,而新的导航窗体功能可让您轻松地为 Web 创建标准用户界面。此外,这些界面在客户端应用程序中也很有用。此直观操作方法演示如何使用新的导航窗体功能创建 Access 2010 窗体,并讨论图 1 中所示的示例窗体。图 1. 示例窗体在 Access 2010 中,打开 Northwind 示例数据库。(若要检索 Northwind 示例数据库,请依次选择“文件”、“新建”和“示例”。从 O 示例列表中,选择“Northwind 2007”。)打开新的示例数据库,绕过登录窗体,然后在导航窗格中按类型对对象进行分组。在“创建”选项卡中,选择“导航”选项,这将显示六种不同的布局,您在创建导航窗体时可从这些布局中进行选择(见图 2)。您可选择将导航选项卡在窗体顶部排列成一行,或者排列在窗体的左侧或右侧。对于多层选项卡,您可将其放置在窗体顶部的两行中,或者先将这些选项卡在顶部横向排列,然后再在窗体的左侧或右侧向下排列。在此示例中,选择“水平标签和垂直标签,左侧”。单击标题“导航窗体”,然后将其更改为“管理实体”。完成此操作后,该窗体应与图 3 类似。图 2. 导航窗体布局选择图 3 显示了已修改标题的窗体。图 3. 已修改标题的窗体创建顶层选项卡示例窗体应显示要用于客户、员工和产品的顶层选项。若要开始操作,请单击导航窗体顶部的“新增”按钮,然后将文本更改为“客户”;Access 将添加一个新选项卡。重复此过程来创建“员工”和“产品”选项卡。完成此操作后,选项卡应与图 4 类似。图 4. 顶层选项卡布局创建第二层选项卡利用顶层选项卡,可以在窗体的左侧轻松添加要在用户单击第二层选项卡时显示的窗体和报表。首先单击“客户”顶层选项卡。从导航窗格中,将“客户列表”窗体拖动到窗体左侧的“新增”选项卡上。这将在导航按钮和现有窗体之间创建一个新连接,设置“导航目标名称”按钮属性,使其引用指定窗体。重复此过程来将“客户电话簿”和“客户通讯簿”报表添加到左侧的选项卡上。单击窗体顶部的“员工”选项卡,并从“导航窗格”中将“员工列表”窗体拖动到窗体左侧的“新增”选项卡上。对“员工通讯簿”和“员工电话簿”报表重复此步骤。单击顶部的“产品”选项卡,然后将“产品详细信息”窗体拖动到左侧的选项卡上。对与产品相关的四个报表重复此步骤。使用“实体”名称保存新窗体。此时,该窗体应与图 1 类似。在“窗体”视图中显示此窗体,并与各种选项卡进行交互(从“联系人”移动到“员工”,再移动到“产品”),然后验证第二层选项卡是否工作正常。下一节包含有关如何设置导航窗体样式的信息。设置导航窗体的样式到目前为止,您仅使用了导航窗体的默认样式。实际上,您可以控制每个按钮的外观,并且可以同时对所有按钮应用样式。若要尝试此操作,请切换回“布局”视图。然后,单击顶部的“客户”选项卡。单击左侧的顶层选项卡,然后在按住 Ctrl 的同时单击左侧其余两个选项卡。在功能区中,选择“格式”选项

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论