กระทู้เก่าบอร์ด อ.Yeadram
17,937 31
URL.หัวข้อ /
URL
Run เล่มที่ เลขที่ ในใบเสร็จฯ
รบกวนอาจารย์ทั้งหลายอีกแล้วครับ
เวลาเราออกใบเสร็จรับเงิน มันจะรันเล่มที่ เลขที่เองอัตโนมัติ โดยเลขที่ถ้าถึง100
จะขึ้นเล่มใหม่ แล้วเลขที่จะขึ้น 1 ไปเรื่อยๆ ถ้าเราทำทีละใบ ผมทำให้รันอัตโนมัติได้ครับ แต่ตอนนี้ปัญหาคือ ต้องการทำทีเดียวทั้งหมด โดยบันทึกข้อมูลไปก่อน แต่ไม่ได้บันทึกตัวเลขเล่มที่ เลขที่ เข้าไป เวลาเปิด Report ก็จะสามารถเปิดดูตั้งแต่คนที่ 1 ถึง สุดท้ายได้
ปัญหาของผมคือ จะรันเล่มที่ เลขที่ยังงัยให้เลข ต่อจากของเก่า โดยเมื่อรันเลขถึงร้อย ก็จะขึ้นเล่มใหม่
ฝากอาจารย์ทั้งหลายช่วยหน่อยครับ อย่างน้อยวิธีคิดก่อนก็ยังดี เพราะคิดเท่าไหร่ก็ไม่ออก
เวลาเราออกใบเสร็จรับเงิน มันจะรันเล่มที่ เลขที่เองอัตโนมัติ โดยเลขที่ถ้าถึง100
จะขึ้นเล่มใหม่ แล้วเลขที่จะขึ้น 1 ไปเรื่อยๆ ถ้าเราทำทีละใบ ผมทำให้รันอัตโนมัติได้ครับ แต่ตอนนี้ปัญหาคือ ต้องการทำทีเดียวทั้งหมด โดยบันทึกข้อมูลไปก่อน แต่ไม่ได้บันทึกตัวเลขเล่มที่ เลขที่ เข้าไป เวลาเปิด Report ก็จะสามารถเปิดดูตั้งแต่คนที่ 1 ถึง สุดท้ายได้
ปัญหาของผมคือ จะรันเล่มที่ เลขที่ยังงัยให้เลข ต่อจากของเก่า โดยเมื่อรันเลขถึงร้อย ก็จะขึ้นเล่มใหม่
ฝากอาจารย์ทั้งหลายช่วยหน่อยครับ อย่างน้อยวิธีคิดก่อนก็ยังดี เพราะคิดเท่าไหร่ก็ไม่ออก
31 Reply in this Topic. Dispaly 2 pages and you are on page number 2
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 เลย
อาจารย์ครับผมว่าบรรทัดนี้ Syntax Err นะครับ มันเลยไม่มีข้อมูลใน Table2 เลย
23 @R07331
- ใน Table1 ฟิลด์ ID_Member ใช้ชื่อว่าอะไร และมีข้อมูลเป็นประเภทอะไร (Text หรือ Numeric)
- ใน Table2 ฟิลด์ BKNo และ RBNo มีข้อมูลเป็นประเภทอะไร (Text หรือ Numeric)
- รันแล้วมี error อะไรแสดงออกมาหรือไม่
- ใน Table2 ฟิลด์ BKNo และ RBNo มีข้อมูลเป็นประเภทอะไร (Text หรือ Numeric)
- รันแล้วมี error อะไรแสดงออกมาหรือไม่
24 @R07332
ฟิลด์ตามรูปเลยครับ ตรงตามโคต ประเภท เป็น Text ทุกฟิลด์
รันแล้ว ตามรูป Err ที่โพสครับ
รันแล้ว ตามรูป 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 ออกมาครับ ไม่ใช่ทำงานผ่านไปได้เฉยๆ
ถ้าแก้แล้วยังทำงานไม่ได้ เอาโค้ดทั้งหมดมาแสดงให้เห็นอีกที
- คุณไปแก้ให้ 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
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 เป็นต้น
- เป็นภาษา 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 หรือไม่
แล้วระบบนี้ ถ้าผมรัน เลขที่ เล่มที่ ไปถึงเลขที่ นึง เกิดไฟฟ้าขัดข้องการรันจะเริ่มใหม่หรือ ต่อเนื่องครับ
มันช้าพอๆ กันครับ ไม่รู้เพราะระบบ Transaction Control หรือไม่
แล้วระบบนี้ ถ้าผมรัน เลขที่ เล่มที่ ไปถึงเลขที่ นึง เกิดไฟฟ้าขัดข้องการรันจะเริ่มใหม่หรือ ต่อเนื่องครับ
31 @R07339
ถ้าไฟฟ้าดับ ไม่ว่าจะใช้ Transaction Control หรือไม่ ก็ไม่มีอะไรการันตีครับว่าข้อมูลนั้นๆจะถูกต้องหรือไม่ อย่าพูดถึงระดับเรคอร์ดเลย แม้แต่ระดับฐานข้อมูล ก็ยังไม่แน่ใจเลยว่าจะเกิดปัญหาหรือไม่ คุณจึงควรมี UPS ไว้สำหรับใช้ยามฉุกเฉิน
อย่างนึงที่ต้องไม่ลืมคือข้อมูลใน Table1 นั้นยังคงอยู่เสมอแม้ผ่านการรันเลขที่ไปแล้ว ถ้าคุณคลิกปุ่มเพื่อรัน 2 ครั้ง มันก็จะสร้างข้อมูลเบิ้ลซ้ำลงใน Table2 เพียงแต่ได้เลขที่/เล่มที่ใหม่ครับ คุณก็ต้องหาวิธีจัดการกับข้อมูลใน Table1 เพื่อทำให้รู้ว่า รายการนั้นๆได้สร้างเลขที่/เล่มที่ไปแล้ว
อย่างนึงที่ต้องไม่ลืมคือข้อมูลใน Table1 นั้นยังคงอยู่เสมอแม้ผ่านการรันเลขที่ไปแล้ว ถ้าคุณคลิกปุ่มเพื่อรัน 2 ครั้ง มันก็จะสร้างข้อมูลเบิ้ลซ้ำลงใน Table2 เพียงแต่ได้เลขที่/เล่มที่ใหม่ครับ คุณก็ต้องหาวิธีจัดการกับข้อมูลใน Table1 เพื่อทำให้รู้ว่า รายการนั้นๆได้สร้างเลขที่/เล่มที่ไปแล้ว
Time: 0.3137s
' ถ้ามี error เกิดขึ้นในโปรแกรมและอยู่ระหว่าง Transaction Control เราต้อง Rollback Transaction ไม่เช่นนั้นจะเกิดปัญหาในภายภาคหน้าได้
If InTransaction then DBEngine.Rollback
exit sub
ErrRoutine:
Msgbox Err.Code & " : " & Err.Description
Resume ExitRoutine
End Sub