กระทู้เก่าบอร์ด อ.Yeadram
1,305 3
URL.หัวข้อ /
URL
ให้คีย์เลือกกลุ่มครั้งเดียวแล้วรับข้อมูลจนจบการคีย
สวัสดีค่ะ วันนี้มีปัญหามาขอความช่วยเหลืออีกแล้วค่ะ คือมีตาราง หลัก 2 ตาราง
1. ตารางกลุ่ม เก็บข้อมูลตามประเภทลูกค้า โดย กำหนดกลุ่มเป็น ตัวเลข 1,2,3...
2. ตารางใบสั่งซื้อ เก็บข้อมูลรายละเอียดของใบสั่งซื้อ จะมีกลุ่มลูกค้า, เลขที่ใบสั่ง, รายการสินค้า, จำนวน และอื่นๆ ค่ะ
ถ้าต้องการคีย์กลุ่มลูกค้าครั้งเดียว แล้วสามารถคีย์ข้อมูลใบสั่งซื้อหลายๆ ใบ โดยไม่ต้องคีย์กลุ่มลูกค้าใหม่ทุกครั้ง ทำได้มั๊ยคะ ต้องทำยังไงคะ
ทดลองทำหลายแบบมาเป็นครึ่งวันแล้ว ยังไม่ได้เลยค่ะ
ขอบคุณค่ะ
1. ตารางกลุ่ม เก็บข้อมูลตามประเภทลูกค้า โดย กำหนดกลุ่มเป็น ตัวเลข 1,2,3...
2. ตารางใบสั่งซื้อ เก็บข้อมูลรายละเอียดของใบสั่งซื้อ จะมีกลุ่มลูกค้า, เลขที่ใบสั่ง, รายการสินค้า, จำนวน และอื่นๆ ค่ะ
ถ้าต้องการคีย์กลุ่มลูกค้าครั้งเดียว แล้วสามารถคีย์ข้อมูลใบสั่งซื้อหลายๆ ใบ โดยไม่ต้องคีย์กลุ่มลูกค้าใหม่ทุกครั้ง ทำได้มั๊ยคะ ต้องทำยังไงคะ
ทดลองทำหลายแบบมาเป็นครึ่งวันแล้ว ยังไม่ได้เลยค่ะ
ขอบคุณค่ะ
3 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R09035
ขอบคุณค่ะอาจารย์
ทดลองทำ ทั้ง 2 วิธีแล้ว เขียนเป็นโค้ดได้ผลค่ะ แต่ วิธีกำหนดในคุณสมบัติแล้วขึ้น #error โชว์ค่ะ หนูเลยใช้โค้ด
แต่มีข้อสังเกตุว่าการกำหนด( ทั้งสองวิธีนี้ ) นี้มีข้อจำกัดกับฟิลด์ข้อมูลเป็นวันที่ หรือ มีเครื่องหมาย / หรือเปล่าคะเพราะพอกำหนดแล้ว จะโชว์ #name? ในฟิลด์หรือไม่ก็ขึ้นเป็นวันที่แปลกๆ ค่ะ
ขอบคุณค่ะ
ทดลองทำ ทั้ง 2 วิธีแล้ว เขียนเป็นโค้ดได้ผลค่ะ แต่ วิธีกำหนดในคุณสมบัติแล้วขึ้น #error โชว์ค่ะ หนูเลยใช้โค้ด
แต่มีข้อสังเกตุว่าการกำหนด( ทั้งสองวิธีนี้ ) นี้มีข้อจำกัดกับฟิลด์ข้อมูลเป็นวันที่ หรือ มีเครื่องหมาย / หรือเปล่าคะเพราะพอกำหนดแล้ว จะโชว์ #name? ในฟิลด์หรือไม่ก็ขึ้นเป็นวันที่แปลกๆ ค่ะ
ขอบคุณค่ะ
3 @R09042
- ถ้าขึ้น #error เป็นอาการปกติครับ สำหรับการเปิดใช้ฟอร์มครั้งแรก หลังจากมีการบันทึกข้อมูลแล้วอย่างน้อย 1 เรคคอร์ด ลักษณะดังกล่าวน่าจะหายไปครับ
... อย่างที่บอกครับ มันไม่หรูมาก แต่ก็พอใช้ทำงานได้ ลักษณะของผลลัพธ์ที่เราจะเป็นจากการทำแบบนี้ มันจะเกิดขึ้นในเรคคอร์ดที่ 2 เป็นต้นไปครับ
กล่าวคือ เราสั่งให้มันจำข้อมูลของเรคคอร์ดแรกไว้ครับ
... คำว่าเรคคอร์ดแรก หรือเรคคอร์ดที่ 2 ที่ผมกล่าวในที่นี้ ให้นับเฉพาะจำนวนที่เพิ่งบันทึกผ่านฟอร์มนี้ ในครั้งที่เปิดฟอร์มนี้นะครับ ถ้ามีการปิดฟอร์มลงไปแล้วเปิดใหม่ ก็นับหนึ่งใหม่อีกครับ
- ถ้าขึ้น #Name? อาจเกิดจาก คุณตั้งชื่อ ฟิลด์ กับชื่อ textbox เป็นคำเดียวกัน ทำให้ระบบไม่แน่ใจว่าต้องนำค่าอะไรมาใช้กันแน่ คือมันแยกไม่ออกว่าคุณกำลังอ้างอิงถึงอะไร วิธีแก้ไขคือต้องเปลี่ยนชื่อ textbox อย่าให้เป็นคำเดียวกันกับชื่อฟิลด์ที่มาผูก แล้วในนิพจน์นั้นให้อ้างชื่อ textbox นะครับอย่าอ้างชื่อฟิลด์
... อย่างที่บอกครับ มันไม่หรูมาก แต่ก็พอใช้ทำงานได้ ลักษณะของผลลัพธ์ที่เราจะเป็นจากการทำแบบนี้ มันจะเกิดขึ้นในเรคคอร์ดที่ 2 เป็นต้นไปครับ
กล่าวคือ เราสั่งให้มันจำข้อมูลของเรคคอร์ดแรกไว้ครับ
... คำว่าเรคคอร์ดแรก หรือเรคคอร์ดที่ 2 ที่ผมกล่าวในที่นี้ ให้นับเฉพาะจำนวนที่เพิ่งบันทึกผ่านฟอร์มนี้ ในครั้งที่เปิดฟอร์มนี้นะครับ ถ้ามีการปิดฟอร์มลงไปแล้วเปิดใหม่ ก็นับหนึ่งใหม่อีกครับ
- ถ้าขึ้น #Name? อาจเกิดจาก คุณตั้งชื่อ ฟิลด์ กับชื่อ textbox เป็นคำเดียวกัน ทำให้ระบบไม่แน่ใจว่าต้องนำค่าอะไรมาใช้กันแน่ คือมันแยกไม่ออกว่าคุณกำลังอ้างอิงถึงอะไร วิธีแก้ไขคือต้องเปลี่ยนชื่อ textbox อย่าให้เป็นคำเดียวกันกับชื่อฟิลด์ที่มาผูก แล้วในนิพจน์นั้นให้อ้างชื่อ textbox นะครับอย่าอ้างชื่อฟิลด์
Time: 0.2328s
สมมติว่าชื่อ txGroup
วิธีแรก การใช้โค้ด
ให้เขียนโค้ดในเหตุการณ์ หลังจากปรับปรุงข้อมูล ดังนี้
Private sub txGroup_AfterUpdate()
txGroup.DefaultValue = txGroup
End sub
วิธีที่สอง
การกำหนดคุณสมบัติของคอนโทรล
ให้ไปกำหนดในคุณสมบัติของ textbox หรือ combobox ตัวนี้เลยครับ ที่ค่าเริ่มต้น (Default Values) ให้เขียนเป็นนิพจน์ เซฟลงไปเลยครับ
= """" & [txGroup] & """"
หมายเหตุ เครื่องหมายที่เขียนติดกันนั่นคือ เครื่องหมาย ฟันหนู (duble quote) 4 ตัว ทั้งด้านหน้าและด้านหลัง
ลองดูครับ ไม่หรูมาก แต่ก็พอกล้อมแกล้มแก้ปัญหาเบื้องต้นได้บ้างครับ