เลิอกข้อมูลใน combo แล้วแสดงค่าใน textbox
กระทู้เก่าบอร์ด อ.Yeadram

 1,897   10
URL.หัวข้อ / URL
เลิอกข้อมูลใน combo แล้วแสดงค่าใน textbox

อธิบายก่อนนะค่ะ
มีตาราง 3 ตาราง
คือ tblMain : เก็บข้อมูลที่ต้องการ คีย์หลัก Nm_Customer
tblCusRe4kg : เก็บรายชื่อของลูกค้า , สินค้าคงเหลือ5kg ทั้งหมด 12 เดือน คีย์ : Nm_Customer
tblCusRe15kg : เก็บรายชื่อของลูกค้า , สินค้าคงเหลือ15kg ทั้งหมด 12 เดือน
คีย์ : Nm_Customer

สิ่งที่ต้องการคือ
ที่ CmbNmCustomer ต้องมีการโชว์รายชื่อของลูกค้าจากตารางทั้งสามโดยรายชื่อไม่ซ้่ำากัน และ
เมื่อเลือกรายชื่อที่ต้องการใน combo box แล้วให้แสดงข้อมุล ที่ txtStockRemaining4kg (จากตาราง tblCusRe4kg) และ
txtStockRemaining15kg (จากตาราง tblCusRe15kg) โดยแสดงยอดคงเหลือของเดือนที่แล้วของลูกค้ารายนั้น รวมทั้งเมื่อกรอกข้อมูลทั้งหมดแล้วมีการคำนวน ค่าใหม่ก็จะแสดงหลังจากคำนวนแล้วที่ txtStockRemaining4kg และ txtStockRemaining แทนที่ยอดคงเหลือของเดือนที่แล้ว   และข้อมูลทั้งหมดจะถูกเซฟใน tblMain ยกเว้นค่าที่ได้จากการคำนวนช่อง txtStockRemaining4kg และ txtStockRemaining15kg จะถูกเซฟใน tblCusRe4kg และ tblCusRe15kg ตามลำดับ

ไม่ทราบว่าดิฉันออกแบบฐานข้อมูลถูกไหมค่ะ
รบกวนผู้รู้ทุกๆท่านช่วยตอบหน่อยนะค่ะ

ขอบคุณค่ะ





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

1 @R12758
คำถามคือ "ออกแบบถูกหรือไม่" ใช่ไหมครับ ถ้าใช่ ก็ต้องบอกว่า เท่าที่มีข้อมูลบอกเล่ามาแค่นี้ ก็ไม่ถูกสักเท่าไหร่

1) เราไม่จำเป็นต้องแยกเป็นเทเบิล tblCusRe4kg และ tblCusRe15kg ทำไมเราไม่รวมกันเป็นเทเบิลเดียวไปเลย โดยเพิ่มฟิลด์ "จำนวนกิโล" เป็นอีกฟิลด์ โดยค่าฟิลด์นี้อาจเป็นตัวเลขบอกจำนวนกิโลโดยตรง เช่น 4 หรือ 15 ก็ได้ หรือจะเป็นรหัสแทนก็ได้ เช่น รหัส "1" แทน 4 กิโล, "2" แทน 15 กิโล

2) เรามักไม่ใช้ชื่อลูกค้า Nm_Customer (ถ้าผมเข้าใจไม่ผิดนะ) เป็นคีย์หลัก แต่เราจะกำหนดรหัสให้ลูกค้า แล้วใช้รหัสนั้นในเทเบิลอื่นๆเพื่อการอ้างถึงลูกค้าแทน ดังนั้นเราจะสร้างเทเบิล "ลูกค้า" เพื่อเก็บข้อมูลที่ขึ้นกับรหัสลูกค้าเพียงอย่างเดียวเป็นอีกเทเบิล ก็มักมีฟิลด์ รหัสลูกค้า, ชื่อ, ที่อยู่, เบอร์ติดต่อ เป็นต้น


การออกแบบฐานข้อมูล แม้จะมีหลักให้ยึดว่าให้ทำ Normalization แต่ถ้าเรามีเหตุผลที่สามารถอธิบายได้ว่าทำไมเราถึงทำขัดกับหลัก Normalization ในความเห็นของผมก็ถือว่าไม่ผิดอะไร

ปล. คะ กับ ค่ะ ออกเสียงไม่เหมือนกัน ต้องใช้ให้ถูกนะครับ
2 @R12759
-ขอบคุณคะ สำหรับคำแนะนำ
3 @R12760
ต้อง "ขอบคุณค่ะ" ไม่ก็ "ขอบคุณนะคะ" ครับ
4 @R12761
ขอถามอีกนิดนะคะ

คือตอนนี้ทำให้ข้อมูลแสดงลงใน combo box ได้แ้ล้วคะ แต่อยากได้แบบที่เมื่อเริ่มกรอกข้อมูลใหม่ โดยเลือกชื่อของลูกค้าคนเดิมใน combo box แล้วให้แสดงยอดคงเหลือของสินค้าเดือนที่แล้วลงใน txtStockRemaining4kg และ txtStockRemaining15kg โดยดึงมาจากตารางข้อมูลลูกค้า(tblCusRemaining)
และเมื่อกรอกข้อมูลลงไป ก็ให้มีการเปลี่ยนแปลงข้อมูลที่ได้จากการคำนวนลงในช่อง txtStockRemaining4kg และ txtStockRemaining15kg (ประมาณว่าแทนที่ ยอดของเดิือนที่แล้วเพื่อเซฟยอดสิ้นค้าของเดือนนี้ แทนที่ใน textbox เท่านั้น ไม่ใช่ตาราง) แล้วเมือ่เซฟข้อมูลก็จะเซฟลงในตารางทั้งสอง คือ tblMain และ tblCusRemaining

จะต้องทำไง หรือพอวิธีไหนเพื่อให้ได้ผลลัพธ์ที่ต้องการแบบนี้ไหมค่ะ

รบกวนผู้รู้ด้วยนะคะ

5 @R12762
ใน AfterUpdate event procedure ของ combobox ให้ใช้คำสั่ง DLookup(...) เพื่อไปหายอดคงเหลือของสินค้าเดือนที่แล้วและแสดงลง textbox ทั้ง 2

ส่วนการเปลี่ยนแปลงใน tblMain และ tblCusRemaining ก็ใช้คำสั่ง DoCmd.RunSQL "Update .... อะไรก็ว่าไป หรืออาจต้องใช้ร่วมกับคำสั่ง Insert ... ด้วยก็ได้"

ลองค้นหาตัวอย่างการใช้คำสั่งเหล่านี้ได้ในคำตอบเก่าๆนะครับ
6 @R12763
ปล. "ต้องการแบบนี้ไหมค่ะ" เขียนผิดอีกแล้วนะครับ ต้องเป็น "ต้องการแบบนี้ไหมคะ" ถึงจะถูก
7 @R12766
คุณ Moojo กับ คุณแพร นี่คนเดียวกันหรือเปล่าครับ

หรือ ถ้ารู้จักคุณแพร รบกวนแจ้งให้ไปแจ้งความคืบหน้าในกระทู้ด้วยครับ
http://www.thai-access.com/yeadram_view.php?topic_id=2729
8 @R12790
ลองพยายาทำความเข้าใจแล้ว แต่ทำไม่ได้อ่ะค่าา

รบกวนช่วยเขียนโค้ดให้หน่อยได้ไหมคะ

ขอบคุณนะคะ ^ ^
9 @R12793
ไม่ได้ครับ
10 @R12794
ไม่ได้ก้อไม่ได้ค่ะ

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