กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
317 3
URL.หัวข้อ /
URL
... อาจารย์สุภาพหรือพี่ๆ ก็ได้ ช่วยเข้ามาดู code หน่อยครับ ใกล้จะต้องส่งงานแล้ว ยังไม่ได้สักที ...
คือผมได้เขียน code คำนวณค่าจากตารางแล้วนำค่าที่คำนวณเสร็จแล้วมาแสดงบน textbox ใน report (ตรงส่วน detail ทีเรียงกันเป็นเรคอดน่ะครับ) แต่มันดันแสดงค่าเหมือนกับเรคอดแรกสุดหมดเลย คือเรคอดอื่นๆ ก็แสดงค่าเหมือนกับเรคอดแรกหมดเลย จะแก้ยังไงครับ ให้มันแสดงเป็นของ เรคอดใคร เรคอดมัน
Code ครับ :
Private Sub Report_Activate()
Dim MerAmount As Long
Dim TotalPrice As Currency
Dim rst2 As DAO.Recordset
Set dbs = CurrentDb()
Set rst = dbs.OpenRecordset("select mer_amount from merchandise where mer_id = '" & Me.MER_ID & "'")
Set rst2 = dbs.OpenRecordset("select * from buy where mer_id = '" & Me.MER_ID & "' order by buy_date desc")
If Not rst.EOF And Not rst2.EOF Then
MerAmount = rst!MER_AMOUNT
TotalPrice = 0
If rst2!BUY_AMOUNT < MerAmount Then
Do
TotalPrice = TotalPrice + (rst2!BUY_AMOUNT * rst2!BUY_UNITPRICE)
MerAmount = MerAmount - rst2!BUY_AMOUNT
rst2.MoveNext
If rst2!BUY_AMOUNT >= MerAmount Then GoTo jaja
Loop
Text20.Value = TotalPrice
jaja:
TotalPrice = TotalPrice + (rst2!BUY_AMOUNT * rst2!BUY_UNITPRICE)
Text20.Value = TotalPrice
End If
End If
End Sub
--------------
ใช้ Access 2000 + XP pro ครับ
ขอบคุณมากๆ ครับ
Code ครับ :
Private Sub Report_Activate()
Dim MerAmount As Long
Dim TotalPrice As Currency
Dim rst2 As DAO.Recordset
Set dbs = CurrentDb()
Set rst = dbs.OpenRecordset("select mer_amount from merchandise where mer_id = '" & Me.MER_ID & "'")
Set rst2 = dbs.OpenRecordset("select * from buy where mer_id = '" & Me.MER_ID & "' order by buy_date desc")
If Not rst.EOF And Not rst2.EOF Then
MerAmount = rst!MER_AMOUNT
TotalPrice = 0
If rst2!BUY_AMOUNT < MerAmount Then
Do
TotalPrice = TotalPrice + (rst2!BUY_AMOUNT * rst2!BUY_UNITPRICE)
MerAmount = MerAmount - rst2!BUY_AMOUNT
rst2.MoveNext
If rst2!BUY_AMOUNT >= MerAmount Then GoTo jaja
Loop
Text20.Value = TotalPrice
jaja:
TotalPrice = TotalPrice + (rst2!BUY_AMOUNT * rst2!BUY_UNITPRICE)
Text20.Value = TotalPrice
End If
End If
End Sub
--------------
ใช้ Access 2000 + XP pro ครับ
ขอบคุณมากๆ ครับ
3 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R02345
อืมม อาจารย์สุภาพครับ แล้วถ้าคำนวณใน Query จะคำนวณยังไงอ่ะครับ
เพราะมันต้องใช้ตัวแปร และมีการวนลูปด้วย (code นี้คือคำนวนราคาต้นทุนแบบ Lifo น่ะ)
ถ้าทำใน Query ต้องทำยังไงบ้างครับ
ขอบคุณฮะ
เพราะมันต้องใช้ตัวแปร และมีการวนลูปด้วย (code นี้คือคำนวนราคาต้นทุนแบบ Lifo น่ะ)
ถ้าทำใน Query ต้องทำยังไงบ้างครับ
ขอบคุณฮะ
3 @R02346
อืมม อีกอย่างนึงวิธี ที่อาจารสุภาพบอกมามันไม่ได้น่ะครับ อย่างที่บอกไปคือ ต้องคำนวนราคาต้นทุนแบบ Lifo น่ะครับ เลยต้องมีการใช้ตัวแปรและวนลูป (คล้ายFIFO ที่เป็นตัวอย่างของอาจาร น่ะ ) มีวิธีอื่นอีกไหมครับ แก้ให้textbox ที่แสดงในแต่ละ เรคอด มันไม่เหมือนกับเรคอดแรกตลอด ...
Time: 0.3453s
ลองแบบนี้ ให้ใส่
=DLookup("[BUY_AMOUNT] * [BUY_UNITPRICE]","Buy","[Me.MER_ID] =" & Me.MER_ID)
ในช่อง Control Source ชอง TotalPrice
แต่ผมว่าถ้าคำนวณให้เสร็จเลยใน Query ก็จะไวกว่านะครับ ไม่ต้องมาใช้ DLookup() ช่วยใน Report เลย