除了查看和更新现存记录,您可能要向数据源添加新记录。通过创建使用 ActiveX Data Objects (ADO) 和 BindingsCollection 对象来清除显示的数据、管理控件的数据绑定以及添加新记录到下一级记录集的命令按钮,您可以修改窗体以使其能作为数据输入窗体。
本主题说明如何修改您在先前的主题中创建的窗体,以使其也能作为添加新的客户记录的数据输入窗体。
要修改窗体以使您能添加新记录,请按照以下步骤执行:
注意 本主题是帮助您创建一个与 tab 分隔的文本文件中的数据进行交互的简单数据库应用程序系列说明的一部分。与 ASCII 文本文件中的数据交互是第一部分。
修改窗体的第一步是为您要完成的任务创建界面。例如,要允许在先前主题中创建的客户地址窗体上输入数据,您可以添加如下内容:
首先,添加一个命令按钮到窗体,并将其 Caption 和 Name 属性更改为 DataEntry。添加第二个命令按钮到窗体,并将其 Caption 和 Name 属性更改为 AddCustomer。然后添加第三个命令按钮到窗体,并将其 Caption 和 Name 属性更改为 ViewData。
因为只有当窗体用来输入数据时,AddCustomer 和 ViewData 命令按钮才显示,所以应把这些控件的 Visible 属性设置为 False。
您可以通过禁止数据绑定并清除窗口中显示的现存数据使数据绑定窗体也作为数据输入窗体。您也可能希望显示仅用于添加新记录的隐藏的命令按钮控件,以及显示仅用于查看现存记录的隐藏的命令按钮控件。
例如,要启用客户地址窗体中的 DataEntry 命令按钮,请添加下列代码到 DataEntry_Click 事件过程中:
Private Sub DataEntry_Click() '
禁用数据绑定。Set colBind = Nothing
'
清空文本框控件。Me.txtCustomerID = ""
Me.txtCompanyName = ""
Me.txtAddress = ""
Me.txtCity = ""
Me.txtRegion = ""
Me.txtPostalCode = ""
Me.txtCountry = ""
'
隐藏用于查看现存数据的命令按钮。Me.Next.Visible = False
Me.Previous.Visible = False
Me.First.Visible = False
Me.Last.Visible = False
Me.DataEntry.Visible = False
'
显示用于输入新数据的命令按钮。Me.AddCustomer.Visible = True
Me.ViewData.Visible = True
End Sub
当您在数据输入窗体中输入记录数据之后,就可以使用 ADO 将记录添加到记录集了。例如,要启用客户地址窗体中的 AddCustomer 命令按钮,请添加下列代码到 AddCustomer_Click 事件过程中:
Private Sub AddCustomer_Click() '
将记录添加到您数据识别类的rsCustomers
记录集中。With objDataSource.rsCustomers
.AddNew
!CustomerID = Me.txtCustomerID.Text
!CompanyName = Me.txtCompanyName.Text
!Address = Me.txtAddress.Text
!City = Me.txtCity.Text
!Region = Me.txtRegion.Text
!PostalCode = Me.txtPostalCode.Text
!Country = Me.txtCountry.Text
.Update
End With
'
清空控件以便输入其他需要的数据。Me.txtCustomerID = ""
Me.txtCompanyName = ""
Me.txtAddress = ""
Me.txtCity = ""
Me.txtRegion = ""
Me.txtPostalCode = ""
Me.txtCountry = ""
End Sub
当窗体不再用作数据输入窗体时,可以通过重新启用数据绑定,使窗体重新用作其最初的查看和编辑现存记录。当您在窗体中遍历记录时,任何新输入的记录都能显示出来。您也可以隐藏仅用于添加新记录的命令按钮控件,并且显示用于查看现存记录的隐藏命令按钮。
例如,要启用客户地址窗体中的 ViewData 命令按钮,请添加下列代码到 ViewData_Click 事件过程中:
Private Sub ViewData_Click() '
将文本框控件绑定到您数据识别类的数据源上。Set colBind = New BindingCollection
Set colBind.DataSource = objDataSource
colBind.Add txtCustomerID, "Text", "CustomerID"
colBind.Add txtCompanyName, "Text", "CompanyName"
colBind.Add txtAddress, "Text", "Address"
colBind.Add txtCity, "Text", "City"
colBind.Add txtRegion, "Text", "Region"
colBind.Add txtPostalCode, "Text", "PostalCode"
colBind.Add txtCountry, "Text", "Country"
'
显示用于查看现存数据的命令按钮。Me.Next.Visible = True
Me.Previous.Visible = True
Me.First.Visible = True
Me.Last.Visible = True
Me.DataEntry.Visible = True
'
隐藏用于输入新数据的命令按钮。Me.AddCustomer.Visible = False
Me.ViewData.Visible = False
End Sub
详细信息 有关 BindingCollection 对象的详细信息,请参阅《程序员指南》的“使用对象编程”中的创建数据识别类。
本主题是帮助您使用数据识别类和 ADO 创建一个与 tab 分隔的文本文件中的数据进行交互的简单数据库应用程序系列说明的一部分。
要 | 请参阅 |
进行下一步 | 修改类和窗体以便向分隔文本文件回写记录 |
从头开始 | 与 ASCII 文本文件中的数据交互 |