vuthaiha90 > 19-04-18, 04:38 PM
ongke0711 > 19-04-18, 05:25 PM
vuthaiha90 > 20-04-18, 08:43 AM
(19-04-18, 05:25 PM)ongke0711 Đã viết: Tôi nghĩ là làm đc. Lấy random record từ Recordset thì dễ rồi, chỉ cần kèm thêm điều kiện giá trị nữa là ok. Bạn nên đưa csdl mẫu lên để test code nhanh hơn.
Số tiền chênh lệch so với mức chuẩn đề ra +- bao nhiêu % là chấp nhận đuợc?
duynamvnn1208 > 21-04-18, 07:03 PM
ongke0711 > 21-04-18, 08:39 PM
(20-04-18, 08:43 AM)vuthaiha90 Đã viết: Link CSDL đây bác ạ. Sao cho Lợi nhuận trong 1 tháng (= Doanh thu - Chi phí 1 tháng) chia cho tổng "Thành tiền mua" bằng 1,5--->1,7% là được ạ. Với cho em hỏi thế random được cả Số lượng không ạ, hay bảng này là cố định rồi random dòng thôi ạ
Public Sub RanDomListGoods()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim RecCount As Integer, SttDong As Integer, SoLuongRnd As Long
Dim DoanhThu As Double, TongChiPhi As Double, GiaVonHangBan As Double, LNKyVong As Double, LN As Double
Dim strSQL As String
Set db = CurrentDb
Set rs = db.OpenRecordset("tempPAKDexcel", dbOpenSnapshot)
If rs.RecordCount = 0 Then Exit Sub
rs.MoveFirst
rs.MoveLast
RecCount = rs.RecordCount
LNKyVong = Me.txtLNKyVong
TongChiPhi = Me.txtTongChiPhi
db.Execute "DELETE * FROM tbl_PAKDTemp", dbFailOnError
Do Until LN > LNKyVong
On Error Resume Next 'Dung de vuot loi trung du lieu Error 3022 (do thiet lap PK trong tbl_PAKDTemp).'
Randomize
SttDong = Int((RecCount - 1 + 1) * Rnd + 1)
rs.FindFirst "Stt=" & SttDong
If rs.NoMatch Then Exit Sub
SoLuongRnd = 0
SoLuongRnd = RandomQuantity(Me.txtSLMax, Me.txtSLMin)
strSQL = "INSERT INTO tbl_PAKDTemp " & _
"VALUES (" & SttDong & ",'" & rs!Tenhanghoa & "','" & rs!DVT & "'," & SoLuongRnd & "," & rs!Giamua & "," & SoLuongRnd * rs!Giamua & "," & rs!Giaban & "," & SoLuongRnd * rs!Giaban & ")"
db.Execute strSQL, dbFailOnError
DoanhThu = DSum("ThanhTienBan", "tbl_PAKDTemp")
GiaVonHangBan = DSum("ThanhTienMua", "tbl_PAKDTemp")
LN = ((DoanhThu - GiaVonHangBan - TongChiPhi) / DoanhThu) * 100
Loop
Debug.Print DoanhThu; GiaVonHangBan; LN
Me.txtDoanhThu = DoanhThu
Me.txtGVHB = GiaVonHangBan
Me.txtLaiGop = LN
End Sub
Public Function RandomQuantity(top As Long, low As Long)
Dim x As Integer
Do
Randomize
x = Int((top - low + 1) * Rnd + low)
Loop Until x Mod 10 = 0
RandomQuantity = x
End Function
vuthaiha90 > 21-04-18, 10:18 PM
(21-04-18, 08:39 PM)ongke0711 Đã viết: Cái này là có voi đòi Hai Bà Trưng nè. Lúc đầu y/c doanh thu, bây giờ thêm điều kiện LN, số lượng random.
ongke0711 > 22-04-18, 12:33 AM
vuthaiha90 > 22-04-18, 12:43 PM
(22-04-18, 12:33 AM)ongke0711 Đã viết: - File sửa (thêm điều kiện Số tiền vay). Link: http://www.mediafire.com/file/6g6ze962dm...8v2%29.mdb
- Vì là chạy random nên thực sự kết quả nó cũng tương đối. Nếu thêm nhiều đk nó sẽ chạy random hoài để lấy kết quả đúng y/c -> treo máy.
Tạm sử dụng vậy chứ tôi chưa code được như y/c.