ให้คีย์เลือกกลุ่มครั้งเดียวแล้วรับข้อมูลจนจบการคีย
กระทู้เก่าบอร์ด อ.Yeadram

 1,305   3
URL.หัวข้อ / URL
ให้คีย์เลือกกลุ่มครั้งเดียวแล้วรับข้อมูลจนจบการคีย

สวัสดีค่ะ วันนี้มีปัญหามาขอความช่วยเหลืออีกแล้วค่ะ คือมีตาราง หลัก 2 ตาราง
1. ตารางกลุ่ม เก็บข้อมูลตามประเภทลูกค้า โดย กำหนดกลุ่มเป็น ตัวเลข 1,2,3...
2. ตารางใบสั่งซื้อ เก็บข้อมูลรายละเอียดของใบสั่งซื้อ จะมีกลุ่มลูกค้า, เลขที่ใบสั่ง, รายการสินค้า, จำนวน และอื่นๆ ค่ะ

ถ้าต้องการคีย์กลุ่มลูกค้าครั้งเดียว แล้วสามารถคีย์ข้อมูลใบสั่งซื้อหลายๆ ใบ โดยไม่ต้องคีย์กลุ่มลูกค้าใหม่ทุกครั้ง ทำได้มั๊ยคะ ต้องทำยังไงคะ

ทดลองทำหลายแบบมาเป็นครึ่งวันแล้ว ยังไม่ได้เลยค่ะ

ขอบคุณค่ะ


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

1 @R09033
textbox ที่คุณใช้คีย์กลุ่มข้อมูลสินค้า หรือ combo box ก็ได้
สมมติว่าชื่อ txGroup

วิธีแรก การใช้โค้ด
ให้เขียนโค้ดในเหตุการณ์ หลังจากปรับปรุงข้อมูล ดังนี้

Private sub txGroup_AfterUpdate()
txGroup.DefaultValue = txGroup
End sub


วิธีที่สอง
การกำหนดคุณสมบัติของคอนโทรล
ให้ไปกำหนดในคุณสมบัติของ textbox หรือ combobox ตัวนี้เลยครับ ที่ค่าเริ่มต้น (Default Values) ให้เขียนเป็นนิพจน์ เซฟลงไปเลยครับ
= """" & [txGroup] & """"
   หมายเหตุ เครื่องหมายที่เขียนติดกันนั่นคือ เครื่องหมาย ฟันหนู (duble quote) 4 ตัว ทั้งด้านหน้าและด้านหลัง

ลองดูครับ ไม่หรูมาก แต่ก็พอกล้อมแกล้มแก้ปัญหาเบื้องต้นได้บ้างครับ
2 @R09035
ขอบคุณค่ะอาจารย์
ทดลองทำ ทั้ง 2 วิธีแล้ว เขียนเป็นโค้ดได้ผลค่ะ แต่ วิธีกำหนดในคุณสมบัติแล้วขึ้น #error โชว์ค่ะ หนูเลยใช้โค้ด

แต่มีข้อสังเกตุว่าการกำหนด( ทั้งสองวิธีนี้ ) นี้มีข้อจำกัดกับฟิลด์ข้อมูลเป็นวันที่ หรือ มีเครื่องหมาย / หรือเปล่าคะเพราะพอกำหนดแล้ว จะโชว์ #name? ในฟิลด์หรือไม่ก็ขึ้นเป็นวันที่แปลกๆ ค่ะ

ขอบคุณค่ะ
3 @R09042
- ถ้าขึ้น #error เป็นอาการปกติครับ สำหรับการเปิดใช้ฟอร์มครั้งแรก หลังจากมีการบันทึกข้อมูลแล้วอย่างน้อย 1 เรคคอร์ด ลักษณะดังกล่าวน่าจะหายไปครับ
... อย่างที่บอกครับ มันไม่หรูมาก แต่ก็พอใช้ทำงานได้ ลักษณะของผลลัพธ์ที่เราจะเป็นจากการทำแบบนี้ มันจะเกิดขึ้นในเรคคอร์ดที่ 2 เป็นต้นไปครับ
กล่าวคือ เราสั่งให้มันจำข้อมูลของเรคคอร์ดแรกไว้ครับ
... คำว่าเรคคอร์ดแรก หรือเรคคอร์ดที่ 2 ที่ผมกล่าวในที่นี้ ให้นับเฉพาะจำนวนที่เพิ่งบันทึกผ่านฟอร์มนี้ ในครั้งที่เปิดฟอร์มนี้นะครับ ถ้ามีการปิดฟอร์มลงไปแล้วเปิดใหม่ ก็นับหนึ่งใหม่อีกครับ

- ถ้าขึ้น #Name? อาจเกิดจาก คุณตั้งชื่อ ฟิลด์ กับชื่อ textbox เป็นคำเดียวกัน ทำให้ระบบไม่แน่ใจว่าต้องนำค่าอะไรมาใช้กันแน่ คือมันแยกไม่ออกว่าคุณกำลังอ้างอิงถึงอะไร   วิธีแก้ไขคือต้องเปลี่ยนชื่อ textbox อย่าให้เป็นคำเดียวกันกับชื่อฟิลด์ที่มาผูก   แล้วในนิพจน์นั้นให้อ้างชื่อ textbox นะครับอย่าอ้างชื่อฟิลด์

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