กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
344 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.1265s
คงต้องใช้ 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)