การ Revise เอกสาร
กระทู้เก่าบอร์ด อ.Yeadram

 1,992   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

1 @R23535
ตอนนี้ใช้โค้ดนี้ในการcoppy ทั้ง เรคคอร์ด มาวางเป็น เรคคอร์ดใหม่ แต่ที่จะนับ การ Rev. แต่ละ เรคคอร์ดยังหาวิธีไม่ได้ค้ะ รบกวนด้วยนะค่ะ

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
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
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 ....
7 @R23931
NextRev = Nz(DMax("Rev", "tblProcess", "Docno = " + Me.Docno + " AND Partmold = " + Me.PartMold + " ")) + 1


ลองแล้วค่ะ แต่แจ้ง error ว่า Type Missmatch
8 @R23932
ก็น่าจะแปลว่า Docno หรือ Partmold ไม่ได้เป็น Number ครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.1715s