กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
        
           534   4		  
          
					  
		    URL.หัวข้อ / 
		    URL
        
        คำสั่งรันวันที่แบบนี้ กรอกกำกับตรงไหนใน Access97 ครับ      
		
    มีปัญหาเกี่ยวกับการรันวันที่อัตโนมัติ
ได้ search ดูกระทู้เก่าๆแล้ว
พบว่าอาจารย์แนะนำให้ใช้คำสั่งนี้คือ
...............................................
=DateAdd("m", 1, [วันเดือนปีเริ่มต้น])
...........................................
แต่ไม่ได้ให้รายละเอียดเพิ่มเติมว่าต้องไปใส่กำกับที่ใด
ใน Access97 ลองพยายามใส่ใน format แล้ว ก็ไม่เวิร์คครับ
หรือต้องใส่ตรงไหน อย่างไร ????
..... ขอคำแนะนำ/ตัวอย่างด้วย ขอบคุณครับ
				4 Reply in this Topic. Dispaly 1  pages and you are on page number 1 
				
        
    2 @R04283    
        
       
 
ชักจะท้อ+อ่อนใจแล้วครับอาจารย์
 
ผมคิดช้าสมองตื้อจริงๆครับ ....
 
...แต่ทำตามไม่ได้ผลจริงๆ คาดว่าผมพื้นฐานเรื่องนี้อ่อนมาก
 
.................................
 
ขอเริ่มปัญหาใหม่ก็แล้วกันนะครับ
 
ขอความกรุณาอาจารย์อธิบายแบบ simplify ที่สุดครับ
 
..............................
 
ปัญหาคือใน tblMain มีฟิลด์ที่เป็น primary key ชื่อ date
 
.....เป็นชนิด date/time ที่ฟอร์แมทเป็น ddดดดดbbbb
 
แต่ละวันจะกรอก ระเบียนเดียวเท่านั้น ต้องกรอกทุกวัน
 
ส่วนฟิลด์อื่นๆก็เป็นหางเครื่องยาวเหยียดไม่สำคัญนัก
 
ปัญหาก็คือในการ..ป้อน..ข้อมูล วันต่อไป
 
ประสงค์จะให้ date ขึ้นอัตโนมัติ แบบเดียวกับ autoNumber
 
ผู้ป้อนจะได้เริ่ม..คลิ๊ก...ป้อนข้อมูลเข้าฟิลด์หางเครื่องอื่นๆไปเลย
 
โดยไม่ต้องยุ่งกับฟิลด์ date ที่เป็น primary key นี้ ครับ
 
................................
 
ถ้า อจ.จะให้ code ในลักษณะ onClick บน frmMain ก็ได้ครับ
 
แต่ก็สงสัยว่าถ้าผู้ป้อนเผลอคลิ๊กไปที่วันก่อนหน้านั้น จะ error หรือไม่
 
......................
 
ขอชี้แนะทางออกด้วย และ ขอ code/คำแนะนำที่กระจ่างด้วยครับ
 
 
    
    
  
  ชักจะท้อ+อ่อนใจแล้วครับอาจารย์
ผมคิดช้าสมองตื้อจริงๆครับ ....
...แต่ทำตามไม่ได้ผลจริงๆ คาดว่าผมพื้นฐานเรื่องนี้อ่อนมาก
.................................
ขอเริ่มปัญหาใหม่ก็แล้วกันนะครับ
ขอความกรุณาอาจารย์อธิบายแบบ simplify ที่สุดครับ
..............................
ปัญหาคือใน tblMain มีฟิลด์ที่เป็น primary key ชื่อ date
.....เป็นชนิด date/time ที่ฟอร์แมทเป็น ddดดดดbbbb
แต่ละวันจะกรอก ระเบียนเดียวเท่านั้น ต้องกรอกทุกวัน
ส่วนฟิลด์อื่นๆก็เป็นหางเครื่องยาวเหยียดไม่สำคัญนัก
ปัญหาก็คือในการ..ป้อน..ข้อมูล วันต่อไป
ประสงค์จะให้ date ขึ้นอัตโนมัติ แบบเดียวกับ autoNumber
ผู้ป้อนจะได้เริ่ม..คลิ๊ก...ป้อนข้อมูลเข้าฟิลด์หางเครื่องอื่นๆไปเลย
โดยไม่ต้องยุ่งกับฟิลด์ date ที่เป็น primary key นี้ ครับ
................................
ถ้า อจ.จะให้ code ในลักษณะ onClick บน frmMain ก็ได้ครับ
แต่ก็สงสัยว่าถ้าผู้ป้อนเผลอคลิ๊กไปที่วันก่อนหน้านั้น จะ error หรือไม่
......................
ขอชี้แนะทางออกด้วย และ ขอ code/คำแนะนำที่กระจ่างด้วยครับ
        
    3 @R04288    
        
  
      ขออภัยครับ ผมให้โค้ดผิดไป 
 
ลองแแบบนี้ครับ
 
สมมติว่าฟีลด์เป้าหมายคือ MyDate ในตารางชื่อ Table2
 
เมื่อสร้างฟอร์มขึ้นมา เราสามารถกำหนดให้ Tab Stop ของฟีลด์ที่เก็บค่าวันที่เป็น No เมื่อเปิดฟอร์มเข้ามา แล้วคลิกไปยังข้อมูลใหม่ มันจะใส่วันที่วันต่อไปให้เอง
 
ผมจะใช้ OnEnter ของ Text Box อันต่อไป ของผมชื่อ MyName
 
Private Sub MyName_Enter()
 
Dim dteMax As Date
If IsNull(Me.MyDate) Or Me.MyDate = "" Then
If DCount("*", "Table2") <> 0 Then
dteMax = DMax("[MyDate]", "Table2")
dteMax = DateAdd("d", 1, dteMax)
Else
dteMax = Date
End If
        
Me.MyDate = dteMax
        
End If
 
End Sub
    
    
  ลองแแบบนี้ครับ
สมมติว่าฟีลด์เป้าหมายคือ MyDate ในตารางชื่อ Table2
เมื่อสร้างฟอร์มขึ้นมา เราสามารถกำหนดให้ Tab Stop ของฟีลด์ที่เก็บค่าวันที่เป็น No เมื่อเปิดฟอร์มเข้ามา แล้วคลิกไปยังข้อมูลใหม่ มันจะใส่วันที่วันต่อไปให้เอง
ผมจะใช้ OnEnter ของ Text Box อันต่อไป ของผมชื่อ MyName
Private Sub MyName_Enter()
Dim dteMax As Date
If IsNull(Me.MyDate) Or Me.MyDate = "" Then
If DCount("*", "Table2") <> 0 Then
dteMax = DMax("[MyDate]", "Table2")
dteMax = DateAdd("d", 1, dteMax)
Else
dteMax = Date
End If
Me.MyDate = dteMax
End If
End Sub
        
    4 @R04292    
        
       
 
 
รันได้แล้วตามที่ อจ.แนะนำวิธีการ+Code นี้
 
เวิร์ค ดี มาก ตามประสงค์
 
ขอบคุณเป็นอย่างยิ่งที่ให้ความกระจ่างครับ
    
  
    รันได้แล้วตามที่ อจ.แนะนำวิธีการ+Code นี้
เวิร์ค ดี มาก ตามประสงค์
ขอบคุณเป็นอย่างยิ่งที่ให้ความกระจ่างครับ
      Time: 0.0619s
    
      
		
คงต้องใช้ DMax ช่วยด้วย
=DMax([ฟีลด์วันที่],"ชื่อตารางเป้าหมาย")
จะได้วันที่ล่าสุดออกมา จากนั้นก็ใช้ DateAdd() ช่วย
=DateAdd("d", 1, วันที่ล่าสุดที่ได้จากข้างบน)
ลองใช้กับเหตุการณ์ On Double Click ของฟีลด์ที่เก็บวันที่ในฟอร์มดูครับ
ถ้าสมมติว่า Text Box ชื่อ txtDate ก็ลอง
Private Sub txtDate_DblClick(Cancel As Integer)
Dim dteMax As Date
If Not IsNull(Me.txtDate) Or Me.txtDate <> "" Then
dteMax = DMax([ฟีลด์วันที่],"ชื่อตารางเป้าหมาย")
dteMax = DateAdd("d", 1, dteMax)
Me.txtDate = dteMax
End If
End Sub
(ถ้ายังไม่ได้อีก ก็ลอง D4D() นะครับ 5555)