С ошибкой в столбце pricetingdate было пусто. Я побежал следующий код: 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 запроса, который всегда будет пустым. Чтобы увидеть, действительно ли запрос вызвал эффект, вам нужно проверить таблицу, которую вы обновляете. – PaulFrancis
Я проверил стол, и он по-прежнему пуст –
Curios. Когда вы нажимаете «Да» в указанное выше сообщение, появляется ли сообщение с предупреждением или сообщением об ошибке? – PaulFrancis