Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ms access中更新sql查询后,框保持为空_Sql_Ms Access_Sql Update_Datediff - Fatal编程技术网

在ms access中更新sql查询后,框保持为空

在ms access中更新sql查询后,框保持为空,sql,ms-access,sql-update,datediff,Sql,Ms Access,Sql Update,Datediff,我在MS ACCESS中创建了以下查询: "UPDATE dbo_PricingFutures SET dbo_PricingFutures.ttm = DateDiff('m',dbo_PricingFutures.PricingDate,DateSerial(dbo_PricingFutures.PricingYear,dbo_PricingFutures.PricingMonth,14));" 当我运行查询时,它应该计算日期之间的差异。它说它将更新记录: 但是,列中的字段保持为空。我

我在MS ACCESS中创建了以下查询:

"UPDATE dbo_PricingFutures
SET dbo_PricingFutures.ttm = 
DateDiff('m',dbo_PricingFutures.PricingDate,DateSerial(dbo_PricingFutures.PricingYear,dbo_PricingFutures.PricingMonth,14));"
当我运行查询时,它应该计算日期之间的差异。它说它将更新记录:


但是,列中的字段保持为空。我不明白为什么?

由于一个错误,pricingdate列是空的。 我运行了以下vba代码:

Sub ttm()
    Dim db As Database, rs As DAO.Recordset, strsql As String
    Dim startdate As Date, maturity As Date, maturity_month As Double
    Dim maturity_year As Double

    Set db = CurrentDb()
    strsql = "SELECT * FROM dbo_PricingFutures ORDER BY PricingDate;"
    Set rs = db.OpenRecordset(strsql, dbOpenDynaset)
    rs.MoveFirst
    While (Not rs.EOF())
        rs.Edit
        startdate = rs.Fields("PricingDate")
        maturity_month = rs.Fields("PricingMonth")
        maturity_year = rs.Fields("PricingYear")
        maturity = DateSerial(maturity_year, maturity_month, 14)
        rs.Fields("ttm") = DateDiff("d", startdate, maturity)
        rs.Update
rs.MoveNext
    Wend

    rs.Close
    db.Close
End Sub
然后我在下面的行中得到一个错误:

startdate = rs.Fields("PricingDate")
这表明PricingDate列是空的。 然后,我从一个旧备份中获取数据,在PricingDate列中复制/粘贴,它工作得非常好


SQL代码运行时没有显示错误。

我想您看到的是查询的SELECT,它将始终为空。要实际查看查询是否产生了效果,您需要检查正在更新的表。我检查了该表,但它仍然为空。当你在上面的信息框中点击
Yes
时,是否会出现警告或错误信息?我很愚蠢。我替换为vba代码,它显示了一个错误:列定价日期为空!然后,我从一个旧的备份中获取数据,并将其放入空列中,它可以工作:)。对不起我的愚蠢,没问题!很高兴你把它整理好了!:)