กระทู้เก่าบอร์ด อ.Yeadram
2,287 8
URL.หัวข้อ /
URL
การ Revise เอกสาร

สอบถามอาจารย์ทุกท่านค่ะ
อยากทราบวิธีการ Revise เอกสาร ค่ะ ตามรูป น่ะค่ะ
เช่น .... กด ปุ่ม Rev. หลังเรคคอร์ดที่เราต้องการ จะทำการ Coppy เรคคอร์ด นั้นๆ
โดยที่ ข้อมูลในฟิลด์ Rev. จะอัพเดท เป็น 1 2 หรือ 3 ไปเรื่อยๆ ตามที่เรา กดปุ่ม
โดยที่ จะ Coppy เฉพาะ เรคคอร์ดที่เราเลือกเท่านั้น
แล้วถ้าหากเราเลือก เรคคอร์ด ใหม่ ก็ให้ฟิลด์ rev. +1 ใหม่
(ข้อมูล เป็น Number ทั้งหมด ค่ะ )
จะทำอย่างไรได้บ้างค่ะ หรือมีวิธีอีื่น ที่ได้ผฃออกมาประมานนี้ ไหมค่ะ
ขอบคุณมากค่ะ
8 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R23545
ถ้าสมมุติมีใบแจ้งงานเลขเดียวกัน Mold เป็น Another แต่เครื่องเป็น CNC-04 และมี Rev เป็น **1** แล้วตอนนี้เรากำลังอยู่ที่ ID 251 เมื่อกดปุ่ม Rev. อีกครั้งแล้ว เลขต่อไปของ Rev. คือเลขอะไรครับ
3 @R23552
เลข **2** ค่ะ
4 @R23555
สมมุติว่า
T คือชื่อเทเบิล
R คือชื่อฟิลด์ rev
RT คือชื่อเท็กบ็อกซ์ของ rev.
N คือชื่อฟิลด์เลขที่ใบแจ้งงาน
NT คือชื่อเท็กบ็อกซ์เลขที่ใบแจ้งงาน
M คือชื่อฟิลด์พาร์ทโมลด์
MT คือชื่อเท็กบ็อกซ์พาร์ทโมลด์
โค้ดหลักๆจะมีคำสั่งเป็นอย่างนี้ เรื่องเช็ค error คุณไปใส่เองนะครับ แต่เหมือนว่า MacroError จะไม่มีผลเมื่อใช้ใน VBA จะมีผลก็ต่อเมื่อใช้ในตัว Macro เองเท่านั้น อันนี้ไม่แน่ใจ คุณไปหาข้อมูลอีกทีครับ
Dim NextRev As Integer
NextRev = Nz( DMax("R","T","N = '" + Me.NT + "' AND M = '" + Me.MT
+ "' " ) ) + 1
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdCopy
DoCmd.RunCommand acCmdPasteAppend
Me.RT = NextRev
DoCmd.RunCommand acCmdSaveRecord
T คือชื่อเทเบิล
R คือชื่อฟิลด์ rev
RT คือชื่อเท็กบ็อกซ์ของ rev.
N คือชื่อฟิลด์เลขที่ใบแจ้งงาน
NT คือชื่อเท็กบ็อกซ์เลขที่ใบแจ้งงาน
M คือชื่อฟิลด์พาร์ทโมลด์
MT คือชื่อเท็กบ็อกซ์พาร์ทโมลด์
โค้ดหลักๆจะมีคำสั่งเป็นอย่างนี้ เรื่องเช็ค error คุณไปใส่เองนะครับ แต่เหมือนว่า MacroError จะไม่มีผลเมื่อใช้ใน VBA จะมีผลก็ต่อเมื่อใช้ในตัว Macro เองเท่านั้น อันนี้ไม่แน่ใจ คุณไปหาข้อมูลอีกทีครับ
Dim NextRev As Integer
NextRev = Nz( DMax("R","T","N = '" + Me.NT + "' AND M = '" + Me.MT
+ "' " ) ) + 1
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdCopy
DoCmd.RunCommand acCmdPasteAppend
Me.RT = NextRev
DoCmd.RunCommand acCmdSaveRecord
5 @R23927
ถ้าหากชนิดฟิลด์ เป็น Number ละคะ จะต้องใส่โค้ดยังไง
6 @R23928
ถ้า N มี data type เป็น Number ก็ตัดเอา single quote ออกไปครับ เฉพาะที่มี data type เป็น Text เท่านั้นที่ครอบด้วย single quote (หรือ double quote) และถ้ามี data type เป็น Date/Time ก็ให้ครอบด้วย # แทน
ดังนั้นส่วน expression ของ NT ก็จะเป็น ... N = " + Me.NT + " AND ....
ดังนั้นส่วน expression ของ NT ก็จะเป็น ... N = " + Me.NT + " AND ....
7 @R23931
ลองแล้วค่ะ แต่แจ้ง error ว่า Type Missmatch
NextRev = Nz(DMax("Rev", "tblProcess", "Docno = " + Me.Docno + " AND Partmold = " + Me.PartMold + " ")) + 1
ลองแล้วค่ะ แต่แจ้ง error ว่า Type Missmatch
8 @R23932
ก็น่าจะแปลว่า Docno หรือ Partmold ไม่ได้เป็น Number ครับ
Time: 0.3437s
On Error Resume Next
DoCmd.RunCommand acCmdSelectRecord
If (MacroError = 0) Then
DoCmd.RunCommand acCmdCopy
End If
If (MacroError = 0) Then
' .AddNew
DoCmd.RunCommand acCmdRecordsGoToNew
End If
If (MacroError = 0) Then
DoCmd.RunCommand acCmdSelectRecord
End If
If (MacroError = 0) Then
DoCmd.RunCommand acCmdPaste
End If
If (MacroError <> 0) Then
Beep
MsgBox MacroError.Description, vbOKOnly, ""
DoCmd.GoToRecord , , acLast
End If