กระทู้เก่าบอร์ด อ.Yeadram
3,319 6
URL.หัวข้อ /
URL
การค้นหาข้อมูลเฉพาะเดือนกับปีได้ไหม
คือมีปัญหาอีกแล้วคะ
ต้องการที่จะค้นหาเฉพาะเดือนกับปีนะคะ ไม่เอาวันที่
คือเมื่อกรอกตัวเลข เดือนกับปีไปแล้วจะแสดงเฉพาะข้อมูลของเดือนและปีที่กรอกลงไปนะคะ แต่พอเวลาทำมันมีวันที่มาด้วยนะคะ
พอจะมีหนทางไหมคะ
หัวข้อเก่าเรื่องเตือนเมื่อข้อมูลซ้ำยังมีคำถามต่อนะคะ ช่วยดูให้ทั้งสองหัวข้อเลยนะคะ จักขอบคุณเป็นอย่างยิ่งเลยนะคะ
ต้องการที่จะค้นหาเฉพาะเดือนกับปีนะคะ ไม่เอาวันที่
คือเมื่อกรอกตัวเลข เดือนกับปีไปแล้วจะแสดงเฉพาะข้อมูลของเดือนและปีที่กรอกลงไปนะคะ แต่พอเวลาทำมันมีวันที่มาด้วยนะคะ
พอจะมีหนทางไหมคะ
หัวข้อเก่าเรื่องเตือนเมื่อข้อมูลซ้ำยังมีคำถามต่อนะคะ ช่วยดูให้ทั้งสองหัวข้อเลยนะคะ จักขอบคุณเป็นอย่างยิ่งเลยนะคะ
6 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R05602
- data type ของฟิลด์ที่เก็บวันที่เป็นประเภทไหน ? เป็น Date/Time หรือเป็น String ถ้าเป็น String แล้วมีรูปแบบการเก็บอย่างไร ? เป็น วัน/เดือน/ปี หรือ ปี/เดือน/วัน หรืออื่นๆ แล้วแต่ละส่วนของวันที่ เก็บกี่หลัก ถ้าวันที่เป็นวันที่ 1 จะเก็บเป็น 1 หรือ 01
- ค้นหาจากไหน ? จากเทเบิล หรือ จากหน้าฟอร์มที่กำลังแสดงอยู่ และสิ่งที่คุณคาดหวังจะได้คำตอบคืออะไร ? คือ SQL statement หรือ VBA procedure หรืออะไร ?!?
- "กรอกตัวเลข เดือนกับปีไปแล้ว" กรอกลงที่ไหน ? ถ้าลง textbox แล้ว กรอกแยกกันเป็นคนละ textbox หรือกรอกลง textbox เดียวกัน กรอกเป็นรูปแบบ format อะไร
- "แต่พอเวลาทำมันมีวันที่มาด้วย" ทำอะไร ทำยังไง ทำที่ไหน ?
- คุณทำอะไรไปมากน้อยแค่ไหนแล้ว ถ้ามีโค้ด ก็ลองเอามาแสดงให้ดูด้วยก็จะดี
สรุปคือ คุณอธิบายไม่ละเอียด พอไม่ละเอียด ก็อาจทำให้คนที่อ่านเขาไม่อยากเสียเวลามานั่งถามไปถามมา เพราะกินเวลาซักถาม อยากแนะนำว่า เวลาถาม
1) อย่าใช้คำที่เป็นคำกลางๆถ้าสิ่งนั้นมีคำนิยามหรือคำเรียกที่เป็นศัพท์ที่เข้าใจกันในโลกคอมพิวเตอร์อยู่แล้ว ให้ใช้คำนิยามคำนั้นแทน เพราะกระชับ ชัดเจน เข้าใจได้ถูกต้องกันทุกคน เช่น "ข้อมูล" มันคืออะไร คือ "เรคอร์ด" หรือ "ฟิลด์" หรืออะไร ก็ใช้คำนั้นให้ชัดเจนไปเลยครับ
2) ลองอ่านคำถามที่เขียนขึ้นเอง อ่านหลายรอบช้าๆ แล้วลองคิดว่าถ้าคนที่ไม่รู้ในงานที่เรากำลังทำหรือปัญหาที่กำลังพบอยู่ เขาอ่านแล้วจะติดขัดตรงไหนไม๊ อ่านแล้วรู้สึกติดๆขัดๆไหม ถ้ามีก็ให้แก้ไข เขียนคำถามใหม่ครับ
3) ทำอะไร ทำยังไง ทำที่ไหน ควรเขียนอธิบายให้ชัดเจนประกอบคำถามด้วยครับ
คำถามละเอียด ได้คำตอบเร็ว ตรงประเด็น
คำถามไม่ละเอียด ได้คำตอบช้า เสียเวลา ไม่ตรงประเด็น
คำถามสั้น แบบสั้นมากๆ ส่วนใหญ่จะไม่ได้คำตอบเลย
เท่าที่เห็นคำถามมามาก ลองดูคำถามของคุณ "มาลี" เธอเขียนได้ละเอียดชัดเจนดี ก็มักได้คำตอบที่เร็วครับ
ผมเขียนยืดยาวออกไปในทางตำหนิอย่างนี้ ก็ต้องขอโทษมา ณ ที่นี้ด้วย แต่เพื่ออยากให้เป็นแนวทาง ให้เห็นปัญหาในการตั้งคำถาม เพื่อให้เกิดประโยชน์สูงสุดทั้งผู้ถาม ผู้ตอบ และคนอื่นๆที่ได้เข้ามาอ่านด้วย
- ค้นหาจากไหน ? จากเทเบิล หรือ จากหน้าฟอร์มที่กำลังแสดงอยู่ และสิ่งที่คุณคาดหวังจะได้คำตอบคืออะไร ? คือ SQL statement หรือ VBA procedure หรืออะไร ?!?
- "กรอกตัวเลข เดือนกับปีไปแล้ว" กรอกลงที่ไหน ? ถ้าลง textbox แล้ว กรอกแยกกันเป็นคนละ textbox หรือกรอกลง textbox เดียวกัน กรอกเป็นรูปแบบ format อะไร
- "แต่พอเวลาทำมันมีวันที่มาด้วย" ทำอะไร ทำยังไง ทำที่ไหน ?
- คุณทำอะไรไปมากน้อยแค่ไหนแล้ว ถ้ามีโค้ด ก็ลองเอามาแสดงให้ดูด้วยก็จะดี
สรุปคือ คุณอธิบายไม่ละเอียด พอไม่ละเอียด ก็อาจทำให้คนที่อ่านเขาไม่อยากเสียเวลามานั่งถามไปถามมา เพราะกินเวลาซักถาม อยากแนะนำว่า เวลาถาม
1) อย่าใช้คำที่เป็นคำกลางๆถ้าสิ่งนั้นมีคำนิยามหรือคำเรียกที่เป็นศัพท์ที่เข้าใจกันในโลกคอมพิวเตอร์อยู่แล้ว ให้ใช้คำนิยามคำนั้นแทน เพราะกระชับ ชัดเจน เข้าใจได้ถูกต้องกันทุกคน เช่น "ข้อมูล" มันคืออะไร คือ "เรคอร์ด" หรือ "ฟิลด์" หรืออะไร ก็ใช้คำนั้นให้ชัดเจนไปเลยครับ
2) ลองอ่านคำถามที่เขียนขึ้นเอง อ่านหลายรอบช้าๆ แล้วลองคิดว่าถ้าคนที่ไม่รู้ในงานที่เรากำลังทำหรือปัญหาที่กำลังพบอยู่ เขาอ่านแล้วจะติดขัดตรงไหนไม๊ อ่านแล้วรู้สึกติดๆขัดๆไหม ถ้ามีก็ให้แก้ไข เขียนคำถามใหม่ครับ
3) ทำอะไร ทำยังไง ทำที่ไหน ควรเขียนอธิบายให้ชัดเจนประกอบคำถามด้วยครับ
คำถามละเอียด ได้คำตอบเร็ว ตรงประเด็น
คำถามไม่ละเอียด ได้คำตอบช้า เสียเวลา ไม่ตรงประเด็น
คำถามสั้น แบบสั้นมากๆ ส่วนใหญ่จะไม่ได้คำตอบเลย
เท่าที่เห็นคำถามมามาก ลองดูคำถามของคุณ "มาลี" เธอเขียนได้ละเอียดชัดเจนดี ก็มักได้คำตอบที่เร็วครับ
ผมเขียนยืดยาวออกไปในทางตำหนิอย่างนี้ ก็ต้องขอโทษมา ณ ที่นี้ด้วย แต่เพื่ออยากให้เป็นแนวทาง ให้เห็นปัญหาในการตั้งคำถาม เพื่อให้เกิดประโยชน์สูงสุดทั้งผู้ถาม ผู้ตอบ และคนอื่นๆที่ได้เข้ามาอ่านด้วย
3 @R05604
คือตอนนี้ดิวมีฟอร์มหลักใช้กรอกวันที่นะคะ รูปแบบตอนนี้ดิวกำหนดเป็น mm/yy แล้ว
แล้วก้อมีฟอร์มย่อย มาจากการ Qry คะ
จุดประสงค์คือต้องการให้เมื่อกรอกลงในฟอร์มหลักแล้ว ฟอร์มย่อยแสดงข้อมูลของเดือนที่กรอกไปทั้งหมด
ปัญหาตอนนี้นะคะ เมื่อกรอกเดือนและปีไปแล้ว ข้อมูลในฟอร์มย่อยแสดงไม่ครบทั้งเดือนนะคะ
และที่สำคัญตอนนี้นะคะ ดิวเอารูปขึ้นเวปไปได้คะ ทำยังไงคะมันขึ้นว่า error
แล้วก้อมีฟอร์มย่อย มาจากการ Qry คะ
จุดประสงค์คือต้องการให้เมื่อกรอกลงในฟอร์มหลักแล้ว ฟอร์มย่อยแสดงข้อมูลของเดือนที่กรอกไปทั้งหมด
ปัญหาตอนนี้นะคะ เมื่อกรอกเดือนและปีไปแล้ว ข้อมูลในฟอร์มย่อยแสดงไม่ครบทั้งเดือนนะคะ
และที่สำคัญตอนนี้นะคะ ดิวเอารูปขึ้นเวปไปได้คะ ทำยังไงคะมันขึ้นว่า error
4 @R05606
ขออภัยในความไม่สะดวกครับ เพิ่งเจอปัญหา(เรื่องการอัพรูป)
ตอนนี้แก้ให้แล้วครับ ทดสอบให้แล้วครับ
ตอนนี้แก้ให้แล้วครับ ทดสอบให้แล้วครับ
5 @R05609
รบกวนด้วยนะคะ
รบกวนด้วยนะคะ
6 @R05610
Qry คืออะไร ? คือ Query object หรือไม่ ถ้าใช่ ต้องเอา SQL statement ของ Query object นั้นมาให้ดุ หรือจะคือ SQL SELECT statement ที่ใส่เข้าไปตรงๆใน RecordSource property ของฟอร์มย่อย
แล้วที่บอกว่าแสดงไม่ครบทั้งเดือน หมายถึงอย่างไร ?
และ data type ของฟิลด์ที่เก็บวันที่เป็นประเภทไหน จุดนี้ก็ไม่ได้บอกมา
เอาหล่ะ ก็ตอบแบบเดาๆตามรายละเอียดเท่าที่มี ผิดอย่างไรก็ขอโทษด้วยแล้วกันนะครับ ผมเดาว่า
- Qry คือ SQL SELECT statement
- yy ป้อนเป็นปี คศ.
- data type ของฟิลด์ที่เก็บวันที่เป็นประเภท Date/Time
ดังนั้นหลังจากป้อนวันที่บนฟอร์มหลัก แล้วคุณมี event อะไรสักอย่างที่รองรับเพื่อสั่งให้ฟอร์มย่อยแสดงเรคอร์ดตามเงื่อนไขวันที่ คุณก็ต้องไปกำหนด RecordSource property ของฟอร์มย่อย เท่านี้เอง
ดังนั้น โค้ดก็จะเป็น
หมายเหตุ : ไม่สามารถแสดงภาพที่แนบมาได้นะครับ คลิกไปแล้วพบว่า "The page can not be found"
แล้วที่บอกว่าแสดงไม่ครบทั้งเดือน หมายถึงอย่างไร ?
และ data type ของฟิลด์ที่เก็บวันที่เป็นประเภทไหน จุดนี้ก็ไม่ได้บอกมา
เอาหล่ะ ก็ตอบแบบเดาๆตามรายละเอียดเท่าที่มี ผิดอย่างไรก็ขอโทษด้วยแล้วกันนะครับ ผมเดาว่า
- Qry คือ SQL SELECT statement
- yy ป้อนเป็นปี คศ.
- data type ของฟิลด์ที่เก็บวันที่เป็นประเภท Date/Time
ดังนั้นหลังจากป้อนวันที่บนฟอร์มหลัก แล้วคุณมี event อะไรสักอย่างที่รองรับเพื่อสั่งให้ฟอร์มย่อยแสดงเรคอร์ดตามเงื่อนไขวันที่ คุณก็ต้องไปกำหนด RecordSource property ของฟอร์มย่อย เท่านี้เอง
ดังนั้น โค้ดก็จะเป็น
Private Sub evnt_อะไรสักอย่าง
Me.[ชื่อ Subform control].Form.RecordSource = "SELECT * FROM ชื่อเทเบิล WHERE Month([ชื่อฟิลด์วันที่ในเทเบิล]) = " & Left$(Me.[ชื่อฟิลด์วันที่บนฟอร์ม],2) & " AND Year([ชื่อฟิลด์วันที่ในเทเบิล]) = " & CStr(Val(Right$(Me.[ชื่อฟิลด์วันที่บนฟอร์ม],2)) + 2000)
End Sub
หมายเหตุ : ไม่สามารถแสดงภาพที่แนบมาได้นะครับ คลิกไปแล้วพบว่า "The page can not be found"
Time: 0.3278s
ขอดูภาพตัวอย่างที่ทำ ได้ไหมครับ ว่าทำอย่างไร จะได้ให้คำตอบที่สามารถนำไปประยุกต์ใช้ได้เลย
( - จับภาพหน้าจอขณะทำงานหน้าฟอร์ม
- จับภาพหน้าจอขณะแสดงมุมมองออกแบบของฟอร์ม
- เขียนข้อความกำกับลำดับงานลงในภาพนั้นๆ ว่าต้องกรอกข้อมูลใดก่อน แล้วต่อจากนั้นให้กดปุ่มไหนหรือเขียนโค้ดให้เคอร์เซอร์โดดไปโฟกัสที่ไหนก่อนหรือเปล่า (ถ้ามี) แล้วเกิดเหตุการณ์อะไรยังไงต่อบ้าง จนมาถึงจุดที่มีปัญหา หรือจุดที่อยากปรับปรุง
)
-ตัวอย่างโค้ดที่ใช้ค้นหา
-ชื่อฟิลด์ที่เกี่ยวข้อง
-ชื่อคอนโทรลที่เกี่ยวข้อง
-ชื่อออบเจคอื่นๆ ที่เกี่ยวข้อง (คิวรี่ ตาราง ฟอร์ม รายงาน)
ตอบไปก็ไม่รู้จะเริ่มตอบจากตรงไหน
ตอบไปก็ไม่รู้คุณจะถามกลับมาอีกหรือเปล่า เพราะจุดเริ่มต้นของงาน พื้นฐานของกระบวนงานของผู้ถามกับผู้ตอบ เริ่มที่คนละจุดกัน หรือเริ่มจากคนละแนวทางกัน
ไม่ต้องเอามาจนครบทุกอย่างก็ได้ แต่อย่างน้อยๆ ควรจะพอให้คนตอบได้จินตนาการออกว่า งานของคุณมีอะไรบ้าง ทำไปในแนวทางไหนแล้วบ้าง แล้วจะได้ตอบหรือแนะนำให้เป็นไปในแนวทางเดียวกันครับ