在 ms-access 中更新 sql 查询后,框保持为空
boxes stay empty after UPDATE sql query in ms-access
我在 MS ACCESS 中创建了以下查询:
"UPDATE dbo_PricingFutures
SET dbo_PricingFutures.ttm =
DateDiff('m',dbo_PricingFutures.PricingDate,DateSerial(dbo_PricingFutures.PricingYear,dbo_PricingFutures.PricingMonth,14));"
当我运行查询时,应该计算日期之间的差异。它说它将更新记录:
但是该列中的字段仍为空。我不明白为什么?
由于错误,定价日期列为空。
我运行以下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")
显示定价日期列为空。
然后,我从一个旧备份中获取数据,copy/pasting 在 PricingDate 列中,它工作得很好。
SQL 代码 运行 没有显示错误。
我在 MS ACCESS 中创建了以下查询:
"UPDATE dbo_PricingFutures
SET dbo_PricingFutures.ttm =
DateDiff('m',dbo_PricingFutures.PricingDate,DateSerial(dbo_PricingFutures.PricingYear,dbo_PricingFutures.PricingMonth,14));"
当我运行查询时,应该计算日期之间的差异。它说它将更新记录:
但是该列中的字段仍为空。我不明白为什么?
由于错误,定价日期列为空。 我运行以下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")
显示定价日期列为空。 然后,我从一个旧备份中获取数据,copy/pasting 在 PricingDate 列中,它工作得很好。
SQL 代码 运行 没有显示错误。