Ms access ms访问日期和时间。时间必须为上午7:00,用户不得编辑时间

Ms access ms访问日期和时间。时间必须为上午7:00,用户不得编辑时间,ms-access,datetime,date,time,automation,Ms Access,Datetime,Date,Time,Automation,我有一个表单,用户在其中输入特定日期的测试运行信息。这将创建一个表,然后根据日期和ID与另一个表链接。在另一个表中(由其他人创建的表单填充),所有时间都是上午7:00。无论是谁为那张表创建了表单,都做了我现在要问的事情;因为日期必须完全匹配才能连接表,所以我也需要这样做。我希望这样做的方式是在我的表单中有两个字段。一个用于日期(mm/dd/yyyy),一个用于时间(##:##:##:###xM),我希望用户不可编辑时间字段。这样用户就知道他/她不能编辑时间。到目前为止,我知道如何使用输入掩码等来

我有一个表单,用户在其中输入特定日期的测试运行信息。这将创建一个表,然后根据日期和ID与另一个表链接。在另一个表中(由其他人创建的表单填充),所有时间都是上午7:00。无论是谁为那张表创建了表单,都做了我现在要问的事情;因为日期必须完全匹配才能连接表,所以我也需要这样做。我希望这样做的方式是在我的表单中有两个字段。一个用于日期(mm/dd/yyyy),一个用于时间(##:##:##:###xM),我希望用户不可编辑时间字段。这样用户就知道他/她不能编辑时间。到目前为止,我知道如何使用输入掩码等来完成所有这些。但是,我不知道如何将这两个字段相加,然后将其存储在表中。帮助?

我将编写一个更新,将所有现有时间设置为午夜(即00:00:00),然后更改表单,使其也将日期截断为午夜。添加验证规则或
检查
约束以确保值不能是午夜以外的任何值。然后,如果您使用的是用户级安全性,请检查表权限以确保用户无法删除验证规则或
检查
约束。

用户日期时间选择器控件-让用户只选择日期部分。时间部分位于另一个控件中—标签或锁定的文本框

在将SQL写入表以更新/插入时,只需将这两个控件值作为

Declare MyDateTimeValue as String
'This creates value of MM/DD/YYYY
MyDateTimeValue = MyDateTimePickerControl.Value 

'This adds a blankspace and HH:MM:SS to become "MM/DD/YYYY HH:MM:SS"
MyDateTimeValue = MyDateTimeValue  + ' ' + MyTimeLabelControl.Value
将SQL语句中的变量MyDateTimevalue用作

DoCmd.ExecuteSQL ('Insert Into MyTable (Col1, DateTimeColumn) Values (1, #' & MyDatetimeValue & '#')

在窗体的记录源中似乎只有一个日期/时间字段,并且希望在一个窗体控件中显示日期部分,在另一个控件中显示时间部分。时间部分应始终为上午7:00

将两个文本框控件(txtDate和txtdime)添加到表单中,这两个控件都使用相同的日期/时间字段作为其控件源。将txtDate的
Format
属性设置为Short-Date。将txtTime的
Format
属性设置为Medium Time。另外,在txtTime的数据选项卡上,将Enabled设置为No,并将Locked设置为Yes

然后,在txtDate的更新后事件中,您可以使用:

Private Sub txtDate_AfterUpdate()
Me.txtDate.Value=日期值(Me.txtDate.Value)+上午7点#
端接头
如果需要调整表中的现有值,可以使用
UPDATE
查询:

updateyourtable SET YourDateField=DateValue(YourDateField)+#07:00#
其中YourDateField不为空;

如果希望所有日期字段具有相同的时间,则根本不需要存储时间部分。只需存储Date()部分(即整数值)。如果要使用Now()填充字段,请将其更改为Date()。关键是,如果所有字段都有相同的时间,您根本不需要存储它……但不要格式化以添加验证规则或检查约束以强制执行规则以确保问题不会再次发生。我确实需要存储它。有另一个表,我在日期内加入到这个表中。在另一个表中,日期已与日期和时间一起存储,所有时间均为上午7点。我知道这很愚蠢,但我没有编写旧的表代码,我无法更改它。我只能忍受它。