Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hỏi] Trích ngấu nhiên dữ liệu trong Table
#1
Các bác cho em hỏi, em đang có ý nghĩ này mà không biết access có làm được không ạ. Ví dụ như em có sẵn 1 table có dữ liệu về hàng tạp hóa (tên hàng, số lượng, đơn giá mua, thành tiền mua, đơn giá bán, thành tiền bán), bây giờ tùy thuộc vào số tiền muốn vay mà làm phương án hàng hóa sao cho phù hợp (VD: khách muốn vay 200 triệu thì làm cái phương án sao cho thành tiền mua tầm 270-300 triệu). Vậy có thể trích ngẫu nhiên dữ liệu có sẵn trong table ra để tạo phương án cho từng lần khác nhau không ạ. Trích ra excel cũng được, trích ra word cũng được ạ. Em cảm ơn ạ
Chữ ký của vuthaiha90 vuthaiha90,gia nhập Thủ Thuật Access từ 26-02 -16.
Reply
Những người đã cảm ơn
#2
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?
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#3
(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?

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 ạ
Chữ ký của vuthaiha90 vuthaiha90,gia nhập Thủ Thuật Access từ 26-02 -16.
Reply
Những người đã cảm ơn
#4
Việc này bạn gắn thêm điều kiện với mỗi mã sản phẩm thì sẽ có  số lượng bắt đầu và số lượng tối đa có thể.
Sau đó Random theo 2 Step.

Step1: Chọn ra Random các mã sản phẩm đưa ra một bảng tạm thời

Step2: Vỡi mỗi mã sản phẩm trong bảng này, chọn Random số lượng trong khoảng mà bạn đặt ở trên 
Sau đó áp dụng thêm công thức tính toán vào.
Đến một mã sản phẩm nào đó mà lượng tiền thỏa mãn rồi thì tự out ra kết thúc.

Nói ra như vậy nhưng phải viết cụ thể thì bạn tự mày mò nhé
Còn hàm Random thì cũng khá đơn giản thôi:

Int ((Up - Low + 1) * Rnd + Low)
Result: Random number between Low and Up


Mình nghĩ là khả thi đó big green
Chữ ký của duynamvnn1208 duynamvnn1208,gia nhập Thủ Thuật Access từ 25-06 -17.
Reply
Những người đã cảm ơn vuthaiha90
#5
(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 ạ

  007  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.

File của bạn đây: http://www.mediafire.com/file/ul1on66cg647e6a/Test.mdb

- Bạn xem Form1, tbl_PAKDTemp, TempPAKDexcel, tbl_Chiphi (2 table sau là table của bạn).
- Bạn phải đưa các thông số như Tổng chi phí, LN kỳ vọng (như bạn nói là 1,5 - 1,7%), Số lượng.
- Table TempPAKDexcel của bạn phải thêm 1 trường [Stt] dạng AutoNumber để phục vụ cho việc trích xuất ngẫu nhiên record.
- Cứ bấm nút [Tổng hợp] đến khi nào bạn thấy mức LN tương đối hợp lý như yêu cầu thì dừng.

[Hình: 40708200005_d140707059_c.jpg]

- Sau đây là cái Sub đề trích xuất danh sách hàng hóa đáp ứng yêu cầu đặt LN đề ra:

Mã PHP:
Public Sub RanDomListGoods()
   Dim db As DAO.Database
   Dim rs 
As DAO.Recordset
   Dim RecCount 
As IntegerSttDong As IntegerSoLuongRnd As Long
   Dim DoanhThu 
As DoubleTongChiPhi As DoubleGiaVonHangBan As DoubleLNKyVong As DoubleLN 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) * Rnd 1)
       rs.FindFirst "Stt=" SttDong
       If rs
.NoMatch Then Exit Sub

       SoLuongRnd 
0
       SoLuongRnd 
RandomQuantity(Me.txtSLMaxMe.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 strSQLdbFailOnError

       DoanhThu 
DSum("ThanhTienBan""tbl_PAKDTemp")
       GiaVonHangBan DSum("ThanhTienMua""tbl_PAKDTemp")
       LN = ((DoanhThu GiaVonHangBan TongChiPhi) / DoanhThu) * 100
   Loop
   Debug
.Print DoanhThuGiaVonHangBanLN
   
   Me
.txtDoanhThu DoanhThu
   Me
.txtGVHB GiaVonHangBan
   Me
.txtLaiGop LN

End Sub 

- Đây là hàm lấy số lượng ngẫu nhiên: số lượng trả về là số chia hết cho 10 để nhìn cho nó hợp lý chứ bảng kế hoạch mà có số lượng 133, 187... cái thì không giống ai.

Mã PHP:
Public Function RandomQuantity(top As Longlow 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 
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn vuthaiha90 , Noname
#6
(21-04-18, 08:39 PM)ongke0711 Đã viết:   007  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.

Hì, vâng em cảm ơn bác ạ, tại em thấy bác bảo làm được nên đưa nốt ra yêu cầu laughing. Bác ơi, em đã lôi về dùng thử nhưng hình như vẫn thiếu điều kiện bác ạ.
1. GiaVonHangBan = DSum("ThanhTienMua", "tbl_PAKDTemp" thì đúng, nhưng ít nhất nó cũng phải lớn hơn Số tiền vay (SotienvayTC trong T_PAKD) chứ ạ, vì họ muốn nhập về ngần ấy hàng hóa để bán nhưng bị thiếu vốn nên mới vay thêm ngân hàng.
Khi em thêm: GiaVonHangBan = DSum("ThanhTienMua", "tbl_PAKDTemp") + DLookup("SotienvayTC", "T_PAKD") thì khi ấn tổng hợp auto bị treo máy luôn

2. LN = ((DoanhThu - GiaVonHangBan - TongChiPhi)/ GiaVonHangBan) * 100
3. Do Until LN < LNKyVong
Em nghĩ mình đã tự nhập Lợi nhuân kỳ vọng thì chỉ ngần ấy là cao nhất, bác lại làm ít nhất là bằng ngần ấy ạ, em có đổi lại thành nhỏ hơn nhưng khi ấn Tổng hợp auto ra trắng tinh.
Bác có thể giúp em được không ạ. Em cảm ơn ạ
Chữ ký của vuthaiha90 vuthaiha90,gia nhập Thủ Thuật Access từ 26-02 -16.
Reply
Những người đã cảm ơn
#7
- 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. 007
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn huuduy.duy , vuthaiha90
#8
(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. 007

Vâng, em đã lôi về dùng thử, cũng đủ điều kiện rồi bác ạ, cứ ngồi bấm sao cho vừa ý là được big green. Nhanh hơn tự bấm bấm gõ gõ căn chỉnh số lượng hàng sao cho vừa ý như xưa rồi ạ. Em cảm ơn bác nhé
Chữ ký của vuthaiha90 vuthaiha90,gia nhập Thủ Thuật Access từ 26-02 -16.
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  Cập nhật dữ liệu Access từ dữ liệu nguồn trong Excel subasatran 1 226 11-10-18, 02:53 PM
Bài mới nhất: ongke0711
  [Hỏi] Import nhiều file Excel vào Table Access vuthaiha90 32 2,596 27-08-18, 11:06 AM
Bài mới nhất: vuthaiha90
  Export Table từ access sang 1 file word có sẵn! cong_agribankPT 55 28,085 02-08-18, 08:26 AM
Bài mới nhất: vuthaiha90
  Export dữ liệu sang Word ( Nhiều dòng trong sub) danhxetnghiem 27 8,332 20-01-18, 07:55 PM
Bài mới nhất: mrtoanbin
  [Hỏi] Sử dụng hàm của Excel trong VBA killitmore 1 477 24-11-17, 09:42 PM
Bài mới nhất: maidinhdan

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ| PMA Nha Trang| Gỗ Acrylic Không Đường Line