Run เล่มที่ เลขที่ ในใบเสร็จฯ
กระทู้เก่าบอร์ด อ.Yeadram

 17,937   31
URL.หัวข้อ / URL
Run เล่มที่ เลขที่ ในใบเสร็จฯ

รบกวนอาจารย์ทั้งหลายอีกแล้วครับ

เวลาเราออกใบเสร็จรับเงิน มันจะรันเล่มที่ เลขที่เองอัตโนมัติ โดยเลขที่ถ้าถึง100
จะขึ้นเล่มใหม่ แล้วเลขที่จะขึ้น 1 ไปเรื่อยๆ ถ้าเราทำทีละใบ ผมทำให้รันอัตโนมัติได้ครับ แต่ตอนนี้ปัญหาคือ ต้องการทำทีเดียวทั้งหมด โดยบันทึกข้อมูลไปก่อน แต่ไม่ได้บันทึกตัวเลขเล่มที่ เลขที่ เข้าไป เวลาเปิด Report ก็จะสามารถเปิดดูตั้งแต่คนที่ 1 ถึง สุดท้ายได้

ปัญหาของผมคือ จะรันเล่มที่ เลขที่ยังงัยให้เลข ต่อจากของเก่า โดยเมื่อรันเลขถึงร้อย ก็จะขึ้นเล่มใหม่

ฝากอาจารย์ทั้งหลายช่วยหน่อยครับ อย่างน้อยวิธีคิดก่อนก็ยังดี เพราะคิดเท่าไหร่ก็ไม่ออก

31 Reply in this Topic. Dispaly 2 pages and you are on page number 2

21 @R07325
ExitRoutine:
   ' ถ้ามี error เกิดขึ้นในโปรแกรมและอยู่ระหว่าง Transaction Control เราต้อง Rollback Transaction ไม่เช่นนั้นจะเกิดปัญหาในภายภาคหน้าได้
   If InTransaction then DBEngine.Rollback
   exit sub

ErrRoutine:
   Msgbox Err.Code & " : " & Err.Description
   Resume ExitRoutine
End Sub
22 @R07330
SQL = "insert into Table2(IM, AccCode,Unit,BKno,RBno) select(ID_Member, AccCode, Unit, """ & NewBKNo & """, """ & NewRBNo & """) from Table1 where ID_Member = " & RS!ID_member

อาจารย์ครับผมว่าบรรทัดนี้ Syntax Err นะครับ มันเลยไม่มีข้อมูลใน Table2 เลย
23 @R07331
- ใน Table1 ฟิลด์ ID_Member ใช้ชื่อว่าอะไร และมีข้อมูลเป็นประเภทอะไร (Text หรือ Numeric)
- ใน Table2 ฟิลด์ BKNo และ RBNo มีข้อมูลเป็นประเภทอะไร (Text หรือ Numeric)
- รันแล้วมี error อะไรแสดงออกมาหรือไม่


24 @R07332
ฟิลด์ตามรูปเลยครับ ตรงตามโคต ประเภท เป็น Text ทุกฟิลด์
รันแล้ว ตามรูป Err ที่โพสครับ
25 @R07333
- error ที่แสดงในภาพคำตอบ R07324 แก้ด้วยคำตอบ R07325 ครับ

- คุณไปแก้ให้ BKNo และ RBNo ทั้งใน Table1 และ Table2 ให้เป็นประเภท Integer เสีย แล้วแก้โค้ดเป็น

SQL = "insert into Table2(IM, AccCode,Unit,BKno,RBno) select(ID_Member, AccCode, Unit, " & NewBKNo & ", " & NewRBNo & ") from Table1 where ID_Member = """ & RS!ID_member & """ "

ถ้า ID_Member ไม่ใช่ชื่อนี้ ก็แก้ให้ถูกต้องด้วย

ถ้ามีอะไรผิดพลาดใน SQL มันควรจะแสดง error ออกมาครับ ไม่ใช่ทำงานผ่านไปได้เฉยๆ

ถ้าแก้แล้วยังทำงานไม่ได้ เอาโค้ดทั้งหมดมาแสดงให้เห็นอีกที
26 @R07334
อาจารย์ครับยัง Eror เหมือนเดิม ผมฝากไฟล์ไว้ที่ AccBoard ครับ ชื่อ ฝากอาจารย์สันติสุขครับ
27 @R07335
ดูแล้ว

1) ไม่เห็นคุณแก้ตามที่ผมบอกใน R07325 เลย มันมี ExitRoutine กับ ErrRoutine นะครับ

2) คำสั่ง SQL ผิดตรงมีวงเล็บหลัง select ที่ถูกต้องเป็น

SQL = "insert into Table2(IM, AccCode,Unit,BKno,RBno) select ID_Member, AccCode, Unit, " & NewBKNo & ", " & NewRBNo & " from Table1 where ID_Member = """ & RS!ID_member & """ "

3) ให้แก้ฟิลด์ใน tblRunNo ให้เป็น Numeric ด้วยทั้ง 2 ฟิลด์

4) ฟิลด์ unit ทั้งใน table1 และ table2 ควรจะเป็นประเภท numeric, field size = decimal, scale = 2
28 @R07336
ขอบคุณมากครับอาจารย์ สงสัยคงตาลาย Exit กับ Err มันคล้ายกันก็สงสัยอยู่ว่าทำไมมันติดที่เดิม เพราะมันไม่วิ่งไป Exit นี่เอง แล้วผมลองใช้ Text เหมือนเดิม มันก็สามารถ วิ่งจาก Table1 ไป Table2 ได้ แต่ผมจะเปลี่ยนตามที่อาจารย์แนะนำครับ

นอกเรื่องนิดนึงครับ โคตที่เขียนนี้เค้าเรียกว่าอะไรครับ อาจารย์มีหนังสือแนะนำให้ซื้อรึปล่าวครับ ผมหาหลายที่มันไม่มีสอนเขียนโคตครับ
29 @R07337
- ค่าต่างๆที่เป็นค่าทางจำนวน,มูลค่า ที่สามารถนำไปคำนวนทางคณิตศาสตร์ได้ ควรเก็บเป็น Numeric ให้หมด ดังนั้น Unit, BKNo, RBNo ก็ควรเปลี่ยน   ส่วน ID_Member อันนี้แล้วแต่คุณแต่ถ้าเก็บเป็น Text อย่างนึงที่ต้องระวังไว้คือเวลาเรียงลำดับด้วยข้อมูล "1","2","10","100" มันจะเรียง "1","10","100","2" นะครับ

- เป็นภาษา Visual Basic ที่ใช้เฉพาะกับโปรแกรมต่างๆในระบบ Micorosft Office ครับ มีชื่อเรียกเฉพาะว่า VBA (Visual Basic for Application) นั่นหมายถึงทุกโปรแกรมในชุด MS Office คุณสามารถโปรแกรมสั่งมันทำได้ทุกอย่างที่คุณใช้มือทำด้วยภาษา VBA นี้ครับ เช่นคุณเขียนหน้าจอใน Access สั่งให้เอาข้อมูลในฐานข้อมูลของ Access ไปออกใน Excel แล้วแสดงกราฟใน Excel แล้วเอายอดสรุปใน Excel ไปแสดงเป็นพรีเซนเตชั่นใน PowerPoint พร้อมแนบพรีเซนเตชั่นนี้ส่งไปให้ลูกค้าทุกรายด้วย email ผ่านทาง OutLook เป็นต้น
30 @R07338
ผมลองทดสอบรันดูจำนวน 2 พันกว่าเรคคอร์ด กับ 6 ร้อยกว่าเรคคอร์ด
มันช้าพอๆ กันครับ ไม่รู้เพราะระบบ Transaction Control หรือไม่
แล้วระบบนี้ ถ้าผมรัน เลขที่ เล่มที่ ไปถึงเลขที่ นึง เกิดไฟฟ้าขัดข้องการรันจะเริ่มใหม่หรือ ต่อเนื่องครับ
31 @R07339
ถ้าไฟฟ้าดับ ไม่ว่าจะใช้ Transaction Control หรือไม่ ก็ไม่มีอะไรการันตีครับว่าข้อมูลนั้นๆจะถูกต้องหรือไม่ อย่าพูดถึงระดับเรคอร์ดเลย แม้แต่ระดับฐานข้อมูล ก็ยังไม่แน่ใจเลยว่าจะเกิดปัญหาหรือไม่ คุณจึงควรมี UPS ไว้สำหรับใช้ยามฉุกเฉิน

อย่างนึงที่ต้องไม่ลืมคือข้อมูลใน Table1 นั้นยังคงอยู่เสมอแม้ผ่านการรันเลขที่ไปแล้ว ถ้าคุณคลิกปุ่มเพื่อรัน 2 ครั้ง มันก็จะสร้างข้อมูลเบิ้ลซ้ำลงใน Table2 เพียงแต่ได้เลขที่/เล่มที่ใหม่ครับ คุณก็ต้องหาวิธีจัดการกับข้อมูลใน Table1 เพื่อทำให้รู้ว่า รายการนั้นๆได้สร้างเลขที่/เล่มที่ไปแล้ว
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3137s