ปัญหา Date ของ Office97 ใน Window XP
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 266   4
URL.หัวข้อ / URL
ปัญหา Date ของ Office97 ใน Window XP

สวัสดีครับผมีปัญหามารบกวนอีกแล้ว
คือเดิม ผมใช้ Office97 บน Window 98 มันทำงานได้ปกติไม่มีอะไรเพี้ยนซักเท่าไหร่นอกจาก BUG แต่ เมื่อ Upgrade OS มาเป็น WindowXP โดยยังใช้ Office97 เช่นเดิม ทำให้เกิดปัญหาเกี่ยวกับ เรื่อง Format ของ Date ครับ
เมื่อใช้ format ครอบไปที่ตัวแปร เช่น

Set dbs = CurrentDb
Date_1 = CDate(Format(Dt_box_2, "mm/dd/yyyy"))

SqlStr = "SELECT max(d_date) As D_Pr From sect " _
& "Where D_date <=#" & Date_1 & "#) "
Set Rst0 = dbs.OpenRecordset(SqlStr, dbOpenSnapshot)
Rst0.MoveFirst
Date_1 = CDate(Format(Rst0.Fields("D_pr"), "mm/dd/yyyy"))
Set Rst0 = Nothing

Set Qdf = dbs.QueryDefs("Q_Price")
Qdf("Date1") = Date_1 <---------- *** Error ***
Set Rst1 = Qdf.OpenRecordset(dbOpenSnapshot)
Set Qdf = Nothing

แต่ถ้าเปลี่ยนบรรทัดที่ error เป็น
Qdf("Date1") = #12/8/2003#

จะ Run ได้ครับ
เมื่อ debug ดูก็เห็นค่าของ Date_1 = #12/8/2003# Type เป็น Date เหมือนกันครับ
เมื่อตรวจสอบดูที่ format วันที่ของ Window ของทั้งสองเครื่องก็เหมือนกันครับ(คือเครื่องที่เป็น window 98 และเครื่องที่เป็น window xp)
แต่ลองเอา format ครอบที่ Date_1
Format(Date_1,"mm/dd/yyyy") ----> 8/12/1460
ซึ่งไม่รู้ว่าเป็นเพราะอะไร แต่ถ้าไป run ที่เครื่องที่เป็น Window98 จะไม่เป็นครับ
แต่ต้องทดสอบกับ Window หลายๆตัว เพราะ User ที่ใช้งานค่อนข้างหลากหลายเลยต้องทำให้ Run ได้ทุก OS ให้มีผลที่ออกมาเหมือนกัน ยังไงก็ขอความกรุณาช่วยแนะนำด้วยนะครับว่าจะแก้ไขได้อย่างไร ขอบคุณมากครับ

4 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R05707
ลองเอา SQL ของ Q_Price มาดูครับ

แล้วลองกำหนด Format ของ Text Box ชื่อ Dt_box_2 ให้แสดงวันที่ให้ถูกต้อง และเปลี่ยนบันทัดนี้จาก

Date_1 = CDate(Format(Dt_box_2, "mm/dd/yyyy"))

ไปเป็น

Date_1 = Me.Dt_box_2

ลองดูครับ


2 @R05708
ปัญหาอมตะ เลยครับเรื่องวันที่ในฐ่านข้อมูลเนี่ย

ปัจจุบันผมใช้เก็บข้อมูลวันที่เป็นตัวอักษร ไม่เจอปัญหาอีกเลยครับ

ไม่ลองเปลี่ยนวันที่เป็นตัวอักษรดูล่ะครับ เขียนโปรแกรมมากหน่อย แต่เอาอยู่
3 @R05711
Change date format to be Text Uhm..m.
just wondering how to calculate date different
or incase to group date by year/quater/month/etc.
any idea.?
4 @R05712
กลัวทำไมเรื่องแปลงวันที่จากตัวอักษรเป็นวันที่

ใช้คำสั่ง cDate สิครับ

แปลงค่าจากตัวอักษรมาเป็นวันที่ แล้วคุณจะไปคำนวนด้วย datediff หรือใช้บวกวันมันก็ได้ค่าเหมือนกัน เพราะได้แปลงเป็นวันที่แล้ว จากนั้นก็แปลงกลับเป็นตัวอักษรเหมือนเดิม

เรื่องฟอร์แมต อันนี้อยู่ที่คุณจะจัดการครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0494s