打开Access表单,其中选择了特定记录,并在日期上键入

时间:2013-02-08 04:21:21

标签: ms-access access-vba

我正在创建一个小应用程序来跟踪我的销售活动,我被困在我记录数据的表单上。到目前为止,我花了大约9到10个小时进行研究和尝试,所以我需要一些帮助。

我有一张表格,记录了我在某一天制作的销售电话,电子邮件,会议,提案等数量。 “日期”是我的主要关键。表单应该可以帮助我输入/编辑数据。

我的基本表格如下:

糟糕! Stack不会让我发布图片 - 我可以通过电子邮件发送给任何要求的人 steve at hammerwings.com

有一个小日历弹出窗口可以选择不同的数据输入日期:

糟糕! Stack不会让我发布图片 - 我可以通过电子邮件发送给任何要求的人 steve at hammerwings.com

我可以在弹出窗口中选择一个新日期,当我点击“设置日期”按钮时,它会 (1)将记录保存在被跟踪的项目表格中 (2)关闭被跟踪的项目表格 (3)重新打开被跟踪的项目表格,并将日期设置为我在弹出窗口中选择的日期。

问题在于它希望使用该日期创建新记录,而不是编辑现有记录。我的现有数据未加载,并且在保存时出现重复的主键错误。

以下是不起作用的:

(1) Form_DailyItemsTracked.Date = CalObject.Value '这会更改父表单中的日期而不刷新任何数据

(2)关闭然后重新打开父表单并选择记录 这将打开父表单并设置日期,但不加载现有记录 - 它仍然想要创建新记录

DoCmd.OpenForm "DailyItemsTracked", , , "Date = " & CalObject.Value

(日期是表格中字段的名称)

这些都会引发某种类型的语法错误。 MyDate是由日期字段控制的表单上的文本框的名称。我已经验证了在弹出窗口中正确设置了CalObject.Value,并且它是ShortDate格式,与MyDate文本框和Date字段相同。

DoCmd.OpenForm "DailyItemsTracked", , , "[MyDate] = '" & Format(CalObject.Value, "Short Date") & "'"

DoCmd.OpenForm "DailyItemsTracked", , , "[MyDate] = " & Format(CalObject.Value, "Short Date")

DoCmd.OpenForm "DailyItemsTracked", , , "[Date] = " & CalObject.Value

DoCmd.OpenForm "DailyItemsTracked", , , "Tracked_items.[Date] = " & CalObject.Value

DoCmd.OpenForm "DailyItemsTracked", acNormal, , , acFormEdit, acWindowNormal, CalObject.Value

DoCmd.OpenForm "DailyItemsTracked", , , "MyDate = " & CalObject.Value

(3)

Forms!DailyItemsTracked.Requery

这也会引发语法错误。

(4)我还创建了一个以日期作为参数的查询,并使用查询控制表单。我可以让它打开,但它仍然想创建一个新的记录。

(5)我添加了一个自动编号字段并将其作为主键,并在表单上添加了一个隐藏控件。这消除了重复的主键错误,但是当我打开表单时它仍然没有加载现有数据。

是否无法打开选择了特定记录的表单?或者如果日期是控件,是不可能做到的?

是否有一种完全不同的方式可以更简单?

感谢您的帮助!!!

1 个答案:

答案 0 :(得分:1)

您的日期分隔符语法错误。试试这个。

DoCmd.OpenForm "DailyItemsTracked", , , "Date = #" & CalObject.Value & "#"