无法按日期联接两个表

时间:2019-11-24 20:39:31

标签: vba ms-access office365

已将两个表格从excel电子表格导入到ACCESS中。它们是窄表:

INRMaster:      MastDate       Date/Time (Short Date)

CIInput:        CIDate         Date/Time (Short Date)
                INRTestResult  Number
                Dose           Number
                OutOfRange     Short Text

CIInput表已下载,日期为日期/时间以及测试日期和时间。我将该日期字段重新格式化为mm:dd:yyyy以匹配我创建的表INRMaster。

在两个表上都没有主键。我在两个表中都尝试使用日期主键进行联接,但也未返回任何结果。使用QBE网格创建查询。

生成的SQL如下:

SELECT INRMaster.MastDate, CIINput.[INR test result], CIINput.Dose, CIINput.OutofRange
FROM INRMaster INNER JOIN CIINput ON INRMaster.MastDate = CIINput.CIDate

Office 365访问,Windows 10。

谢谢

1 个答案:

答案 0 :(得分:2)

“设置格式”属性不会更改数据。除非您实际修改保存的值,否则时间部分仍然存在,并且由于不太可能值同意第二个值,因此连接将失败。不要在表格中应用格式-查看完整的保存值。

使用查询中的表达式提取日期部分。如果两个字段都保存有日期和时间部分,则从两个字段中提取日期部分。考虑:

SELECT INRMaster.MastDate, CIINput.[INR test result], CIINput.Dose, CIINput.OutofRange
FROM INRMaster INNER JOIN CIINput ON Int(INRMaster.MastDate) = Int(CIINput.CIDate);

请勿在设计视图中打开查询。查询设计器无法解决此联接。必须加入嵌套子查询才能启用设计视图。