希望有人可以帮忙吗?我对 Access 2016 还很陌生,我的任务是为我们学校的早餐和课后俱乐部构建一个非常简单的预订系统。
我有一个包含儿童列表的表(主键是 ChildID),另一个表 (CLUBS) 列出了 5 个可用的俱乐部,第三个表 (BOOKINGS) 将儿童连接到俱乐部(ChildID、ClubID、DateRequested)
我有一个简单的表单,使我能够从下拉框中选择孩子的名字,然后从列表中选择一个俱乐部,然后输入所需的日期。这会将记录保存到 Bookings 表中。
这工作正常,但是为了使其更易于使用......我在表单中添加了未绑定的开始日期和结束日期字段,以便能够快速为孩子预订一个学期......即我不必单独添加每一天,而是输入孩子的名字,选择一个俱乐部,然后输入开始和结束日期。在预订表中创建多条记录,其中儿童 ID、俱乐部 ID 相同,但 DateRequested 字段不同。
我们确实需要在每个日期为孩子在预订表中存储一条记录,以便我们可以打印每天的登记表......以及发票/报告。
从 VBA 来看...我想我需要使用 INSERT INTO 命令?是最好的方法吗?另外,我需要确保忽略周六/周日范围内的日期。
我真的很感激任何有关此问题的指导以及哪些命令最有效的指示......
这就是 DAO 的闪光点。运行添加记录的循环比多次调用 Insert Into 要快得多。
具体方法如下:
Public Function PopulateBokings()
Dim rsBookings As DAO.Recordset
Dim NextDate As Date
Set rsBookings = CurrentDb.OpenRecordset("Select Top 1 * From Bookings")
NextDate = Me!StartDate.Value
While DateDiff("d", NextDate, Me!EndDate.Value) >= 0
If Weekday(NextDate, vbMonday) > 5 Then
' Skip Weekend.
Else
rsBookings.AddNew
rsBookings!ChildrenId.Value = Me!ChildrenId.Value
rsBookings!ClubsId.Value = Me!ClubId.Value
rsBookings!DateRequested.Value = NextDate
rsBookings.Update
End If
NextDate = DateAdd("d", 1, NextDate)
Wend
rsBookings.Close
Set rsBookings = Nothing
End Function
将代码粘贴到表单的代码模块中,将字段和控件名称调整为您的名称,然后从按钮的 Click 事件调用该函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)