จากโจทย์ที่บอกมาได้แบบนี้ครับ
แต่ส่วนของดอกเบี้ยไม่ได้เพิ่มให้นะครับ ยังไม่เข้าใจโจทย์
คือไม่ชัวว่าดอกเบี้ยคงที่ทุกงวด (ถ้าใช้ใช้แบบเดิมได้เลย)
ถ้าดอกเบี้ยเปลี่ยนตามยอดเงินต้นที่ลดลง ก็ต้องคำนวนเพิ่มเติมนิดหน่อยผมเพิ่มในส่วนการคำนวนเงินต้นคงเหลือให้ด้วยนะครับ
เพราะจากเงื่อนไขของท่านที่ว่างวดสุดท้ายต้องน้อยว่าทุกงวด บางครั้งครบ 36 งวดแล้ว
แต่งวดสุดท้ายยังเหลือเศษอยู่นิดหน่อยด้วย
เช่น ยอด 98,000.00 ส่งงวดละ 2,722.00 งวดสุดท้ายต้องได้ 2,730.00 เพิ่มมา 8 บาทเป็นต้น
Private Sub Command0_Click()
Dim rs As DAO.Recordset
Dim i As Integer
Dim getMonth As String
Dim getYear As String
Dim getDate As String
Dim getTotal As Long
Dim getPay As Long
Dim getPayMonth As Long
Dim getLastpay As Long
Dim getInterest As Long
Set rs = CurrentDb.OpenRecordset("Table1", dbOpenDynaset)
getTotal = 98000
getMonth = DatePart("m", Date)
getYear = DatePart("yyyy", Date)
getPay = (getTotal) / 36
getPayMonth = getTotal
Do Until i > 36
For i = 1 To 36
getMonth = getMonth
If getMonth > 12 Then
getYear = getYear + 1
getMonth = "1"
Else
getYear = getYear
End If
If getPayMonth < getPay Then
getPay = getPayMonth
Else
getPay = getPay
End If
'---------------เพิ่มเรคคอร์ดใหม่--------------
rs.AddNew
'ใส่ชื่อฟิลด์ที่ต้องการ และใส่ค่า โดยกำหนด Data Type ให้ถูกต้อง ถ้าเป็น Text ต้องมี "" คล่อม ถ้าเป็นตัวเลขไม่ต้องมี
rs!รหัส = "001"
rs!ชื่อสินค้า = "งวดที่ " & i
rs!วันครบกำหนด = CDate("5/" & getMonth & "/" & getYear)
If i = 36 Then
rs!จำนวน = getPayMonth 'ยอดเหลืออีกเท่าไรก็ยกมาได้เลย
Else
rs!จำนวน = getPay
End If
' rs!ดอกเบี้ย = (((55000 * 15) / 100) / 12)
rs.Update
getMonth = getMonth + 1
getPayMonth = getPayMonth - getPay
Next i
Loop
'-----------------------------------------
rs.Close: Set rs = Nothing
End Sub