กระทู้เก่าบอร์ด อ.Yeadram
2,014 11
URL.หัวข้อ /
URL
สอบถามเรื่องการสร้างข้อมูลคะ
คือจะทำการสร้างข้อมูลแสดงการขาดงานคะ คือ ถ้าพนักงานคนนี้ ภายในเดือนนี้ หยุดทั้งวัน 2 วัน ก็ให้แสดงเลขขีด แต่ถ้าไม่หยุดก้ให้ว่างไว้ โดยแสดงเปนวันที่ 1-31 แต่ขีดเฉพาะวันที่ไม่มาทำงานคะ
11 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R19756
ตอบเฉพาะคำถามหลังนะครับ คำถามแรกอ่านไม่เข้าใจนะครับ จะให้แนวคิดเอาไว้ก่อน
ถ้าตอนนี้เก็บเรคอร์ดเฉพาะวันที่ลาหยุด ก็ให้สร้างเทเบิลชั่วคราวใช้สำหรับการโชว์โดยเฉพาะ อย่างน้อยก็ต้องมีฟิลด์วันที่ และฟิลด์ที่บอกว่าวันนั้นเป็นวันที่ลาหยุด ก่อนโชว์ให้ลบเรคอร์ดในเทเบิลชั่วคราวให้หมด แล้วเพิ่มเรคอร์ดของวันที่ 1 ถึงวันที่สุดท้ายของเดือน วันที่ไหนตรงกับวันที่ลาหยุด ให้ใส่ข้อมูลในฟิลด์ที่บอกว่าวันนั้นเป็นวันลาหยุดเอาไว้ด้วย จากนั้นก็นำเทเบิลชั่วคราวไปใช้ในการแสดง จะในฟอร์มหรือจะในรายงานก็ได้
จริงๆมันมีวิธีอื่นอีก แล้วแต่ว่าคุณออกแบบระบบไว้ยังไง ให้แสดงวันที่ไม่ได้ลาหยุดเพื่อจุดประสงค์อะไร จะให้ป้อนอะไรลงในช่องของวันที่ไม่ลาหยุดได้ด้วยหรือไม่ ฯ
ถ้าตอนนี้เก็บเรคอร์ดเฉพาะวันที่ลาหยุด ก็ให้สร้างเทเบิลชั่วคราวใช้สำหรับการโชว์โดยเฉพาะ อย่างน้อยก็ต้องมีฟิลด์วันที่ และฟิลด์ที่บอกว่าวันนั้นเป็นวันที่ลาหยุด ก่อนโชว์ให้ลบเรคอร์ดในเทเบิลชั่วคราวให้หมด แล้วเพิ่มเรคอร์ดของวันที่ 1 ถึงวันที่สุดท้ายของเดือน วันที่ไหนตรงกับวันที่ลาหยุด ให้ใส่ข้อมูลในฟิลด์ที่บอกว่าวันนั้นเป็นวันลาหยุดเอาไว้ด้วย จากนั้นก็นำเทเบิลชั่วคราวไปใช้ในการแสดง จะในฟอร์มหรือจะในรายงานก็ได้
จริงๆมันมีวิธีอื่นอีก แล้วแต่ว่าคุณออกแบบระบบไว้ยังไง ให้แสดงวันที่ไม่ได้ลาหยุดเพื่อจุดประสงค์อะไร จะให้ป้อนอะไรลงในช่องของวันที่ไม่ลาหยุดได้ด้วยหรือไม่ ฯ
3 @R19757
ขอบคุณมากๆ นะคะ ยังงงๆ เพราะว่าเป็นมือใหม่ มากๆ คะ อยากสอบถามอีกเรื่องคะ เทเบิลชั่วคราวนี้ สร้างเหมือนเทเบิลทั้วไปไหมคะ ขอบคุณอีกครั้งคะ
4 @R19758
งงตรงไหนถามได้จนกว่าจะหายงง แต่ให้ถามอย่างมีรายละเอียด ปัญหานึงๆอาจจะประกอบไปด้วย ความต้องการ, เทเบิล, คิวรี่, ฟอร์ม, รายงาน, แมโคร, โค้ด อะไรที่เกี่ยวข้องต้องบอกมาให้หมดครับ
เทเบิลชั่วคราวก็เหมือนเทเบิลทั่วไปแหล่ะครับ สร้างทิ้งไว้ในระบบเลย แต่ต้องมีฟิลด์ที่เพิ่มเติมอย่างที่บอกไป
เทเบิลชั่วคราวก็เหมือนเทเบิลทั่วไปแหล่ะครับ สร้างทิ้งไว้ในระบบเลย แต่ต้องมีฟิลด์ที่เพิ่มเติมอย่างที่บอกไป
5 @R19759
ขอบคุณมากๆนะคะ เรื่องปัญหามีอย่างนี้คะ นู่มีข้อมูลเดิมอยู่แล้ว ที่มีฟิวส์ ชื่อคนงาน ,ฟิวส์วันที่เริ่มหยุด , ฟิวส์สิ้นสุดการหยุด , ฟิวส์รวมว่าหยุดกี่วัน เช่นอยุดตั้งแต่วันที่ 12-15 รวมหยุด 4 วัน
และสิ่งที่ต้องการนะคะ ตัวอย่างเช่น ในเดือน 11 นางสาว เอ หยุดงานวันที่ 12 - 15 ของเดือน อยากให้มันโชว์แบบนี้อ่ะคะ
เดือน 11
ชื่อคนงาน วันที่ 1 2 3 4 5 6 7 .................................................................. 31
นางสาวเอ - - - -
****ที่ขีดคือ วันที่ 12 - 15 ที่หยุด ส่วนวันที่ไม่มีขีดคือมาทำงาน ****
อยากส่งตัวอย่างให้ดูมากๆเลยคะ กลัวอทิบายแบบนี้แล้วจะงง
ขอบคุณอีกครั้งนะคะ ขอบคุณจริงๆคะ
และสิ่งที่ต้องการนะคะ ตัวอย่างเช่น ในเดือน 11 นางสาว เอ หยุดงานวันที่ 12 - 15 ของเดือน อยากให้มันโชว์แบบนี้อ่ะคะ
เดือน 11
ชื่อคนงาน วันที่ 1 2 3 4 5 6 7 .................................................................. 31
นางสาวเอ - - - -
****ที่ขีดคือ วันที่ 12 - 15 ที่หยุด ส่วนวันที่ไม่มีขีดคือมาทำงาน ****
อยากส่งตัวอย่างให้ดูมากๆเลยคะ กลัวอทิบายแบบนี้แล้วจะงง
ขอบคุณอีกครั้งนะคะ ขอบคุณจริงๆคะ
6 @R19760
ตัวอย่างของมูลที่มีตอนนี้คะ
และอยากให้แสดงแบบนี้ใน รายงานคะ คือจะสร้างฟอร์มไว้ให้สามารถเลือกเดือนได้ก่อน เมื่อเลือกเสร็จแล้วจะให้แสดงเป็นเดือนเดียว
และอยากให้แสดงแบบนี้ใน รายงานคะ คือจะสร้างฟอร์มไว้ให้สามารถเลือกเดือนได้ก่อน เมื่อเลือกเสร็จแล้วจะให้แสดงเป็นเดือนเดียว
7 @R19761
ตัวอย่างข้อมูลที่มีตอนนี้นะคะ อันแรก ขอแก้ไขคะ
8 @R19765
แต่ละเรคอร์ดในรูปที่ส่งมาให้ ต้องไม่มีการป้อนข้ามเดือนนะครับ เช่นลาตั้งแต่วันที่ 31/10/2557 ถึง 2/11/2557 ต้องป้อนเป็น 2 เรคอร์ดสำหรับ 31/10/2557 - 31/10/2557 และ 1/11/2557 ถึง 2/11/2557
ให้สร้างเทเบิลชั่วคราว (สมมุติชื่อ T) มีฟิลด์ UserNo เป็น Text สำหรับเก็บชื่อ ความยาวตาม userno ในเทเบิล abdate_01, มีฟิลด์อีก 31 ฟิลด์สำหรับ 31 วัน (สมมุติชื่อ D1, D2, ..., D31) เป็น Text ความยาว 2 character
เริ่มด้วยการลบและเพิ่มเรคอร์ดลงใน T
dim DB as DAO.Database
dim RS as DAO.Recordset
set DB as CurrentDB
DB.Execute "delete * from T"
DB.Execute "inser into T(UserNo) select distinct userno from abdate_01 where yr = ?? and mm = ??"
(?? = ไปเติมเอาเองนะครับว่าเป็นเดือน,ปีอะไร)
จากนั้นเปิด recordset RS จาก abdate_01 ในเดือนปีที่ต้องการ
set RS = DB.Openrecordset("select * from abdate_01 where yr = ?? and mm = ??")
วนอ่านแต่ละเรคอร์ดใน abdate01
do loop until RS.EOF
แต่ละเรคอร์ดให้อัพเดตทำเครื่องหมาย -- ในวันที่ลาหยุดลงเทเบิล T ที่ได้สร้างไปก่อนหน้า
for n = val(right(frdate,2)) to val(right(todate,2))
DB.Execute "update T (D" + cstr(n) + ") values('--') where UserNo = '" + RS!userno + "'"
next n
RS.movenext
loop
ในตัวรายงานก็สร้างเท็กบ็อกซ์ไว้ 31 ช่อง แต่ละช่องก็มี ControlSource เป็น D1 ถึง D31 ครับ
ปล. โค้ดที่ให้ไปอาจมีข้อผิดพลาดบ้าง เพราะเขียนสด ไม่ได้ผ่านการทดสอบ และช่วยเขียนผันวรรยุกต์ คะ, ค่ะ ให้ถูกด้วยนะครับ เพียง 2 คำเอง อย่าผิด
ให้สร้างเทเบิลชั่วคราว (สมมุติชื่อ T) มีฟิลด์ UserNo เป็น Text สำหรับเก็บชื่อ ความยาวตาม userno ในเทเบิล abdate_01, มีฟิลด์อีก 31 ฟิลด์สำหรับ 31 วัน (สมมุติชื่อ D1, D2, ..., D31) เป็น Text ความยาว 2 character
เริ่มด้วยการลบและเพิ่มเรคอร์ดลงใน T
dim DB as DAO.Database
dim RS as DAO.Recordset
set DB as CurrentDB
DB.Execute "delete * from T"
DB.Execute "inser into T(UserNo) select distinct userno from abdate_01 where yr = ?? and mm = ??"
(?? = ไปเติมเอาเองนะครับว่าเป็นเดือน,ปีอะไร)
จากนั้นเปิด recordset RS จาก abdate_01 ในเดือนปีที่ต้องการ
set RS = DB.Openrecordset("select * from abdate_01 where yr = ?? and mm = ??")
วนอ่านแต่ละเรคอร์ดใน abdate01
do loop until RS.EOF
แต่ละเรคอร์ดให้อัพเดตทำเครื่องหมาย -- ในวันที่ลาหยุดลงเทเบิล T ที่ได้สร้างไปก่อนหน้า
for n = val(right(frdate,2)) to val(right(todate,2))
DB.Execute "update T (D" + cstr(n) + ") values('--') where UserNo = '" + RS!userno + "'"
next n
RS.movenext
loop
ในตัวรายงานก็สร้างเท็กบ็อกซ์ไว้ 31 ช่อง แต่ละช่องก็มี ControlSource เป็น D1 ถึง D31 ครับ
ปล. โค้ดที่ให้ไปอาจมีข้อผิดพลาดบ้าง เพราะเขียนสด ไม่ได้ผ่านการทดสอบ และช่วยเขียนผันวรรยุกต์ คะ, ค่ะ ให้ถูกด้วยนะครับ เพียง 2 คำเอง อย่าผิด
9 @R19769
ขอบคุณมากคะ ขออภัยเรื่องการเขียนผันวรรณยุกต์ด้วยนะค่ะ หนูจะระวังกว่านี้คะ เป็นความเคยชิน ไม่ทันได้สังเกต ^^'
เรื่องโปรแกรมต่อเลยนะค่ะ...........
อย่างที่หนูบอกคะ คือหนูเป็นมือใหม่มากๆๆๆ เรื่องโปรแกรมที่พี่เขียนมา หนูไม่ได้งงนะค่ะ ที่หนูงงคือ หนูจะเอาโค๊ดไปไว้ที่ไหน คือหนูพออ่านโค๊ดเข้าใจบ้างคะ แต่ access หนูรู้จักแค่ การสร้าง Table Query Form Report แต่ถ้าเป็นเรื่อง โมดูล มาโคร หรือเขียนโค๊ดแบบนี้ หนูไม่รู้ว่าจะไปยังไงเลยคะ ไม่รู้ว่าจะเอามันไปเขียนไว้ที่ไหน เพื่อเชคเงือนไขต่างๆ หนูพอมีความรู้เรื่อง ภาษา VB อยู่บ้าง ไม่เยอะมาก แต่หนูจะลองพยายามทำดูตามที่พี่บอกนะค่ะ หากติดขัดตรงไหน หนูจะขอรบกวนมาสอบถามอีกนะค่ะ
ขอบคุณพี่มากจริงๆนะค่ะ ตอนนี้พอมีทางสว่างบ้าง ตอนแรกมืดมิดไม่รู้จะไปทางไหนเลยคะ ^^
เรื่องโปรแกรมต่อเลยนะค่ะ...........
อย่างที่หนูบอกคะ คือหนูเป็นมือใหม่มากๆๆๆ เรื่องโปรแกรมที่พี่เขียนมา หนูไม่ได้งงนะค่ะ ที่หนูงงคือ หนูจะเอาโค๊ดไปไว้ที่ไหน คือหนูพออ่านโค๊ดเข้าใจบ้างคะ แต่ access หนูรู้จักแค่ การสร้าง Table Query Form Report แต่ถ้าเป็นเรื่อง โมดูล มาโคร หรือเขียนโค๊ดแบบนี้ หนูไม่รู้ว่าจะไปยังไงเลยคะ ไม่รู้ว่าจะเอามันไปเขียนไว้ที่ไหน เพื่อเชคเงือนไขต่างๆ หนูพอมีความรู้เรื่อง ภาษา VB อยู่บ้าง ไม่เยอะมาก แต่หนูจะลองพยายามทำดูตามที่พี่บอกนะค่ะ หากติดขัดตรงไหน หนูจะขอรบกวนมาสอบถามอีกนะค่ะ
ขอบคุณพี่มากจริงๆนะค่ะ ตอนนี้พอมีทางสว่างบ้าง ตอนแรกมืดมิดไม่รู้จะไปทางไหนเลยคะ ^^
10 @R19770
ถ้าทำเป็นฟอร์ม ก็ใส่ไว้ที่ Form_Open event ก็ได้ ถ้าเป็นรายงานก็ใส่ไว้ที่ Report_Open ครับ หรือถ้าหน้าฟอร์ม(หรือรายงาน)นี้เปิดจากการคลิกปุ่มอะไรในหน้าจออื่น ก็ใส่ไว้ที่ OnClick ของปุ่มนั้นก็ได้เหมือนกัน
11 @R19771
ขอบคุณมากๆๆๆๆคะพี่ หนูจะลองทำดูนะค่ะ ติดขัดตรงไหน หนูจะรบกวนมาถามพี่อีกนะค่ะ
Time: 0.4223s
คือถ้านู่จะสร้างข้อมูล คนงาน 1 คน แสดงว่าเดือนนี้ หยุดกี่วัน ตอนนี้สามารถสร้างได้แต่โชว์เฉพาะวันที่หยุด วันที่ไม่หยุดจะไม่โชว์เลย ไม่ทราบว่าต้องทำอย่างไรคะ ถ้าจะโชว์ ทุกวัน ถึงวันที่มาทำงานก็โชว์คะ