-
Over flow
vuthaiha90 > 03-07-17, 05:22 PM
Em xin chào các bác, chả là thế này: chương trình của em để làm cho vay cầm cố sổ tiết kiệm. Trong phần Table em đã chọn Data Type là Number (Double) cho nó lớn, các số liệu về giá trị sổ mang sang query tính toán "Giá trị sổ khi đến hạn" vẫn đúng, nhưng đến phần VBA thì bị lỗi "Over flow" tại dòng
Tong = Tong + rst.Fields![Trigiaso].Value
"rst.Fields![Trigiaso].Value" ở đây có giá trị là 2.500.000.000đ (Hai tỷ rưỡi). Em nghĩ do giá trị sổ lớn hơn 2.147.483.648. Vậy có cách giải quyết nào trong trường hợp này không ạ, em xin cảm ơn các bác trướcMã:Dim dbs As Database
Dim rst As Recordset
Dim i, y As Long, Tong As Long
Dim oApp As Object
Dim Doc As Object
Dim strDocName As String
temp = """"
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("Q_STKDH", dbOpenDynaset)
Set oApp = CreateObject("Word.Application")
oApp.Visible = True
strDocName = """" & CurrentProject.Path & "\Word\CC" & "\Mau so 01_Phuong an su dung von.doc" & """"
Set Doc = oApp.Documents.Add(strDocName)
If rst.EOF Then
Exit Sub
Else
rst.MoveFirst
End If
y = 3
Tong = 0
Do Until rst.EOF
Doc.Tables(2).Cell(y, 1).Range.Text = rst.Fields![STT].Value
Doc.Tables(2).Cell(y, 2).Range.Text = rst.Fields![TenTS].Value
Doc.Tables(2).Cell(y, 3).Range.Text = rst.Fields![SosoTK].Value
Doc.Tables(2).Cell(y, 4).Range.Text = Format(rst.Fields![Trigiaso].Value, "##,##0") & ChrW$(273)
Doc.Tables(2).Cell(y, 5).Range.Text = IIf(rst.Fields![Kyhan].Value < 10, "0" & rst.Fields![Kyhan].Value, rst.Fields![Kyhan].Value) & " tháng"
Doc.Tables(2).Cell(y, 6).Range.Text = rst.Fields![Laisuatgui].Value & "%/n" & ChrW$(259) & "m"
Doc.Tables(2).Cell(y, 7).Range.Text = rst.Fields![Noiphathanh].Value
Doc.Tables(2).Cell(y, 8).Range.Text = rst.Fields![Ngaydenhan].Value
Tong = Tong + rst.Fields![Trigiaso].Value
rst.MoveNext
y = y + 1
Doc.Tables(2).Rows.Add
Loop
rst.Close -
RE: Over flow
ongke0711 > 03-07-17, 06:36 PM
Sao bạn ko khai báo biển Tong AS Double luôn -
RE: Over flow
tranthanhan1962 > 03-07-17, 11:42 PM
Kiểu dữ liệu liên quan đến tiền thì phải là double hoặc Currency