กระทู้เก่าบอร์ด อ.Yeadram
2,844 29
URL.หัวข้อ /
URL
บันทึกข้อมูลแบบ Combo box แล้วมีปัญหาครับ
คือผมมีเทเบิ้ล ของนาย ก. บันทึกไปแล้วว่า "ติดต่อได้"
ที่นี้ปัญหาอยู่ที่ว่า ผมจะแก้ไขให้เลือกเป็น "ติดต่อไม่ได้"
ถ้ากดเซฟ ข้อมูลทุกคนที่บันทึกว่า "ติดต่อได้" จะเปลี่ยนเป็น "ติดต่อไม่ได้หมดเลย"
แก้ไขอย่างไรครับ
ที่นี้ปัญหาอยู่ที่ว่า ผมจะแก้ไขให้เลือกเป็น "ติดต่อไม่ได้"
ถ้ากดเซฟ ข้อมูลทุกคนที่บันทึกว่า "ติดต่อได้" จะเปลี่ยนเป็น "ติดต่อไม่ได้หมดเลย"
แก้ไขอย่างไรครับ
29 Reply in this Topic. Dispaly 2 pages and you are on page number 1
2 @R23595
ยังไม่ได้ครับ ลองลบสร้างใหม่แล้วก็ยังไม่ได้ครับ
3 @R23596
ลองไปดูจากในเทเบิลโดยตรงว่าค่าของฟิลด์นี้ในเรคอร์ดต่างๆเปลี่ยนไปจริงหรือไม่ สิ่งที่เห็นบนหน้าจออาจไม่ใช่ค่าที่มีอยู่ในเทเบิลจริงๆก็ได้
4 @R23598
เปลี่ยนทั้งหมดครับ
คือแบบ สมมุติ นายก. "ติดต่อได้" นายข. "ติดต่อได้".... ฯลฯ
พอมผมเปลี่ยนไปเป็น "ติดต่อไม่ได้" เฉพาะคนที่ "ติดต่อได้" เท่านั้นทุกคน
ที่จะเปลี่ยนเป็น "ติดต่อไม่ได้" ทุกคนเลยครับ
ลองลบเทเบิ้ลแล้วก็ยังไม่หายครับ
คือแบบ สมมุติ นายก. "ติดต่อได้" นายข. "ติดต่อได้".... ฯลฯ
พอมผมเปลี่ยนไปเป็น "ติดต่อไม่ได้" เฉพาะคนที่ "ติดต่อได้" เท่านั้นทุกคน
ที่จะเปลี่ยนเป็น "ติดต่อไม่ได้" ทุกคนเลยครับ
ลองลบเทเบิ้ลแล้วก็ยังไม่หายครับ
5 @R23599
ไม่เคยเจออะไรแบบนี้มาก่อนเลยครับ
6 @R23600
จริงๆแล้วมันไม่ได้ยุ่งยากขนาดนั้นเลยครับ เว้นแต่คุณคมสันออกแบบตารางให้ผิดไปครับ ตรวจสอบดูใหม่นะครับ
1.กำหนดตารางความสัมพันธ์แบบ1ต่อกลุ่มหรือไม่ ถ้าใช่ผมว่าไม่จำเป็นต้องกำหนด
2.ตารางจริงๆมีแค่2ตารางคือตารางชื่อ กับตารางข้อมูลการติดต่อซึ่งตารางข้อมูลการติดต่อจะมีให้เลือก2รายการคือติดต่อได้กับติดต่อไม่ได้ใส่ค่าไปเลยครับ
3.ในตารางชื่อ ให้กำหนดฟิวด์ที่จะใช้เลือกข้อมูลเป็นแบบLookup Wizard แล้วเลือกตารางข้อมูลการติดต่อ Nextไปเรื่อยๆจนเสร็จ
เมื่อใส่ข้อมูลในตารางชื่่อ ฟิวด์นี้จะบังคับตัวเลือกให้เองครับ ซึ่งจะเป็นข้อมูลชื่อใครชื่อมันครับ
1.กำหนดตารางความสัมพันธ์แบบ1ต่อกลุ่มหรือไม่ ถ้าใช่ผมว่าไม่จำเป็นต้องกำหนด
2.ตารางจริงๆมีแค่2ตารางคือตารางชื่อ กับตารางข้อมูลการติดต่อซึ่งตารางข้อมูลการติดต่อจะมีให้เลือก2รายการคือติดต่อได้กับติดต่อไม่ได้ใส่ค่าไปเลยครับ
3.ในตารางชื่อ ให้กำหนดฟิวด์ที่จะใช้เลือกข้อมูลเป็นแบบLookup Wizard แล้วเลือกตารางข้อมูลการติดต่อ Nextไปเรื่อยๆจนเสร็จ
เมื่อใส่ข้อมูลในตารางชื่่อ ฟิวด์นี้จะบังคับตัวเลือกให้เองครับ ซึ่งจะเป็นข้อมูลชื่อใครชื่อมันครับ
7 @R23601
ยังไม่หายครับ
แต่ไม่รู้เพราะอะไรเหมือนกันครับ ไม่ได้เป็นที่ combo box ด้วยครับ
relationship ก็ไมไ่ด้ลบเทเบิ้ลใหม่ก็ไม่ได้ครับ
แต่ไม่รู้เพราะอะไรเหมือนกันครับ ไม่ได้เป็นที่ combo box ด้วยครับ
relationship ก็ไมไ่ด้ลบเทเบิ้ลใหม่ก็ไม่ได้ครับ
8 @R23602
ลอง Compact and Repair Database ดูครับ แล้วถ้ายังไม่ได้ ให้ตัดอะไรที่ไม่จำเป็นออกให้หมด เช่น ฟิลด์อื่นๆ ฟอร์มอื่นๆ คอนโทรลต่างๆในฟอร์ม ฯ ให้เหลือส่วนที่น้อยที่สุดที่ยังสามารถทำให้เกิดปัญหาได้ แล้วอัพโหลดไว้ที่ไหนสักแห่ง ผมจะเอามาดู อยากรู้เหมือนกันว่าเกิดอะไรขึ้น แต่เชื่อว่าน่าจะเส้นผมบังภูเขา
9 @R23606
https://drive.google.com/file/d/0B4Cs8tFxPqOMN0o3MTRmRDh5LVE/view?usp=sharing
ฝากรบกวนด้วยครับคุณ สันติสุขตอนแรกผมนึกว่าเป็นแค่เทเบิลเดียว
ตอนนี้พบว่าเป็นทุกเทเบิลที่เป็นเทิลแยกเลยครับ
ฝากรบกวนด้วยครับคุณ สันติสุขตอนแรกผมนึกว่าเป็นแค่เทเบิลเดียว
ตอนนี้พบว่าเป็นทุกเทเบิลที่เป็นเทิลแยกเลยครับ
10 @R23607
พบว่าในหน้า homeq subform ในช่อง interview_name ซึ่งแสดงคำว่า "ติดต่อ",... มันโยงมาจากฟิลด์ peopletbl.interview_id ในขณะที่อีก 2 ฟอร์มที่เหลือโยงมาจาก peopletbl.tidtor ซึ่งผมก็ไม่รู้ว่าอันไหนถูกหรือผิดบ้าง ยังไงก็ตาม ไม่ว่าจะแก้ไขข้อมูลการติดต่อนี้ในหน้าใด ก็ไม่ได้ทำให้ข้อมูลการติดต่อในเรคอร์ดอื่นเปลี่ยนตามไปด้วยเหมือนอย่างที่บอกเลย
อีกอย่างที่พบคือ ไม่มีการเชื่อมโยงข้อมูลอะไรระหว่างหน้า hrform และ homeq subform เลย ซึ่งจะถูกหรือผิดอันนี้ผมก็ไม่รู้เหมือนกัน อยู่ที่การออกแบบระบบของคุณ
อีกอย่างที่พบคือ ไม่มีการเชื่อมโยงข้อมูลอะไรระหว่างหน้า hrform และ homeq subform เลย ซึ่งจะถูกหรือผิดอันนี้ผมก็ไม่รู้เหมือนกัน อยู่ที่การออกแบบระบบของคุณ
11 @R23608
https://drive.google.com/file/d/0B4Cs8tFxPqOMaVE4ZmZjU3lUVWs/view?usp=sharing
โทษครับ ไฟล์นี้ครับ
คืออันนั้นผม เทเบิลทุกเทเบิลที่เป็นเทเบิลแยกออกมาจาก peopletbl
จะเป็นเหมือนกันหมดเลยคือจะเซฟทับ
ผมเลย สร้าง tidtor ไว้ใน peopletbl แต่ปรากฏเละกว่าเดิมครับ
ยังไงฝากดูหน่อยนะครับผมเครีดมากเลย
หน้า hrform คือหน้าคีย์ข้อมูลหน้าแรกไม่มีปัญหาใดๆ
แต่พอมาหน้า searchfrm ในหน้าการแก้ไขและการค้นหาข้อมูล
ตอนนี้มี 4 เทเบิลครับที่มีปัญหาคือ
1. resulttbl
2. sectiontbl
3. origintbl
4. interviewtbl
โทษครับ ไฟล์นี้ครับ
คืออันนั้นผม เทเบิลทุกเทเบิลที่เป็นเทเบิลแยกออกมาจาก peopletbl
จะเป็นเหมือนกันหมดเลยคือจะเซฟทับ
ผมเลย สร้าง tidtor ไว้ใน peopletbl แต่ปรากฏเละกว่าเดิมครับ
ยังไงฝากดูหน่อยนะครับผมเครีดมากเลย
หน้า hrform คือหน้าคีย์ข้อมูลหน้าแรกไม่มีปัญหาใดๆ
แต่พอมาหน้า searchfrm ในหน้าการแก้ไขและการค้นหาข้อมูล
ตอนนี้มี 4 เทเบิลครับที่มีปัญหาคือ
1. resulttbl
2. sectiontbl
3. origintbl
4. interviewtbl
12 @R23609
ในเทเบิล interviewtbl ฟิลด์ interview_id ที่มีค่า 1,4 และ 8 มีค่าของฟิลด์ inteview_name เดียวกัน คือคำ "อื่นๆ" แก้ไขให้ถูกต้องก็น่าจะใช้ได้แล้ว เทเบิลอื่นก็มีค่าซ้ำกันแบบนี้เหมือนกัน
13 @R23610
มีเพิ่มเติม
14 @R23611
ในฟอร์ม searchfrm ค่าบนฟอร์มต้องมาจากเทเบิล peopletbl โดยกำหนด Record Source ของฟอร์มเป็น peopletbl เท่านั้น ไม่ใช่เป็น SQL ที่มีการเชื่อมกับเทเบิลอื่นๆ เพื่อหวังให้ดึงความหมายของโค้ดต่างๆที่เก็บในเทเบิลอื่นๆนั้นมาแสดงบนฟอร์มอย่างที่คุณทำ
การเขียนเป็น SQL อย่างที่ทำ ก็ทำได้ แต่เพื่อเอาไว้แสดงอย่างเดียว ไม่ใช่เพื่อการเพิ่มเติมหรือแก้ไขอย่างที่ต้องการจะทำ เพราะถ้าทำอย่างที่ทำอยู่ การแก้ไขจาก "ติดต่อได้" เป็น "ติดต่อไม่ได้" มันจะไปแก้ที่ฟิลด์ interviewtbl.interview_name ตาม SQL โดยตรงเลย จึงเห็นว่าเรคอร์ดอื่นๆ ***เหมือน*** ถูกแก้ตามไปด้วย แต่เป็นเพียงเปลี่ยนความหมายเท่านั้น ค่า interviewtbl.interview_id และ peopletbl.interview_id ยังคงเดิม ถ้าหลังจากเกิดปัญหาแล้ว เราเข้าไปดูใน interviewtbl ก็จะเห็นค่าความหมายซ้ำอย่างที่ผมบอกไป
ส่วนวิธีการที่จะเอาความหมายของฟิลด์ peopletbl.interview_id ซึ่งจะต้องดึงมาจากเทเบิล interviewtbl มาแสดงในคอมโบบ็อกซ์นั้น ให้กำหนด property ต่างๆเหล่านี้ของคอมโบบ็อกซ์
- Control Source ให้เป็น interview_ID
- Row Source ให้เป็น SELECT interview_ID, interview_name FROM interviewtbl
- Bound Column property เป็น 1
- Limit to List เป็น Yes
- Column Count เป็น 2
- Column Width เป็น 0
คอมโบบ็อกซ์ตัวอื่นๆ ก็แก้ไขในแบบเดียวกัน แนะว่าคุณต้องไปอ่านว่า property ต่างๆของคอมโบบ็อกซ์ด้วยว่ามันหมายถึงยังไงและใช้งานยังไงด้วย
การเขียนเป็น SQL อย่างที่ทำ ก็ทำได้ แต่เพื่อเอาไว้แสดงอย่างเดียว ไม่ใช่เพื่อการเพิ่มเติมหรือแก้ไขอย่างที่ต้องการจะทำ เพราะถ้าทำอย่างที่ทำอยู่ การแก้ไขจาก "ติดต่อได้" เป็น "ติดต่อไม่ได้" มันจะไปแก้ที่ฟิลด์ interviewtbl.interview_name ตาม SQL โดยตรงเลย จึงเห็นว่าเรคอร์ดอื่นๆ ***เหมือน*** ถูกแก้ตามไปด้วย แต่เป็นเพียงเปลี่ยนความหมายเท่านั้น ค่า interviewtbl.interview_id และ peopletbl.interview_id ยังคงเดิม ถ้าหลังจากเกิดปัญหาแล้ว เราเข้าไปดูใน interviewtbl ก็จะเห็นค่าความหมายซ้ำอย่างที่ผมบอกไป
ส่วนวิธีการที่จะเอาความหมายของฟิลด์ peopletbl.interview_id ซึ่งจะต้องดึงมาจากเทเบิล interviewtbl มาแสดงในคอมโบบ็อกซ์นั้น ให้กำหนด property ต่างๆเหล่านี้ของคอมโบบ็อกซ์
- Control Source ให้เป็น interview_ID
- Row Source ให้เป็น SELECT interview_ID, interview_name FROM interviewtbl
- Bound Column property เป็น 1
- Limit to List เป็น Yes
- Column Count เป็น 2
- Column Width เป็น 0
คอมโบบ็อกซ์ตัวอื่นๆ ก็แก้ไขในแบบเดียวกัน แนะว่าคุณต้องไปอ่านว่า property ต่างๆของคอมโบบ็อกซ์ด้วยว่ามันหมายถึงยังไงและใช้งานยังไงด้วย
15 @R23612
เรียนคุณสันติสุขครับ
ตรงส่วน Control Source เปลี่ยนเป็น Interview_ID ไม่ได้ครับ
มีแต่ interview_name อย่างเดียวครับ
ตรงส่วน Control Source เปลี่ยนเป็น Interview_ID ไม่ได้ครับ
มีแต่ interview_name อย่างเดียวครับ
16 @R23613
ตอนนี้ทำได้แล้วครับ เดี่ยวผมขอลองทำสักครู่น่ะครับ
17 @R23617
ขอบคุณ คุณสันติสุข มากเลยครับได้แล้วขอบคุณมากครับ
ผมจะพัฒนาฝีมือให้มากกว่านี้นะครับ
ผมจะพัฒนาฝีมือให้มากกว่านี้นะครับ
18 @R23620
เรียนคุณ สันติสุข ครับ
ผมได้ทำตามคุณ ตอนนี้ผมได้พบปัญหาว่า
searchfrm ช่องค้นหาตามแผนกไม่สามารถค้นหาได้
เด้งเป็นถามหา section_name ยังนี้แก้อย่างไรครับ
ผมได้ทำตามคุณ ตอนนี้ผมได้พบปัญหาว่า
searchfrm ช่องค้นหาตามแผนกไม่สามารถค้นหาได้
เด้งเป็นถามหา section_name ยังนี้แก้อย่างไรครับ
19 @R23621
ผมให้เป็นลายแทงเอาไว้แล้วกัน
1. เรากำหนดให้ Record Source ของฟอร์มเป็น peopletbl เท่านั้น
2. เมื่อเลือกแผนกที่จะค้นหา คุณผูกเข้ากับ embeded macro ที่ทำการฟิลเตอร์ฟอร์มด้วยเงื่อนไข [section_name] Like "*" & [Forms]![searchfrm]![secdrop] & "*" จากข้อ 1 ทำให้ส่วนที่เป็นสีแดงนั้นต้องเป็นชื่อฟิลด์จาก peopletbl เท่านั้น แล้วฟิลด์อะไรบน peopletbl ที่เก็บข้อมูลเกี่ยวกับแผนก ?
3. ถ้าคอมโบบ็อกซ์ secdrop ยังมี property ต่างเหมือนไฟล์ที่คุณส่งมาให้ดู ก็จะบอกใบ้ให้ว่าการกำหนด property ต่างๆยังผิด คุณลองคิดให้ดีๆว่าตอนนี้คอมโบบ็อกซ์จะคืนค่าอะไรออกมากันแน่ ? ที่ถูกต้อง มันจะต้องคืนค่าที่นำไปค้นหาจากฟิลด์ในข้อ 2 ได้
1. เรากำหนดให้ Record Source ของฟอร์มเป็น peopletbl เท่านั้น
2. เมื่อเลือกแผนกที่จะค้นหา คุณผูกเข้ากับ embeded macro ที่ทำการฟิลเตอร์ฟอร์มด้วยเงื่อนไข [section_name] Like "*" & [Forms]![searchfrm]![secdrop] & "*" จากข้อ 1 ทำให้ส่วนที่เป็นสีแดงนั้นต้องเป็นชื่อฟิลด์จาก peopletbl เท่านั้น แล้วฟิลด์อะไรบน peopletbl ที่เก็บข้อมูลเกี่ยวกับแผนก ?
3. ถ้าคอมโบบ็อกซ์ secdrop ยังมี property ต่างเหมือนไฟล์ที่คุณส่งมาให้ดู ก็จะบอกใบ้ให้ว่าการกำหนด property ต่างๆยังผิด คุณลองคิดให้ดีๆว่าตอนนี้คอมโบบ็อกซ์จะคืนค่าอะไรออกมากันแน่ ? ที่ถูกต้อง มันจะต้องคืนค่าที่นำไปค้นหาจากฟิลด์ในข้อ 2 ได้
20 @R23622
ขอคำใบ้เพิ่มครับคุณสันติสุข ฮ่าๆ
Time: 0.3356s
1. โค้ดที่เกี่ยวข้อง ทำการอัพเดตค่าของเรคอร์ดอื่น ก็ต้องไปแก้ที่โค้ดครับ
2. ใน Relationships ของเทเบิลที่สัมพันธ์กันกับเทเบิลนี้ มีการกำหนด Cascade Update เข้ามายังฟิลด์นี้ ก็ให้เอา Cascade Update ออกไป