กระทู้เก่าบอร์ด อ.Yeadram
1,684 4
URL.หัวข้อ /
URL
กรอกข้อมูลตัวอักษรไม่ได้
คือว่ากรอกข้อมูลลง textbox แล้วมันเก็บข้อมูลตัวอักษรไม่ได้ เวลาที่กดบันทึกก็จะขึ้น msgbox ให้กรอกอีกทีนึงค่ะ แต่ถ้ากรอกเป็นตัวเลขจะไม่มีปัญหานะค่ะ เพราะอะไรหรอค่ะ
ปล.หนูเขียนใน vba นะค่ะ
DoCmd.GoToRecord acDataForm, Me.name, acFirst
DoCmd.RunSQL "Insert into Daily_Report(Emp_ID,Daily_Date,Daily_Time,Description,Work,Flag) values(" & txtempid & ", " & txtDate & ", " & txttime & ", " & txtdesc & ", " & txtwork & ", " & txtflag & ")"
ปล.หนูเขียนใน vba นะค่ะ
DoCmd.GoToRecord acDataForm, Me.name, acFirst
DoCmd.RunSQL "Insert into Daily_Report(Emp_ID,Daily_Date,Daily_Time,Description,Work,Flag) values(" & txtempid & ", " & txtDate & ", " & txttime & ", " & txtdesc & ", " & txtwork & ", " & txtflag & ")"
4 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R02652
รบกวนถามเพิ่มด้วยนะค่ะว่า ถ้าจะเปลี่ยนจาก txtwork เป็นการเก็บข้อมูลจากตัวแปรชื่อ works แทนต้องแก้ยังไงค่ะ ไม่ค่อยเข้าใจ vba เท่าไหร่ค่ะ รบกวนหน่อยนะค่ะ ขอบคุณค่ะ
2 @R02658
สิ่งแรกที่อยากให้แก้ไขคือ http://www.thai-access.com/yeadram_view.php?topic_id=467
สิ่งต่อมา ... ใน SQL Statement ค่าคงที่ที่เป็นเท็กซ์ ต้องถูกครอบด้วยเครื่องหมาย double quote (") หรือ single quote (') แต่ถ้าจะใช้ double quote จะยุ่งยากหน่อยเพราะ double quote เป็น string delimited ในภาษา VB/VBA อยู่แล้ว ดังนั้นแล้ว ภาษา VB/VBA จึงได้กำหนดว่า ให้ใส่ double quote 2 ตัวติดกันใน string เพื่อให้ตีความเป็น double quote 1 ตัวใน string แทน และคอนโทรลต่างๆที่อยู่บนหน้าฟอ์ม เราควรเขียนอ้างอิงให้ชัดเจนถูกต้อง โดยให้ใช้ Me. นำหน้าคอนโทรลเพื่อบอกว่าเป็นคอนโทรลของฟอร์มที่เป็นเจ้าของของโค้ดที่กำลังทำงานบรรทัดนี้อยู่ หรืออาจจะอ้างโดยรูปแบบเต็มๆ Forms("ชื่อฟอร์ม"). ดังนั้นจึงได้เป็น
DoCmd.RunSQL "Insert into Daily_Report(Emp_ID, Daily_Date, Daily_Time, Description, Work,Flag) values (""" & me.txtempid & """, .......
เพิ่มเติมว่า ค่าคงที่ที่เป็นวันที่สำหรับฟิลด์วันที่ ก็จะใช้เครื่องหมาย # เป็น date delimited ด้วย เช่น #12-Jan-2009# หรือ #01/12/2009#
ส่วนตัวแปล works ก็เขียน works แทน me.txtwork ไปได้เลย
สิ่งต่อมา ... ใน SQL Statement ค่าคงที่ที่เป็นเท็กซ์ ต้องถูกครอบด้วยเครื่องหมาย double quote (") หรือ single quote (') แต่ถ้าจะใช้ double quote จะยุ่งยากหน่อยเพราะ double quote เป็น string delimited ในภาษา VB/VBA อยู่แล้ว ดังนั้นแล้ว ภาษา VB/VBA จึงได้กำหนดว่า ให้ใส่ double quote 2 ตัวติดกันใน string เพื่อให้ตีความเป็น double quote 1 ตัวใน string แทน และคอนโทรลต่างๆที่อยู่บนหน้าฟอ์ม เราควรเขียนอ้างอิงให้ชัดเจนถูกต้อง โดยให้ใช้ Me. นำหน้าคอนโทรลเพื่อบอกว่าเป็นคอนโทรลของฟอร์มที่เป็นเจ้าของของโค้ดที่กำลังทำงานบรรทัดนี้อยู่ หรืออาจจะอ้างโดยรูปแบบเต็มๆ Forms("ชื่อฟอร์ม"). ดังนั้นจึงได้เป็น
DoCmd.RunSQL "Insert into Daily_Report(Emp_ID, Daily_Date, Daily_Time, Description, Work,Flag) values (""" & me.txtempid & """, .......
เพิ่มเติมว่า ค่าคงที่ที่เป็นวันที่สำหรับฟิลด์วันที่ ก็จะใช้เครื่องหมาย # เป็น date delimited ด้วย เช่น #12-Jan-2009# หรือ #01/12/2009#
ส่วนตัวแปล works ก็เขียน works แทน me.txtwork ไปได้เลย
3 @R02659
ขอบคุณค่ะ
ถูกต้องไหมคะ
ถูกต้องไหมคะ
4 @R02661
ใช้ได้ ถูกต้องแล้วครับ
Time: 0.2701s