กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
        
           516   7		  
          
					  
		    URL.หัวข้อ / 
		    URL
        
        access97 หรือ2000      
		
    
      ฝึกเขียนอยู่ครับ พบปัญหาต้องการสร้างปุ่มเพื่อคลิก แล้วให้มันแสดงวันที่และเวลาขณะนั้น  แต่ไม่ไม่เปลี่ยนแปลงต่อไป ถ้า วันที่และเวลาจริงมีการเปลี่ยนไป   
และอยากทราบว่ามีวิธีกำหนดอย่างไร ถ้าต้องการรู้ผลต่างของวันที่และเวลา 2 ช่วงว่า ใช้เวลาไปกี่วันกี่ชม.กี่นาที กี่วินาทีในการทำงานชิ้นนั้น ต้องใช้สูตรอย่างไร กำหนดไว้ที่ใด ขอความกรุณาด้วยครับ กำลังมึนไม่รู้จะไปพึ่งใครแล้ว ช่วยตอบทางอีเมล์ได้ก็จะเป็นพระคุณยิ่ง
    
  และอยากทราบว่ามีวิธีกำหนดอย่างไร ถ้าต้องการรู้ผลต่างของวันที่และเวลา 2 ช่วงว่า ใช้เวลาไปกี่วันกี่ชม.กี่นาที กี่วินาทีในการทำงานชิ้นนั้น ต้องใช้สูตรอย่างไร กำหนดไว้ที่ใด ขอความกรุณาด้วยครับ กำลังมึนไม่รู้จะไปพึ่งใครแล้ว ช่วยตอบทางอีเมล์ได้ก็จะเป็นพระคุณยิ่ง
				7 Reply in this Topic. Dispaly 1  pages and you are on page number 1 
				
        
    1 @R00511    
        
  
      ก็คงจะต้องเก็บในตาราง โดยแบ่งออกเป็น 2 ฟีลด์ คือ BDateTime เพื่อเก็บวันเวลาเริ่มต้น และ EDateTime เพื่อเก็บวันเวลาสิ้นสุด 
 
จากนั้นก็ให้สร้องฟอร์มจากตารางนี้ แล้วใส่ปุ่ม Command Button 2 ปุ่ม ไว้ข้างๆ Text Box ของฟีลด์ทั้ง 2 
 
ปุ่มที่ 1 ให้ใส่โค้ดนี้ลงไป 
 
Private Sub Command0_Click() 
If Me.BDateTime ="" Or IsNull(Me.BDateTime) Then 
    Me.BDateTime = Now 
End If 
End Sub 
 
และใส่โค้ดนี้ลงไปในปุ่มที่ 2 
 
Private Sub Command1_Click() 
If Me.EDateTime = "" Or IsNull(Me.EDateTime) Then 
    Me.EDateTime = Now 
End If 
End Sub 
 
ถ้าต้องการจะทราบความแตกต่างจากเวลาของทั้ง 2 ฟีลด์ ให้ใส่ Text Box ลงไปอีก 1 อัน ชื่อ txtTimeDiff 
แล้วใส่โค้ดนี้ลงไป โดยให้อยู่ใน On Double Click คือ ถ้าต้องการที่จะให้แสดงผล ต้องคลิก 2 ทีที่ Text Box นี้ 
 
Private Sub txtTimeDiff_DblClick(Cancel As Integer) 
If Me.EDateTime > Me.BDateTimeThen 
    Me.txtTimeDiff = DateDiff("d", Me.BDateTime, Me.EDateTime) & " วัน " & _ 
    DateDiff("h", Me.BDateTime, Me.EDateTime) Mod 24 & ":" & _ 
    DateDiff("n", Me.BDateTime, Me.EDateTime) Mod 60 & _ 
    ":" & DateDiff("s", Me.BDateTime, Me.EDateTime) Mod 60 
Else 
    MsgBox "เวลา Date Finish จะต้องมากกว่าเวลา Date Start", vbOKOnly, "ใส่เวลาผิด" 
    Exit Sub 
End If 
End Sub 
 
จะเห็นว่าผมใช้ฟังก์ชัน DateDiff() เข้าช่วย และการใช้ Mod (หารเอาเศษ)  
ให้ศึกษาจาก Help เพิ่มเติมนะครับ    
    
  
        
    2 @R00598    
        
  
      ผมมีปัญหาเกี่ยวกับการเขียนแอกเซสครับ   กำลังหัดทำ  อยากทำดังนี้ครับ 
มีพนักงานกลุ่มที่ 1 เป็นพนักงานระดับล่าง ต้องทำงานร่วมกับพนักงานกลุ่มที่2 เป็นพนักงานระดับบน 
แต่ละพนักงานมีเลขประจำตัวพนักงานตามลำดับอาวุโสครับ   
พนักงานทั้ง 2 กลุ่มจะถูกสุ่มรับงานมาทำชิ้นหนึ่ง   โดยงานจะหมุนเวียนไปตามลำดับเลขประจำตัวก่อนรับงานก่อน  พนักงาน2กลุ่มนั้นใครมีงานที่ค้างในมือน้อยที่สุดต้องทำงานชิ้นนั้นก่อน   ถามว่าจะเขียนยังไงครับที่จะให้กดปุ่มสุ่มหา แล้วระบบจะแจ้งเลขไอดีพนักงานนั้นหรือชื่อพนักงานนั้น ทั้ง 2 คนขึ้นมาเพื่อรับมอบงานชิ้นนั้นไปทำ   
หมายเหตุ ให้โปรแกรมหยุดสุ่มพนักงานคนที่ลาป่วยลากิจด้วย 
 ขอบคุณมากครับ    
    
  
        
    3 @R00600    
        
  
      คงต้องมีตาราง Assignment เพื่อบันทึกว่าใครทำงานอะไรบ้างตอนนี้ แล้วมีฟีลด์หนึ่งที่บอกว่าทำเสร็จหรือยัง 
จากนั้นเราต้องการทำการ Count ว่าใครเหลืองานในมือน้อยที่สุด โดยให้เรียงตามจำนวนงานที่น้อยขึ้นก่อน แล้วเรียงตามรหัสของพนักงานครับ 
 
ถ้าต้องการตรวจดูว่าคนลำดับที่ 1 ที่ควรจะมารับงานชิ้นต่อไปลาอยู่หรือเปล่า ก็ต้องตรวจว่ามีรายชื่อลาหรือเปล่า ไม่ทราบว่าตรงกับที่คิดเรื่องวันลาหรือเปล่าครับ    
    
  
        
    4 @R00602    
        
  
      เรื่องการสุ่มหา นั้นขอบคุณครับสำหรับคำอธิบาย แต่ยังไม่เข้าใจวิธีการทำ ไม่ทราบว่าพอจะสมมติตัวอย่างและต้องเขียนโค๊ดอย่างไรบ้างครับ ถ้าจะละเอียดสักนิดคงจะเป็นพระคุณยิ่งครับ  
ใช้97เขียนครับ    
    
  
        
    5 @R00603    
        
  
      จากหัวข้อที่ 00261 เรื่องการเขียนป่มกำหนดเวลา เช่นป่มที่ 1 ตอนแรกเวลาอยู่ที่ 00.00.00 หรือ NOW 
ก็ได้ และหลังจากนั้นสมมติว่าอีก 15 นาทีคลิกปุ่มที่2 ให้ปุ่มที่2ใส่เวลาของขณะนั้นNOWลงไป ทั้งนี้จุดประสงค์เพื่อเปรียบเทียบว่า จากเวลา ณปุ่มที่1ถึงเวลา ณ ปุ่มที่ 2 ใช้เวลาไปกี่ชม. กี่นาที กี่วินาที นั้น 
 และทางคุณสุภาพกรุณาให้คำแนะนำมา ผมลองทำดูปรากฎว่า ครั้งแรกที่ยังไม่คลิก(ใช้  ปุ่มออพชั่น ใน 97) ปรากฎว่า เริ่มแรกเป็น 00.00.00 และเมื่อคลิกให้เป็นจุดดำแล้วจะปรากฎเป็น 29/12/2442 ซึ่งไม่ตรงตามที่ผมต้องการ  ไม่ทราบว่าเป็นเพราะอะไร  
1.ทำไมจึงเป็น 29/12/2442 เวลาในเครื่องก็ถูกต้องแล้ว 
2.ทำไมหลังคลิกไม่เป็นวันที่ เช่น 19/08/2545  17.18.04 
3.มีวิธีแก้ไขอย่างไร  
4.ถ้ามีขั้นตอนการจับเวลาถัดไปอีกหลายขั้นตอน ทำเหมือนเดิมหรือไม่ หรือทำอย่างไร 
5.การหักกลบเวลาเพื่อให้ปรากฎในรายงานว่าแต่ละขั้นตอนใช้เวลาเท่าไร เขียนอย่างไร  
ขอความกรุณาด้วยครับ ละเอียดๆยิ่งดีหรือมีตัวอย่างจะเป็นพระคุณยิ่ง 
    
    
  
        
    6 @R00605    
        
  
      ไม่ทราบว่าได้สร้างหรือออกแบบตารางอะไรบ้างหรือยังครับ 
 
คงจะต้องมีตาราง 
1. ตารางพนักงาน 
StaffID, FName, LName, ... 
 
2. ตารางภาระงาน 
AutoID, TaskID, StaffID, Status (finished), WDate, ... 
 
3. ตารางงาน 
TaskID, TaskDescrpt, ... 
 
ให้สร้างความสัมพันธ์แบบ One-To-Manay ดังนี้ 
 
ตารางพนักงาน (One Side) -----> ตารางภาระงาน (Many Side) <------ ตารางงาน (One Side) 
Staff ID                                                      StaffID                                                TaskID 
                                                                   TaskID 
 
ไม่ทราบว่าวางแผนส่วนนี้ไว้อย่างไรบ้างครับ  
ลองออกแบบตารางต่างๆ ในขึ้นแรกเสียก่อนครับ    
    
  
        
    7 @R00606    
        
    
      คุณวิชิตครับ ขอให้เริ่มหัวข้อของคุณใหม่ โดยการคลิกที่ปุ่ม ฝากข้อความใหม่ นะครับ กระทู้ของคุณจะได้ไม่ปนกับของคนอื่นครับ 
 
ส่วนคุณ surapon ไม่ทราบว่ามีตัวย่างตัวที่พูดถึงว่ามีปัญหาหรือเปล่าครับ ให้ zip แล้วส่งมาให้ผมดู โดยอธิบายปัญหาและความต้องการให้ชัดเจนนะครับ ผมจะได้ดูได้ง่ายยิ่งขึ้น    
    
  
      Time: 0.0561s
    
      
		