การใช้งานฐานข้อมูลพร้อกัน
กระทู้เก่าบอร์ด อ.Yeadram

 1,863   9
URL.หัวข้อ / URL
การใช้งานฐานข้อมูลพร้อกัน

วันนี้มีปัญหาอีกแล้วครับ คือว่าถ้าเราใช้ฐานข้อมูลตัวเดียวกัน เช่น มีการแก้ไขรายละเอียดสินค้าตัวกัน โดย นาย A และ นาย B ถ้านาย A มีการแก้ไขก่อน นาย B จะไม่สามารถพิมพ์อะไรได้นอกจากนาย A จะเซฟงานและออกจากหน้านั้น

พอจะมีระบบนี้หรือป่าวครับ เพราะในการใช้งานจริง มีสินค้าและลูกค้าเยอะมาก ซึ่ง นาย A หรือนาย B ก็ไม่รู้ว่าใครแก้ไขสินค้าอะไรบ้าง เลยอยากให้โปรแกรมมีกานเช็คให้เราอัตโนมัติเพื่อกันการใช้งานสินค้าตัวเดียวพร้อมกัน

9 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R14537
ถ้านาย B เปิดฐานข้อมูลได้ แต่แก้ไขเรคอร์ดเดียวกันกับนาย A ไม่ได้ สำหรับ Acces 2000-2003 ให้แก้ที่เมนู Tools - Options - Advanced - Default Record Locking เปลี่ยนเป็น No Locks และที่แต่ละฟอร์มก็ให้แก้ Record Lock property ให้เป็น No Locks ด้วย ส่วน Access เวอร์ชั่น 2007-2010 ให้ไปลองหาดูนะครับ ผมไม่มีอยู่ตอนนี้เลยบอกไม่ได้

แต่...ยังไงระบบจัดการฐานข้อมูล มันก็จะตรวจสอบเองแหล่ะว่า เรคอร์ดที่นาย B กำลังแก้ไข ได้ถูกคนอื่นแก้ไขไปก่อนหน้านี้หรือไม่ ถ้าใช่ ระบบก็จะถามว่า ต้องการจะเขียนทับที่คนอื่นแก้ไขไปแล้วหรือเปล่า แต่โดยปกติแล้ว ถ้าเรคอร์ดนั้นถูกคนอื่นแก้ไขไปแล้วสักระยะ ถ้านาย B ยังไม่ได้แก้ไขอะไร ข้อมูลบนหน้าจอของนาย B จะถูกปรับปรุงด้วยโดยอัตโนมัติ ถ้านาย B แก้ไขหลังจากนั้น กรณีอย่างนี้ระบบจะไม่ตรวจสอบอะไรให้ครับ เพราะถือว่าคุณเห็นข้อมูลที่ปรับปรุงเป็นปัจจุบันอยู่แล้ว
2 @R14538
ชอบคุณครับ อาจารย์สันติสุข ถ้าไม่เป็นการรบกวนจนมากเกินไปจะขอถามอีกซักข้อนะครับ คือว่าผมสร้างตารางมาสองตาราง ซึ่งเชื่อมโยงกันอยู่แด้วเช่น ตารางเนมกับตารางอายุ เช่น ถ้าเลือกชื่อเป็น wisit ตารางอยุจะเป็น 25 อัตโนมัติ ถ้าเลือก a อายุจะเป็ฯ 29
3 @R14540
หมายถึงให้แสดงบนฟอร์มหรือบนคิวรี่หรืออย่างไรครับ ถ้าเป็นฟอร์ม คุณตั้งชื่อเท็กซ์บ็อกซ์ว่าอะไรบ้าง ชื่อตารางและชื่อฟิลด์ในตารางอะไรบ้างที่เกี่ยวข้อง

หรือตามนี้ http://www.thai-access.com/yeadram_view.php?topic_id=2109 พอจะตอบคำถามได้ไหม
4 @R14541
คือว่าผมเริ่มต้นไม่ถูกครับ ตาราง คิวรี หรือฟอร์ม ผมรู้แต่ว่า
ฐานข้อมูลมี บริษัทลูกค้า วันที่ รหัสสินค้า ชื่อสินค้า ขนาดสินค้า น้ำหนักสินค้า

ผมต้องการจะบันทึกบริษัทลูกค้า วันที่
ส่วน รหัสสินค้า ชื่อสินค้า ขนาดสินค้า และน้ำหนักสินค้า ก็ดึงมาจากฐานข้อมูลซึ่งสัมพันธ์กันเช่น พอเราเลือก combobox รหัสสินค้า ในนั้นก็จะมีชื่อสินค้า ขนาดสนิค้า และน้ำหนักสินค้าให้เราเลื่อนสกอร์บาร์เลือก พอเลือกเสร็จแล้วมาบันทึก ข้อมูลทั้งหมดก็จะถูกบันทึกในฐานข้อมูลเดียวกัน
5 @R14544
คุณทำอะไรไปแล้วบ้าง อธิบายมาด้วย

1) มีกี่ตาราง แต่ละตารางมีฟิลด์อะไรบ้าง
2) คำว่า "ฐานข้อมูลซึ่งสัมพันธ์กัน" มันถึงอย่างไร ทำอะไรมันถึง "สัมพันธ์กัน" อธิบายมาด้วยครับ
3) "พอเลือกเสร็จแล้วมาบันทึก ข้อมูลทั้งหมดก็จะถูกบันทึกในฐานข้อมูลเดียวกัน" ข้อมูลทั้งหมดนี่คือฟิลด์อะไร, บันทึกลงเทเบิลอะไร

แต่ถ้าทั้งหมดนั้นยังไม่ได้ทำอะไรเลย เป็นแค่ความต้องการเฉยๆ อย่างนี้ผมไม่ช่วยนะ เพราะผมไม่มีเวลาถึงขนาดมาออกแบบระบบให้นะครับ คุณต้องเป็นคนออกแบบระบบเองว่ามันจะเป็นอย่างไร แต่เมื่อติดปัญหาในส่วนไหนแล้วมาถาม อย่างนี้พอช่วยเหลือกันได้ครับ
6 @R14545
ขึ้นต้นผมลองสร้าง Table ชื่อ T_Name โดยมีฟิล ID Name Age Gender
แล้วผมสร้าง form ชื่อ fm_test โดยดึงตาราง T_Name มาใส่ แล้วสร้างปุ่มบันทึกตารางเพิ่มครับ ผมต้องการให้เวลาเลือก Name ปุ่ม จะขึ้น Age และ Gender อัตโนมัต เช่น wisit อายุ 26 เพศชาย เวลาเลือก wisit มันก็จะขึ้น 26 M อัตโนมัตโดยไม่ต้องไปป้อนข้อมูลอีกเพราะเดี๋ยวป้อนผิดอีก แต่ก็จะมีกรณีนึง เช่น wisit มีหลายคน ก็จะให้เลือกอายุที่สัมพันธิ์กับชื่อ
7 @R14546
ข้ออนุญาติไปโพสกระทู้ใหม่ชื่อ ถามการลิ้งข้อมูล นะครับ มันโพสไม่ได้แล้ว
8 @R14551
โดยปกติ ถ้าเราออกแบบเทเบิล T_Name ได้ถูกต้อง ข้อมูลของฟิลด์ต่างๆใน T_Name ย่อมขึ้นตรงกับฟิลด์ ID อยู่แล้ว และของคุณก็ออกแบบได้ถูกแล้ว   ดังนั้นถ้าเราต้องการข้อมูลในฟิลด์ใดของ T_Name เราก็ไม่จำเป็นจะต้องเก็บค่าฟิลด์เหล่านั้นซ้ำลงในเทเบิลอื่นอีก เราเพียงแค่เก็บ ID ของบุคคลนั้นลงในเทเบิลอื่นก็เพียงพอ ส่วนข้อมูลของฟิลด์ต่างๆในเทเบิล T_Name   เราก็ดึงมาโดยใช้ค่า ID ที่เราเก็บไว้เป็นตัวไปค้นหาแทน   แต่ถ้าคุณมีเหตุผลเพียงพอที่จะอธิบายได้ว่าทำไมถึงจะเก็บค่าของฟิลด์ Name, Age, Gender ซ้ำลงในเทเบิลอื่นโดยไม่ไปใช้การค้นหาจากค่า ID อย่างที่ผมอธิบายข้างต้น คุณก็ทำไปเถอะครับ ไม่ผิดแต่อย่างใด

แต่ที่งงก็คือ

1) คุณบอกว่าเอา T_Name ไปสร้างเป็นฟอร์ม fm_Test และบอกว่า "แล้วสร้างปุ่มบันทึกตารางเพิ่ม" ไม่ทราบว่าเพิ่มไปที่เทเบิลอะไรครับ

2) "ผมต้องการให้เวลาเลือก Name ปุ่ม จะขึ้น Age และ Gender อัตโนมัติ"   ปุ่มของคุณคืออะไรครับ เป็น command button ใช่หรือไม่ ? แล้วทำไมต้องทำเป็นปุ่ม มีปุ่มแล้วให้คลิกกดแล้วจะเกิดอะไรขึ้น ทำไมไม่เป็นเท็กซ์บ็อกซ์
9 @R14554
งั้นผมยกตัวอย่างการใช้งานจริงดีกว่านะครับ




อธิบายจากรูปนะครับ คือต้องการทำให้เวลาเพิ่มสินค้าหรือเลือกสินค้าไปในฐานข้อมูล เวลาเลือก combobox มีจะขึ้น M'Samsung 1 ตัว M'Sony 1 ตัว สมมุติเลือก Samsung พอจะไปเลือก PS มันก็ให้เลือก 15 กับ 17 ( 16กับ 18เป็นของ M'Sony) สมมุติเลือก 15 พอเลือกเสร็จก็เลือก PW มันก็จะมีแค่ 20 (เพราะ 21 เป็นของ PS 17) สุดท้ายก็บันทึกลง Table1
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3433s