กระทู้เก่าบอร์ด อ.Yeadram
5,208 42
URL.หัวข้อ /
URL
เวลาพิมพ์เลขประจำตัวแล้วไงชื่อขึ้นเองอัติโนมัติ ทำ
เพ่ิงมารู้จักเวปนี้อ่านจากกระทู้ดูคร่าวๆแล้วดีจังเลยนะครับ ให้ความรู้ดีมาก ขอให้คนสร้างเวปและตอบคำถามเจริญทั้งเงินทอง การงาน และมิตรภาพนะครับ เข้าคำถามนะครับ คือผมอยากจะทราบว่า ถ้าผมพิมพ์เลขประจำตัวไปลงในแบบฟอร์มที่ผมสร้างไว้ แล้ว ทำยังไงให้ชื่อที่ผมมีข้อมูลอยู่ในtable โชว์ขึ้นมาเองอัติโนมัติอยู่ในฟอร์มเดียวกันกับผมที่ผมสร้างครับตามรูปนะครับ
42 Reply in this Topic. Dispaly 3 pages and you are on page number 2
21 @R18940
อาจารย์ส่งไฟล์ที่อาจารย์แก้แล้วมาให้ผมดูตัวอย่างหน่อยครับ musclegap@gmail.com ครับ
22 @R18941
อาจารย์ ผมทำก็ยังไม่ขึึ้นนะครับ มันยังขึ้น ERROR เหมือนเดิม ทั้งที่ทำเหมือนอาจารย์บอกแล้วน่ะ แล้ว ไอ้เจ้า Event Procedure มันอยู่ตรงไหนครับ แล้ว ไอ้เจ้า Compact on close มันอยู่ตรงไหนด้วยครับ ผมเพ่ิงเริ่มนะครับ รบกวนมากหน่อยนะครับ อาจารย์ส่งไฟล์ที่อาจารยืแก้แล้วกลับมาที่ musclegap@gmail.com หน่อยได้ไหมครับ
23 @R18942
ผมแชร์ไฟล์ไปแล้วนะครับ
24 @R18943
แฮะๆ ช้าหน่อย กำลังติดตั้ง SQL Server อยู่
25 @R18944
แล้วไฟล์ที่อาจารย์แชร์นั้น ผมจะไปดูได้ยังไงครับ มันมันอยู่ตรงไหนครับ
26 @R18945
มันจะส่งอีเมลไปตามที่คุณให้มาครับ
27 @R18957
สวัสดีครับอาจารย์ ผมได้แล้วน่ะครับ ขอบคุณมาก นั่งงมอยู่นานเหมือนกัน แต่มีปํญาจะถามคือ ทำไมพอคีย์เลขประจำตัวไปแล้ว กว่ามันจะขึ้นช้ามากกกกก ทำไมมันนานนัก และก็ไม่ขึ้นเลย จนกว่าผมจะไปเปลี่ยนมุมมอง เป็นมุมมองออกแบบแล้วกลับมามุมมชีส นั้นแหละ มันถึงจะเปลี่ยนเป็นชื่อให้ สาเหตุจากอะไรครับ เกียวกับเรื่องข้อมูลพนักงานเยอะไปหรือเปล่า(12400คน)
28 @R18958
ความเป็นไปได้
1. เครื่องช้า แรมน้อย
2. ไฟล์ใหญ่มาก
3. ตารางใหญ่มาก
4. ใช้คิวรีซับซ้อนภายในฟอร์ม
5. ไฟล์ที่ใช้หาข้อมูล (เช่น ID) ไม่ได้กำหนดเป็น Index
6. กำหนด Index เยอะเกินไป (ผมเคยเจอ คนตั้งทุกฟิลด์เป็น index มาแล้ว กุมขมับเลย)
7. ฟอร์มมีฟิลด์จำนวนมาก
8. ฟอร์มซับซ้อน เช่นมี Subform หลายอัน ใช้ Tab
9. มี Event มากมายภายในฟอร์ม
10. ฟอร์มทำงานหลายชั้น เช่นมีคิวรีหลายชั้นทำงานบนฟอร์ม
11. ผมเดาว่ามาโคร SendKeys ของคุณไม่ทำงาน
อันนี้เท่าที่นึกออกครับ แต่12400 นี่ก็ธรรมดาๆ ถ้าแรมเยอะ index ดี
1. เครื่องช้า แรมน้อย
2. ไฟล์ใหญ่มาก
3. ตารางใหญ่มาก
4. ใช้คิวรีซับซ้อนภายในฟอร์ม
5. ไฟล์ที่ใช้หาข้อมูล (เช่น ID) ไม่ได้กำหนดเป็น Index
6. กำหนด Index เยอะเกินไป (ผมเคยเจอ คนตั้งทุกฟิลด์เป็น index มาแล้ว กุมขมับเลย)
7. ฟอร์มมีฟิลด์จำนวนมาก
8. ฟอร์มซับซ้อน เช่นมี Subform หลายอัน ใช้ Tab
9. มี Event มากมายภายในฟอร์ม
10. ฟอร์มทำงานหลายชั้น เช่นมีคิวรีหลายชั้นทำงานบนฟอร์ม
11. ผมเดาว่ามาโคร SendKeys ของคุณไม่ทำงาน
อันนี้เท่าที่นึกออกครับ แต่12400 นี่ก็ธรรมดาๆ ถ้าแรมเยอะ index ดี
29 @R18960
วิธีทดสอบ Sendkeys คือให้ใส่คำสั่ง MessageBox "ข้อความอะไรก็ได้"
แทรกเอาไว้ก่อนหน้าคำสั่ง SendKeys
ถ้ามี Pop Up แสดงขึ้นมา แสดงว่า Event Procedure นี้ทำงานครับ
แทรกเอาไว้ก่อนหน้าคำสั่ง SendKeys
ถ้ามี Pop Up แสดงขึ้นมา แสดงว่า Event Procedure นี้ทำงานครับ
30 @R18971
อาจารย์ธัชชัย อยู่ไหมครับ ถ้าเราจะคีย์เลขประจำตัวลงในฟิลด์ที่เราทำไว้ในฟอร์มสำหรับป้อนข้อมูล เพื่อที่เวลามีข้อมูลใหม่ หรือเปลีี่ยนแปลงข้อมูล มันจะได้ไปม่รายละเอียดในtable ที่เราสร้างไว้นาะครับ
31 @R18972
ผมส่งอีเมลกลับไป 2 รอบแล้วอะครับ คือไฟล์ที่ส่งมาผมเปิดไม่ได้
ยังไงส่งขึ้น OneDrive ดีกว่าครับ เพราะไฟล์ใหญ่ส่งผ่าน google Drive แล้วมันมีปัญหา ยิ่งเป็น Access แล้ว Google ยิ่งทำอะไรซักอย่าง ไฟล์ใช้งานไม่ได้เลยครับ
ยังไงส่งขึ้น OneDrive ดีกว่าครับ เพราะไฟล์ใหญ่ส่งผ่าน google Drive แล้วมันมีปัญหา ยิ่งเป็น Access แล้ว Google ยิ่งทำอะไรซักอย่าง ไฟล์ใช้งานไม่ได้เลยครับ
32 @R18973
พยายามอ่านตรงนี้หลายรอบมาก
มันจะได้ไปม่รายละเอียดในtable ที่เราสร้างไว้นาะครับ
แต่ไม่เข้าใจ
มันจะได้ไปม่รายละเอียดในtable ที่เราสร้างไว้นาะครับ
แต่ไม่เข้าใจ
33 @R18974
เดียวครับ งั้นแป็ปนึง
34 @R18975
อันนี้ปัญยาแรกนะครับอาจารย์ ดูภาพตามลงิค์เลย http://wallpaper.thaiware.com/wallpapers/2014_06/17145_10149_140620215415_Hq.jpg รูปนี้พอเราคีย์ข้อมูลลงใน ฟอร์มที่เราสร้างไว้ ซึ่งอาจารยืแนะนำให้ผมสร้างเป็น Text Box แต่พอทำได้เรียบร้อย คีย์เสร็จ ข้อมูลเราที่คีย์ทั้งหมด มันกลับไม่มีไปใส่ในตารางทีเราสร้างรอรับข้อมูลไว้นา่ะครับ เหมือนประมาณว่า เจ้าText Box มันแค่สร้างหลอกๆไว้ ให้เราป้อนข้อมูลไปเฉยๆ แล้ว ชื่อ มันก้ขึ้นช้ามาก ทั้งที่จรืงผมก็ไม่ได้ไปใส่โค้ดอะไรหรือทำอะไรมากมายเลย ผมยังเก่งถึงขั้นนั้นนะครับ
35 @R18976
ส่วนอันนี้ปัญหาที่2ครับ
http://wallpaper.thaiware.com/wallpapers/2014_06/17145_10149_140620215907_A1.jpg
ในรายงาน ก็ไม่มีชื่อและข้อมูลที่เราได้ป้อนไว้เหมือนกันครับ(ใช้เจ้าตัว Text Box ตามที่อาจารย์แนะนำครับ) แล้ว ต้องการให้เลขลำดับ เรียงกัน 1 2 3 4 5 6 7 8 ไปเรื่อยจนตัวสุดท้ายของข้อมูลวันนั้น แล้ว พอวันใหม่ มันก็นับใหม่ จะจำนวนเท่าไรก็ได้ เราจะต้องทำยังไงครับ
http://wallpaper.thaiware.com/wallpapers/2014_06/17145_10149_140620215907_A1.jpg
ในรายงาน ก็ไม่มีชื่อและข้อมูลที่เราได้ป้อนไว้เหมือนกันครับ(ใช้เจ้าตัว Text Box ตามที่อาจารย์แนะนำครับ) แล้ว ต้องการให้เลขลำดับ เรียงกัน 1 2 3 4 5 6 7 8 ไปเรื่อยจนตัวสุดท้ายของข้อมูลวันนั้น แล้ว พอวันใหม่ มันก็นับใหม่ จะจำนวนเท่าไรก็ได้ เราจะต้องทำยังไงครับ
36 @R18977
"มันจะได้ไปม่รายละเอียดในtable ที่เราสร้างไว้นาะครับ" หมายความว่า ผมได้สร้าง table ไว้ชื่อว่า "พนักงานทั้งหมด" ซึ่งในtableนี้ ก็มีขัอมูลของพนักงานทั้งหมดที่เราดึงมาจากเอ็กเซลไว้เรียบร้อยแล้ว 12400รายชื่อ มีฟิลด์ดังนี้ ชื่อ เลขประจำตัว ตำแหน่ง สังกัด ฝ่าย เงินเดือน เงินที่กู้ เงินหักของเก่า รับสุทธิ เริ่มหักใหม่เดือน ฯลฯ และผมก็ได้สร้างฟอร์มสำหรับจะป้อนข้อมูลในการทำใบเสร็จ รับเงินกู้จากสหกรณ์ของหน่วยงานผม โดยดึงฟิลด์มาจาก table "พนักงานทั้งหมด" ได้แก่ เลขประจำตัว ชื่อ เงินที่กู้ เงินหักเก่า รับสุทธิ เริ่มหักใหม่เดือน นี้คือฟิลด์ที่ดึงมาจากtable ทั้งหมดครับ แล้วผมก็มาทำฟอร์มตามที่อาจารย์บอก แต่ผมขี้เกียจพิมพ์ ชื่อ ผมเลยถามอาจารย์ว่า เรามีวิธีไหนบ้างที่เราจะแค่พิมพ์แค่เลบประจำตัวแล้ว ชื่อจะขึ้นเองอัติโนมัติ(ชื่อมันก็จะมาจากข้อมูลในtable ที่เราสร้างไว้ที่table "พนักงานทั้งหมด"
37 @R18978
ต่อจาก "มันจะได้ไปม่รายละเอียดในtable " ที่จริงจะบอกว่า "มันจะได้ไปมีรายละเอียดในtableสร้างไว้พิมพ์ผิด จากสระอี เป็นไม้เอก พุดต่อเลยนะครับ
อาจารยืก็เลยบอกว่า ให้ผมสร้าง Text Box ขึ้นมา2อัน แล้วให้พิมพ์ ตารางเก็บชื่อ
: tblBirthDate
ฟิลด์เก็บ ID : ID
ฟิลด์เก็บชื่อ : Name
สร้างฟอร์ม
ใส่ Text Box 2 ชิ้นชื่อ txtID กับ txtName
ที่ txtName ให้กำหนด Control Source:
=DLookUp("[Name]","tblBirthDate","[txtID] = [ID]")
ที่ txtID ให้กำหนด After Update เป็น SendKeys "{F9}" , yes
พอผมทำเรียบร้อยป้อนข้อมูลลงไปแล้ว มึนขึ้นชื่อเรียบแล้ว แต่เมื่อผมกลับไปดูข้อมูลใน table ที่ผมสร้างรอไว้ กลับไม่มีข้อมูลชื่อ และเลขประจำตัวที่เราคีย์ลงใน Text Box ครับ ซึ่งปัญหานี้ก็เกิดเช่นเดียวกันกับในรายงาน คือไม่มีชื่อของผู้กู้ขึ้นในรายงานด้วยเหมือนกันครับ อาจารย์หายงงยังครับ
เลยอยากจะรบกวนถามอาจารย์ใหม่ว่า เราพอจะมีวิธีอื่นที่ป้อนเลขประจำตัวแล้ว ชื่อจะขึ้นเอง เราสามารถ ป้อนลงในฟิล์ในรูปแบบ form view ได้ไหมครับ ทำแบบนั้น ข้อมูล มันก็จะไปเพ่ิมเองในช่องฟิลด์ที่เราสร้าง table รองรับไว้น่ะครับ
อาจารยืก็เลยบอกว่า ให้ผมสร้าง Text Box ขึ้นมา2อัน แล้วให้พิมพ์ ตารางเก็บชื่อ
: tblBirthDate
ฟิลด์เก็บ ID : ID
ฟิลด์เก็บชื่อ : Name
สร้างฟอร์ม
ใส่ Text Box 2 ชิ้นชื่อ txtID กับ txtName
ที่ txtName ให้กำหนด Control Source:
=DLookUp("[Name]","tblBirthDate","[txtID] = [ID]")
ที่ txtID ให้กำหนด After Update เป็น SendKeys "{F9}" , yes
พอผมทำเรียบร้อยป้อนข้อมูลลงไปแล้ว มึนขึ้นชื่อเรียบแล้ว แต่เมื่อผมกลับไปดูข้อมูลใน table ที่ผมสร้างรอไว้ กลับไม่มีข้อมูลชื่อ และเลขประจำตัวที่เราคีย์ลงใน Text Box ครับ ซึ่งปัญหานี้ก็เกิดเช่นเดียวกันกับในรายงาน คือไม่มีชื่อของผู้กู้ขึ้นในรายงานด้วยเหมือนกันครับ อาจารย์หายงงยังครับ
เลยอยากจะรบกวนถามอาจารย์ใหม่ว่า เราพอจะมีวิธีอื่นที่ป้อนเลขประจำตัวแล้ว ชื่อจะขึ้นเอง เราสามารถ ป้อนลงในฟิล์ในรูปแบบ form view ได้ไหมครับ ทำแบบนั้น ข้อมูล มันก็จะไปเพ่ิมเองในช่องฟิลด์ที่เราสร้าง table รองรับไว้น่ะครับ
38 @R18979
https://mega.co.nz/#!pAVCEZzI!aSpAJVEP4WLoFLxbTA6bhn1aeogPu9b3AmwG1tgtY_w ลิงค์งานของผมที่ให้อาจารญ์ช่วยดูหน่อยตามนี้เลยนะครับ
39 @R18980
ผมอ่านมาหลาย Reply แล้ว ผมว่าผมเริ่มจับประเด็นคุณได้แล้วล่ะ
จาก R18975 นะ
เวลาเขาเก็บข้อมูลลงตารางอีกตารางหนึ่ง เขาจะเก็บ ID และส่วนที่เกี่ยวข้องเช่นเงินอะไรประมาณนั้น
เขาไม่เก็บ ID และชื่อกับนามสกุลไว้ในตารางอื่นอีก นอกจากตารางข้อมูลชื่อคนครับ
จาก R18976
อันนี้ต้องไปดูในรายงานครับ จริงๆ แล้วมันก็เกี่ยวพันกับ R18975 ครับ
ผมมีข้อเสนอนะ
เท่าที่ผมดูฐานข้อมูลบางส่วนที่คุณส่งมาน่ะ คุณต้องออกแบบฐานข้อมูลใหม่ล่ะ ถึงจะสามารถแก้ไขปัญหาต่างๆ ที่คุณถามมาได้
1. ถ้าคุณแก็ปไม่ได้รับจ้างทำฐานข้อมูลอันนี้
2. ถ้าฐานข้อมูลนี้เป็นของหน่วยงานรัฐ
ผมรับเป็นโค้ชให้ในฐานข้อมูลนี้แบบไม่คิดเงิน จะแนะนำให้ตั้งแต่การออกแบบจนถึง VBA เลยครับ เพียงแต่คุณต้องแก้ไขเยอะเท่านั้นเอง
ถ้าตกลงก็บอกมาครับ
แต่ถ้าไม่ตกลง ผมว่าคงต้องเหนื่อยกันอีกเยอะ
จาก R18975 นะ
เวลาเขาเก็บข้อมูลลงตารางอีกตารางหนึ่ง เขาจะเก็บ ID และส่วนที่เกี่ยวข้องเช่นเงินอะไรประมาณนั้น
เขาไม่เก็บ ID และชื่อกับนามสกุลไว้ในตารางอื่นอีก นอกจากตารางข้อมูลชื่อคนครับ
จาก R18976
อันนี้ต้องไปดูในรายงานครับ จริงๆ แล้วมันก็เกี่ยวพันกับ R18975 ครับ
ผมมีข้อเสนอนะ
เท่าที่ผมดูฐานข้อมูลบางส่วนที่คุณส่งมาน่ะ คุณต้องออกแบบฐานข้อมูลใหม่ล่ะ ถึงจะสามารถแก้ไขปัญหาต่างๆ ที่คุณถามมาได้
1. ถ้าคุณแก็ปไม่ได้รับจ้างทำฐานข้อมูลอันนี้
2. ถ้าฐานข้อมูลนี้เป็นของหน่วยงานรัฐ
ผมรับเป็นโค้ชให้ในฐานข้อมูลนี้แบบไม่คิดเงิน จะแนะนำให้ตั้งแต่การออกแบบจนถึง VBA เลยครับ เพียงแต่คุณต้องแก้ไขเยอะเท่านั้นเอง
ถ้าตกลงก็บอกมาครับ
แต่ถ้าไม่ตกลง ผมว่าคงต้องเหนื่อยกันอีกเยอะ
40 @R18981
ครับขอบคุณครับ ผมไม่ได้รับจ้างเขียนฐานข้อมูลหรอกครับ ผมจะเอามาใช้ในงานของผมนะครับ คือทุกวันนี้ผมทำงานผ่านเอ็กเซล ทำในส่วนของพนักงาน 12400 คน กับลูกค้าที่มาติดต่อรับเงินกับการรถไฟ อีก3390บริษัท และจะมากขึ้นอีกในอนาคต ในส่วนของพนักงาน เมื่อพนักงานที่อยู่ตามต่างจังหวัด ทำใบเบิกมา ไม่ว่าจะเป็น ค่ารักษาพยาบาล เบี้ยเลี้ยง เงินทดรองจ่าย ค่าเล่าเรียน เมื่อส่งเอกสารเข้ามาแล้ว ทางหน่วยงานในกรม ตรวจสอบความถูกต้อง แล้วหัวหน้างานและฝ่ายในสายงาน เซ็นต์ถูกต้องแล้วก็ต้องส่งกลับไปให้ผู้เบิก แล้วก็ต้องลง บันทึกไว้ในคอมพิวเตอร์เพื่อเป็นหลักฐานในการค้นหาข้อมูลต่อไป ซึ่งผมก็จะพิมพ์แต่ชื่อซ้ำๆกันตลอด วนเวียนใน 12400 คนนั้นแหละ เลยอยากจะหาตััวช่วยให้ผมได้ทำงานเร็วขึ้นนะครับ ซึ่งมันก็จะลดไปขั้นตอนนึง คือขั้นตอนการป้อนชื่อ และเลขที่เอกสาร(เพราะว่า สามารถกำหนดจำนวนเลขได้ครับ 6 ตัวอักษร) เวลาค้นหาก็จะได้ลดความผิดพลาดลงอีกเยอะ เมื่อผู้เบิกต้องการทราบข้อมูล ผมก็สามารถหาได้เลยใน ฟอร์มหน้าเดี่ยว ไม่ต้องอยู่กะจัดกะจายในชีสโน้นนี้นั้นเหมือนเอ็กเซล ส่วนในส่วนของบริษัทก็เหมือนกัน เมื่อมี บริษัท มารับเงิน ผมก็ต้องออกใบเสร็จรับเงินให้บริษัท ผมก็ไม่อยากจะมานั่งพิมพ์ชื่อ และพิมพ์ต้องมานั่งพิมพ์ชื่อลงบนเช็คอีก พอพิมพ์ชื่อผิดมันก็เป็นเช็คเสีย ผมไม่อยากให้เกิดการเสียหายมากมายกับองค์กร ซึ่งอันที่จริงผมก็พิมพ์ชื่อไว้ครบหมดแล้ว เวลาเราจะพิมพ์ชื่อเอามาใช่ในใบเสร็จรับเงินก็แค้่คลิก Ctrl+F แล้วคีย์ชื่อไปแล้วก็ก็อปปี้ชื่อนั้นเอามาลงในในใบเสร็จ พอตกเย็นผมก็ต้องมาทำบัญชี เอารายชื่อทั้งหมดที่หน่วยงานของผมจ่ายให้แก่บริษัทไปทั้งหมด พร้อมเลขที่ใบเสร็จ ซี่งผมคิดว่า การทำแบบนี้ มัน ขั้นตอนเยอะ ทำให้เสียเวลา ที่จะไปทำอย่างอื่นนะครับ เลยอยากจะลองทำACCESS ดู ส่วนเรื่องเงินนะไม่เป็นไรหรอกครับ คิดได้ ผมยอมเสียเพื่อความรู้นะครับ แต่อย่าเก็บแพงน่ะครับ3000 น้อยไปรึเปล่า ผมไม่เสียดายเงินเท่าไร ถ้าแลกกับความรู้ แต่ตอนนี้ ขาดสภาพาคล่องนิดนึงน่ะ ฮิฮิ รอปรับฐานเงินเดือนใหม่เดือนตุลาก่อน อันที่จริงงานที่ผมจะทำACCES นั้นไม่ได้ซับซ้อนอะไรระครับ ผมเขียนไปเรียนทำ 3D ที่อนุเสาวรีย์มาแล้ว แต่เมือ่ไม่ได้ใช้ก็คืนอาจารยืหมด นานๆจะเอามานั่งทำเล่ยสนุกๆ แต่พอถึงคำสั่งที่ทไม่ได้จริงๆมันก็เลย เบื่อ แล้วก็เลิกทำไมนะครับ ก็เลยตั้งใจไว้ว่า ถ้าเราทำออะไรดีๆสักอย่างเพื่อองค์กรของเรา มันก็จะเป็นประโยชน์ต่อไปสู้น้องพนักงานรุ่นหลังๆ นะครับ
Time: 0.2247s