Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Tính lại giá xuất kho theo PP Bình quân gia quyền sau mỗi lần nhập
#1
Tôi có dữ liệu sau : http://www.mediafire.com/file/ttekag6sk1...iaxuat.mdb
Vì một số lý do muốn tính lại cột giá xuất (phía cuối) một cách nhanh nhất và add vào thay thế luôn cột giá xuất


Công thức tính : Giá xuất = (Tienton + Tien nhap) / (SLTon + SLNhap)

Xin các bạn trợ giúp
Chữ ký của ledangvan Xin chào, mình là ledangvan, Tham gia http://thuthuataccess.com/forum từ ngày 22-08 -11.
ღღღღღTài sản của ledangvan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#2
(12-08-17, 09:56 PM)ledangvan Đã viết: Tôi có dữ liệu sau : http://www.mediafire.com/file/ttekag6sk1...iaxuat.mdb
Vì một số lý do muốn tính lại cột giá xuất (phía cuối) một cách nhanh nhất và add vào thay thế luôn cột giá xuất


Công thức tính : Giá xuất = (Tienton + Tien nhap) / (SLTon + SLNhap)

Xin các bạn trợ giúp

Dùng update query:
Mã PHP:
UPDATE Sovatuchitiet SET Sovatuchitiet.Giá xuất = ([Tienton]+[Tien nhap])/([SLTon]+[SLNhap]); 
Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn ledangvan
#3
(12-08-17, 10:18 PM)maidinhdan Đã viết:
(12-08-17, 09:56 PM)ledangvan Đã viết: Tôi có dữ liệu sau : http://www.mediafire.com/file/ttekag6sk1...iaxuat.mdb
Vì một số lý do muốn tính lại cột giá xuất (phía cuối) một cách nhanh nhất và add vào thay thế luôn cột giá xuất


Công thức tính : Giá xuất = (Tienton + Tien nhap) / (SLTon + SLNhap)

Xin các bạn trợ giúp

Dùng update query:
Mã PHP:
UPDATE Sovatuchitiet SET Sovatuchitiet.Giá xuất = ([Tienton]+[Tien nhap])/([SLTon]+[SLNhap]); 

Nhưng cái giá đấy nó phải tính theo từng lần xuất cơ Dân à, cái bảng mẫu là anh đã tính nó ra thế rồi, nhưng do mỗi lần tính có thể nó bị sai nay muốn tính lại và add chèn lại giá, cũng có thể là hàng tháng tính rồi, nhưng cuối năm muốn chạy lại giá cho chuẩn.
Chữ ký của ledangvan Xin chào, mình là ledangvan, Tham gia http://thuthuataccess.com/forum từ ngày 22-08 -11.
ღღღღღTài sản của ledangvan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#4
Có phải bác muốn tính theo giá bình quân gia quyền? tính COGS?
Cứ mỗi lần nhập hàng là tính giá lại giá bán. Cái này mìng cũng đang ngâm cứu. Để làm thử xem sao.
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
#5
(12-08-17, 10:54 PM)ongke0711 Đã viết: Có phải bác muốn tính theo giá bình quân gia quyền? tính COGS?
Cứ mỗi lần nhập hàng là tính giá lại giá bán. Cái này mìng cũng đang ngâm cứu. Để làm thử xem sao.

Mình tính là bình quân trước lúc xuất, nghĩa là trước khi xuất phải xác định giá vốn để xuất, trong bài này thì mình đã tính rồi nhưng muốn test lại cho đúng. Hiện tại của mình bị như sau : Mỗi lần xuất mình đã tính được giá vốn rồi tuy nhiên do người sử dụng nhập lại phần nhập hàng, do hóa đơn về sau (sau khi xuất) dẫn đến nếu tính lai thì giá tại thời điểm đo sẽ là sai. Giờ mình muốn cuối tháng chạy lại gia chính xác tại mỗi thời điểm xuất và add trở lại mỗi lần xuất
Chữ ký của ledangvan Xin chào, mình là ledangvan, Tham gia http://thuthuataccess.com/forum từ ngày 22-08 -11.
ღღღღღTài sản của ledangvan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#6
Bình quân gia quyền luôn thay đổi giá khi nhập hàng, Đơn giá bình quân = (Giá trị hàng tồn + giá trị nhập)/(số lượng tồn + số lượng nhập). Trong thời gian ngắn mình không có thời gian làm demo cho bạn. Vì phần này tương đối phức tạp. Việc rút trích từ CSDL của mình đưa lên càng phức tạp hơn nữa vì mình sử dụng kết hợp nhiều thứ từ việc tính giá trị bình quân (nhìn vô như đám rừng 021  ). Mình chỉ có thể gợi ý như sau:
1/ Tạo 1 table nhập xuất hàng hóa 1. Đây là table để tính bình quân gia quyền. (tất cả các table sẽ có các field [tên hàng], [mã] - mình sẽ nói mã ở phần dưới, [ngày], [số lượng tồn đầu], [giá trị tồn đầu], [số lượng nhập], [giá trị nhập], [số lượng xuất], [giá trị xuất], [số lượng tồn cuối], [giá trị tồn cuối], [Bình quân trong tháng]
2/ Tạo 1 table nhập xuất hàng hóa 2 với đầy đủ tên hàng hóa nhập xuất với đầy đủ các tháng mỗi tháng có 1 dòng hàng hóa với ngày nhập xuất = ngày 1 trong từng tháng (từ tháng 1 đến tháng 12 mỗi tháng 1 dòng) giá trị nhập xuất = 0 cho tất cả hàng hóa trong 12 tháng (lý do tạo table này để bổ sung dòng cho các hàng hóa trong tháng không có phát sinh nhập xuất, vì nếu không có dòng này thì loại hàng hóa nào không có phát sinh trong tháng sẽ không xuất hiện trong báo cáo tồn kho)
3/Tạo query total nhập xuất từng tháng (chuyển tất cả các ngày nhập xuất thành ngày 1 của từng tháng để gom tất cả nhập xuất của từng loại hàng trong tháng thành 1 dòng vì thực ra khi xuất báo cáo chỉ lấy tháng và năm chứ không cần ngày)
* Trên tất cả các table đều có field mã = [tên hàng] & [năm] & [tháng] cái này cần thiết để sắp xếp thứ tự khi xử lý code tính bình quân gia quyền.
4/Tạo table nhập xuất hàng hóa 3 (đây là table tạm để tính bình quân gia quyền)
Thứ tự xử lý như sau:
1/ Khi bạn thay đổi giá trị tạo bẩy xác định ngày thay đổi nhỏ nhất trên một textbox trên form nhập liệu, code sẽ xử lý từ ngày này (nhớ là lấy ngày 1 dù bất kỳ ngày nào trong tháng)
2/ Append query total nhập xuất từng tháng lên table nhập xuất hàng hóa 3 (chỉ lấy phần từ ngày nhập xuất trên textbox trở về sau), tất nhiên ở đây chỉ có mã, tên hàng, số lượng nhập, giá trị nhập, số lượng xuất. Còn những giá trị khác sẽ dùng code tính sau)
3/ Sử dụng nhập xuất hàng hóa 2 trích các dòng có hàng hóa thiếu (không có phát sinh trong tháng - căn cứ mã còn thiếu) append bổ sung vào nhập xuất hàng hóa 3
4/ Lọc tháng trước tháng phát sinh trên textbox từ table nhập xuất hàng hóa 1 append vào nhập xuất hàng hóa 3 (nếu có) vì tháng này đã được xử lý giá trị bình quân gia quyền trong [số lượng tồn cuối], [giá trị tồn cuối].
5/ sử dụng code:
Mã:
Sub N_X_T()
Dim CSDL As Database
Dim B01 As Recordset
Dim DKT As String
Dim MAHANG As String
Dim SLT, GTT, As Double

Set CSDL = CurrentDb
Set B01 = CSDL.OpenRecordset("table nhập xuất hàng hóa 3", DB_OPEN_DYNASET)
SLT = 0
GTT = 0
MAHANG = ""
B01.MoveFirst
Do While Not B01.EOF
If B01![TENHANG] = MAHANG Then
   B01.Edit
   B01![BQTT] = BQT
   B01![SLTDK] = SLT
   B01![GTTDK] = GTT
   If B01![SLTDK] + B01![SLNTT] = 0 Then
   B01![BQTT] = 0
   Else
   B01![BQTT] = (B01![GTTDK] + B01![GTNTT]) / (B01![SLTDK] + B01![SLNTT])
   End If
   B01![GTXTT] = B01![BQTT] * B01![SLXTT]
   B01![GTHTT] = B01![BQTT] * B01![SLHTT]
   B01![SLTCK] = B01![SLTDK] + B01![SLNTT] - B01![SLXTT] 
   B01![GTTCK] = B01![GTTDK] + B01![GTNTT] - B01![GTXTT]
   B01![BQCK] = B01![BQTT]
   B01.Update
Else
   If B01![SLNTT] > 0 Then
   B01.Edit
   B01![BQTT] = B01![GTNTT] / B01![SLNTT]
   B01![GTXTT] = B01![BQTT] * B01![SLXTT]
   B01![SLTCK] = B01![SLNTT] - B01![SLXTT]
   B01![GTTCK] = B01![GTNTT] - B01![GTXTT]
   B01![BQCK] = B01![BQTT]
   B01.Update
   End If
End If
MAHANG = B01![TENHANG]
'MsgBox (MAHANG)
BQT = B01![BQCK]
SLT = B01![SLTCK]
GTT = B01![GTTCK]
B01.MoveNext
Loop
B01.Close
End Sub

* Ghi chú:
[số lượng tồn đầu]=B01![SLTDK]
[giá trị tồn đầu]=B01![GTTDK] 
[số lượng nhập]=B01![SLNTT] 
[giá trị nhập]=B01![GTNTT]
[số lượng xuất]= B01![SLXTT]
[giá trị xuất]=B01![GTXTT]
[số lượng tồn cuối]= B01![SLTCK]
[giá trị tồn cuối]=B01![GTTCK]
[Bình quân trong tháng]=B01![BQTT]
6/Append dữ liệu từ tháng trên textbox trở về sau trên table nhập xuất hàng hóa 3 sang table nhập xuất hàng hóa 1 (bỏ tháng mượn trước đó vì nó đã có trên table nhập xuất hàng hóa 1. Xóa luôn dữ liệu trên table nhập xuất hàng hóa 3 (các lệnh này cũng đưa vào Sub N_X_T nhưng mình tách riêng cho rõ ràng).
Thực ra code của mình còn tính thêm phần hao hụt (hao hụt thực tế, hao hụt cho phép do nhiệt độ), giá bán (để tính lãi gộp). Trong quá trình xóa bớt code không biết có bị vướng lỗi không, mong các bạn thông cảm.
'MsgBox (MAHANG) là phần mình kiêm tra xem code có chạy đủ hàng hóa mình cũng để lại chỉ thêm dấu ' để các bạn dễ dàng kiểm tra nếu cần. Do quá trình viết code có khi mình sử dụng K(kỳ) hoặc T(tháng) nhưng vì thời gian mình sửa lại gấp các bạn thông cảm. Code này sử dụng trong event unload form nhập liệu để đỡ mất thời gian, chứ nó chạy cũng tương đối lâu. Textbox làm bẩy event nằm trên form nhập liệu bình thường có giá trị Null, khi có thay đổi ở field số lượng hoặc đơn giá sẽ có giá trị ngày của record đó. Nếu thay đổi nhiều lần sẽ lấy giá trị ngày nhỏ nhất. Khi form unload nếu textbox có giá trị null sẽ không làm gì còn nếu <> null sẽ xử lý cập nhật hệ thống code tính BQGQ.
Mong giúp ích được cho các bạn.
Chữ ký của tranthanhan1962 Kết quả cuối cùng của một đời người, không phải bạn có được bao nhiêu tiền bạc, tài sản. Mà bạn còn bao nhiêu người bạn  thumbs up
ღღღღღTài sản của tranthanhan1962 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#7
Có bác nào biết tính trong table hoặc query phép tính Running Sum = Over All như trong Report chỉ giúp tôi với, hoặc bằng code.
Chữ ký của ledangvan Xin chào, mình là ledangvan, Tham gia http://thuthuataccess.com/forum từ ngày 22-08 -11.
ღღღღღTài sản của ledangvan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#8
Có thể sử dụng query hoặc report để tính. Nhưng sẽ gặp các vấn đề sau đây. Nếu sử dụng query (bạn có thể nghiên cứu ở đây https://support.microsoft.com/en-us/help...oft-access )phải đỗi mã hàng hóa bằng số tự nhiên mới tính được kiểu running sum. Vã lại dùng query và report là rất nặng, khả năng đứng máy là rất cao. Mình đã thử với con cpu 4 nhân - 3gh, ram 4gh, sau 1 năm đã bị chuyện đứng máy (số lượng khoảng 100 loại hàng hóa với hơn 1.000 record). Nếu trong tháng nào, loại hàng nào không phát sinh sẽ không xuất hiện trên bảng tồn kho. tăng lên ram 8 gh không bị đứng máy mà bị Overflow. Mình phải bỏ cách này vì phần mềm của mình là phần mềm thị trường nên không phải khách hàng nào cũng có máy đủ mạnh. Cách của mình khống chế đoạn tính toán giá trị trong thời gian ngắn, số lượng record không nhiều, nếu hàng nhập mới thì chỉ tính 2 tháng cuối, nếu có sửa đổi thì cũng chỉ xảy ra trước tháng cuối vài ba tháng. Trường hợp tên hàng nhiều có khi phải tách ra thêm một bảng tạm update và append từng tháng nếu không sẽ bị trường hợp tính được vài ba tháng rồi đơ. Nói chung phần này mình cũng thử nát mọi cách cuối cùng phải sử dụng các rườm rà này mới thu được kết quả  021 . Đúng là có những cái với excel thì cực kỳ đơn giản nhưng chuyển qua access lại rất phức tạp. Nhưng cũng phải đành chịu.
Chữ ký của tranthanhan1962 Kết quả cuối cùng của một đời người, không phải bạn có được bao nhiêu tiền bạc, tài sản. Mà bạn còn bao nhiêu người bạn  thumbs up
ღღღღღTài sản của tranthanhan1962 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#9
Em chưa làm thử cách của anh Ân nhưng cũng có một cách khác đang làm để tính tồn kho lũy tiến và cập nhật đơn giá bình quân. Đã chuyển demo bằng table mẫu của bác ledangvan. Bác ledangvan test thử xem.
Cách làm này cũng dùng một đống query (5 cái make-table, 1 cái update-query) và 2 tables như hình đính kèm.
- 1 table Nhap xuất chi tiết như table của anh ledangvan hiện tại.
- Thêm 1 table lưu (kết chuyển) số Tồn đầu kỳ từng tháng. Có các field: [Năm], [Tháng], [Mã VT], [Số Tồn], [Đơn giá BQ].

[Hình: 36598139486_794e5ba438_b.jpg]

Cách làm:
- Chủ yếu dùng make-table query để tạo table tạm lấy số liệu cho báo cáo NXT. Code VBA chỉ vài dòng để xử lý dữ liệu ngày tháng thôi.
- Đối với table Tồn Đầu Kỳ: phải nhập thủ công 1 lần số lượng tồn ĐK, đơn giá BQ lần đầu tiên của tháng trước khi chạy ứng dụng. Trong trường hợp này em nhập: SL=0, ĐG=0.
- Chương trình sẽ chạy hàng tháng hoặc chọn nhiều tháng chạy một lần. Nhưng thông thường thì cứ cuối tháng sau khi nhập liệu hết chứng từ nhập xuất thì chạy chương trình để lấy giá bình quân rồi cập nhật lại vô giá vốn hàng bán.
- Cái demo này chỉ làm đến việc xử lý dữ liệu để ra giá bình quân tháng chứ chưa tạo table thêm để phục vụ cho các báo cáo NXT. Muốn có báo cáo NXT theo ngày tùy chọn (không theo tròn tháng) thì phải làm thêm vài bước nữa (cái này làm sau 007 ).

[Hình: 35836207873_cfe951aba8_b.jpg]

Các bác xem có ra kết quả đúng không và nếu áp dụng vô table có số lượng lớn vật tư, nhiều giao dịch thì có treo máy không nhé.  007

Link file demo: http://www.mediafire.com/file/alsxo43s7lvwb6u/Tinhgiaxuat%28v1%29.mdb


File đính kèm
.zip   Tinhgiaxuat(v1).zip (Kích cỡ: 44.37 KB / Tải về: 2)
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 ledangvan , maidinhdan , tranthanhan1962
#10
Cách của ongke0711 chỉ giải quyết được với trường hợp 1 loại hàng hóa. Khi có xử lý sửa chữa ở tháng trước tháng cuối nhiều tháng phải chọn nhiều tháng và làm động tác cập nhật (chưa tự động hóa khi nhập liệu). Nếu làm theo cách này và chọn từng loại hàng hóa thì OK, máy nhẹ và không bị đứng máy (nếu thêm chọn từng loại hàng) nhưng sẽ cực trong phần thao tác. Cách này cũng chỉ giải quyết được phần bình quân gia quyền trong bảng tồn kho cuối kỳ của một kỳ. Nhưng chưa đủ để giải quyết bảng tồn kho cả năm (sẽ có nhiều đơn giá bình quân gia quyền cho từng loại hàng của từng tháng)
Chữ ký của tranthanhan1962 Kết quả cuối cùng của một đời người, không phải bạn có được bao nhiêu tiền bạc, tài sản. Mà bạn còn bao nhiêu người bạn  thumbs up
ღღღღღTài sản của tranthanhan1962 (View All Items) ღღღღღ
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
  Tính tuổi nghỉ hưu Thái Trần 3 246 07-11-18, 09:09 AM
Bài mới nhất: Thái Trần
Smile Đánh x cho 1 danh sách theo 1 tỉ lệ huuduy.duy 2 170 14-10-18, 12:30 AM
Bài mới nhất: NguyenDungAnh
  [Help] Tính thời gian vào học của tiết học toidjtjmtoi 8 444 11-10-18, 10:27 AM
Bài mới nhất: toidjtjmtoi
  [Help] Giúp tính tổng số lượng theo mã nam8384 3 1,032 10-06-18, 02:41 PM
Bài mới nhất: thdanh
  [Hỏi] Tính lãi nhập gốc chưa rõ số lượt nhập kỳ hạn vào vuthaiha90 16 1,253 18-05-18, 09:38 PM
Bài mới nhất: ongke0711

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