กระทู้เก่าบอร์ด อ.Yeadram
1,803 5
URL.หัวข้อ /
URL
รบกวนดูโค๊ดให้หน่อยครับ
ผมทำผิดตรงใหนหรือป่าว
ตัวแปรมันไม่ส่งค่า และ SQL Insert มันรับค่าไม่ได้ครับ
Private Sub CmdaddToCar_Click()
Dim C1 As Integer
Dim Q1 As Integer
C1 = InputBox("กรุณาระบุ ลำดับรถคันที่")
Q1 = InputBox("กรุณาระบุ จำนวนแผ่นที่จะส่ง")
DoCmd.SetWarnings False
DoCmd.RunSQL "Insert Into tbtransportion (Car_num,product_ID,Cus_ID,Order_ID,DateTransport,Qty) Values(C1,Product_ID,Cus_ID,Order_ID,appoin_Date,Q1)"
DoCmd.SetWarnings True
End Su
ตัวแปรมันไม่ส่งค่า และ SQL Insert มันรับค่าไม่ได้ครับ
Private Sub CmdaddToCar_Click()
Dim C1 As Integer
Dim Q1 As Integer
C1 = InputBox("กรุณาระบุ ลำดับรถคันที่")
Q1 = InputBox("กรุณาระบุ จำนวนแผ่นที่จะส่ง")
DoCmd.SetWarnings False
DoCmd.RunSQL "Insert Into tbtransportion (Car_num,product_ID,Cus_ID,Order_ID,DateTransport,Qty) Values(C1,Product_ID,Cus_ID,Order_ID,appoin_Date,Q1)"
DoCmd.SetWarnings True
End Su
5 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R04677
ผมแนะนำให้แล้วใน http://www.thai-access.com/yeadram_view.php?topic_id=1065
แล้วที่คุณนำไปปรับปรุง นำไปปรับปรุงยังไงบ้าง อย่าบอกนะว่าไม่ได้ทำอะไรกับมันเลย คุณต้องบอกด้วยว่า คุณทำอะไรกับมันบ้างแล้ว ได้ผลหรือไม่ได้ผลยังไง แล้ว ค่อยแจ้งต่อมาว่า มันติดที่ตรงไหน
ดูจากโค้ดที่คุณนำมาโพสต์ซ้ำอีกครั้ง มันเห็นได้ชัดว่า "คุณไม่ได้ทำอะไรตามคำแนะนำเลย"
- inputbox มันคืนค่าออกมาเป็น String ไม่ใช่ Integer
- อะไรควรอยู่ใน เครื่องหมายฟันหนู อะไรควรอยู่นอกฟันหนู ต่อสายอักขระ ด้วยเครื่องหมาย อัมเพอร์แซนด์ & ยังไงบ้าง
- อะไรควรต้องมี single quote อะไรไม่ควรมี
- เรากำลังจะให้ VBA เป็นตัวช่วยเพื่อสร้างคำสั่งในภาษา SQL คุณต้องแยกแยะให้ออกว่า อะไรคือคำสั่ง หรือค่า ที่มาจาก VBA และอะไรคือค่าหรือคำสั่งของ SQL คุณต้องสร้างสายอักขระคำสั่งขึ้นมาให้ถูกต้องก่อน แล้วค่อยให้ SQL ไปทำงาน
ถ้าไม่เข้าใจว่า SQL คืออะไร ตามไปอ่านครับ
http://www.w3schools.com/SQL/sql_intro.asp
http://en.wikipedia.org/wiki/SQL
http://sot.swu.ac.th/cp342/Lesson06/ms1t1.htm
** กลับไปตอบต่อจากกระทู้เดิมครับ อย่าบอกแค่ว่า "มันไม่ได้ผล" แต่ควรเอามาให้ดูด้วยว่าคุณอ่านคำแนะนำแล้วนำไปปรับปรุงอย่างไรบ้าง
** ผมจับมือเขียนให้ทั้งหมดไม่ได้หรอก เพราะไม่รู้ว่า คำอะไรของคุณ เป็นชื่อ textbox บ้าง, คำอะไรของคุณเป็นชื่อฟิลด์บ้าง, คำอะไรของคุณเป็นชื่อตัวแปร คำเหล่านั้นอ้างถึงข้อมูลชนิดไหน text หรือ number
แล้วที่คุณนำไปปรับปรุง นำไปปรับปรุงยังไงบ้าง อย่าบอกนะว่าไม่ได้ทำอะไรกับมันเลย คุณต้องบอกด้วยว่า คุณทำอะไรกับมันบ้างแล้ว ได้ผลหรือไม่ได้ผลยังไง แล้ว ค่อยแจ้งต่อมาว่า มันติดที่ตรงไหน
ดูจากโค้ดที่คุณนำมาโพสต์ซ้ำอีกครั้ง มันเห็นได้ชัดว่า "คุณไม่ได้ทำอะไรตามคำแนะนำเลย"
- inputbox มันคืนค่าออกมาเป็น String ไม่ใช่ Integer
- อะไรควรอยู่ใน เครื่องหมายฟันหนู อะไรควรอยู่นอกฟันหนู ต่อสายอักขระ ด้วยเครื่องหมาย อัมเพอร์แซนด์ & ยังไงบ้าง
- อะไรควรต้องมี single quote อะไรไม่ควรมี
- เรากำลังจะให้ VBA เป็นตัวช่วยเพื่อสร้างคำสั่งในภาษา SQL คุณต้องแยกแยะให้ออกว่า อะไรคือคำสั่ง หรือค่า ที่มาจาก VBA และอะไรคือค่าหรือคำสั่งของ SQL คุณต้องสร้างสายอักขระคำสั่งขึ้นมาให้ถูกต้องก่อน แล้วค่อยให้ SQL ไปทำงาน
ถ้าไม่เข้าใจว่า SQL คืออะไร ตามไปอ่านครับ
http://www.w3schools.com/SQL/sql_intro.asp
http://en.wikipedia.org/wiki/SQL
http://sot.swu.ac.th/cp342/Lesson06/ms1t1.htm
** กลับไปตอบต่อจากกระทู้เดิมครับ อย่าบอกแค่ว่า "มันไม่ได้ผล" แต่ควรเอามาให้ดูด้วยว่าคุณอ่านคำแนะนำแล้วนำไปปรับปรุงอย่างไรบ้าง
** ผมจับมือเขียนให้ทั้งหมดไม่ได้หรอก เพราะไม่รู้ว่า คำอะไรของคุณ เป็นชื่อ textbox บ้าง, คำอะไรของคุณเป็นชื่อฟิลด์บ้าง, คำอะไรของคุณเป็นชื่อตัวแปร คำเหล่านั้นอ้างถึงข้อมูลชนิดไหน text หรือ number
3 @R04681
ต้องขอโทษด้วยครับ อ.yeadramที่เปิดกระทู้ใหม่ รีบไปหน่อย จริงๆแล้วไม่ค่อยรู้เรื่อง SQL สักเท่าหรอกครับอาจารย์
ครั้งแรก กำหนดเป็น Function และเรียกใช้ Function แต่มันเป็นคนละฟอร์มกัน
มันเลย Error ผมก็เลยลองเปลี่ยนให้มันอยู่ในฟอร์มเดียวกัน แต่มันอยู่ใน Subform อีกที มันก็ติดในกรณีนี้แหละครับ อ.yeadram รับค่าตัวแปร C1,Q1 เป็นตัว เลขครับ ส่วยข้อมูลที่เหลือเป็นข็อมูลที่มีอยู่แล้วใน table ข้อมูลครับ
ค่าตัวแปรส่วนใหญ่เป็นตัวเลขครับ อาจารย์
ครั้งแรก กำหนดเป็น Function และเรียกใช้ Function แต่มันเป็นคนละฟอร์มกัน
มันเลย Error ผมก็เลยลองเปลี่ยนให้มันอยู่ในฟอร์มเดียวกัน แต่มันอยู่ใน Subform อีกที มันก็ติดในกรณีนี้แหละครับ อ.yeadram รับค่าตัวแปร C1,Q1 เป็นตัว เลขครับ ส่วยข้อมูลที่เหลือเป็นข็อมูลที่มีอยู่แล้วใน table ข้อมูลครับ
ค่าตัวแปรส่วนใหญ่เป็นตัวเลขครับ อาจารย์
4 @R04682
ตกลงแล้วไปถึงไหนแล้วครับ
ทั้งที่คุณ Krathok-Man แนะนำไป และที่ผมแนะนำไป คุณเข้าใจบ้างหรือยัง เอาไปปรับแก้อย่างไรแล้วบ้าง เอาโค้ดที่ปรับแล้วแก้แล้วมาดูหน่อยครับ
// ผมไม่เข้าใจตรงนี้ "ส่วนข้อมูลที่เหลือเป็นข้อมูลที่มีอยู่แล้วใน table ข้อมูลครับ"
มันมีอยู่ในแล้วเหรอ ใน Table ไหนล่ะ ไม่เห็นอ้างถึงเลย ผมดูยังไงก็ดูไม่ออกว่ามันอ้างถึง Table ไหน แล้วถ้า VBA มันพูดได้ มันก็คงถามเหมือนผมถามนี่แหละครับ ข้อมูลมีอยู่แล้ว มีอยู่ใน Table ไหน ไม่เห็นบอกมันเลย
หรือว่ามันมีอยู่แล้วใน table เป้าหมาย (tbtransportion) ถ้าเป็นอย่างหลังนี่ คุณผิดเลยนะครับ งานของคุณมันต้องใช้ คิวรี่ Update ไม่ใช่ คิวรี่ Insert นะ
ถ้าอธิบายลำบาก ว่างานของคุณเป็นอย่างไร และข้อมูลของคุณมีอะไรบ้างให้ทำอย่างนี้ครับ
- จับภาพหน้าจอ มุมมองปกติ ของฟอร์ม เอามาดู
- จับภาพหน้าจอ มุมมองออกแบบ ของฟอร์ม เอามาดู
- จับภาพหน้าจอ มุมมองออกแบบ ของตาราง tbtransportion เอามาดู
เอามาสามภาพก่อนก็ได้
ทั้งที่คุณ Krathok-Man แนะนำไป และที่ผมแนะนำไป คุณเข้าใจบ้างหรือยัง เอาไปปรับแก้อย่างไรแล้วบ้าง เอาโค้ดที่ปรับแล้วแก้แล้วมาดูหน่อยครับ
// ผมไม่เข้าใจตรงนี้ "ส่วนข้อมูลที่เหลือเป็นข้อมูลที่มีอยู่แล้วใน table ข้อมูลครับ"
มันมีอยู่ในแล้วเหรอ ใน Table ไหนล่ะ ไม่เห็นอ้างถึงเลย ผมดูยังไงก็ดูไม่ออกว่ามันอ้างถึง Table ไหน แล้วถ้า VBA มันพูดได้ มันก็คงถามเหมือนผมถามนี่แหละครับ ข้อมูลมีอยู่แล้ว มีอยู่ใน Table ไหน ไม่เห็นบอกมันเลย
หรือว่ามันมีอยู่แล้วใน table เป้าหมาย (tbtransportion) ถ้าเป็นอย่างหลังนี่ คุณผิดเลยนะครับ งานของคุณมันต้องใช้ คิวรี่ Update ไม่ใช่ คิวรี่ Insert นะ
ถ้าอธิบายลำบาก ว่างานของคุณเป็นอย่างไร และข้อมูลของคุณมีอะไรบ้างให้ทำอย่างนี้ครับ
- จับภาพหน้าจอ มุมมองปกติ ของฟอร์ม เอามาดู
- จับภาพหน้าจอ มุมมองออกแบบ ของฟอร์ม เอามาดู
- จับภาพหน้าจอ มุมมองออกแบบ ของตาราง tbtransportion เอามาดู
เอามาสามภาพก่อนก็ได้
5 @R04683
ตรงนี้ได้แล้วครับ อ.yeadram แก้ inserรับค่าตัวแปร " & [ตัวแปร] &" ทำให้ผมงงอยู่หลายวันเลยครับ ขอบคุณมากครับ
Private Sub CmdaddToCar_Click()
Dim C1 As Integer
Dim Q1 As Integer
C1 = InputBox("¡ÃسÒÃÐºØ ÅӴѺö¤Ñ¹·Õè")
Q1 = InputBox("¡ÃسÒÃÐºØ ¨Ó¹Ç¹á¼è¹·Õè¨ÐÊè§")
DoCmd.SetWarnings False
DoCmd.RunSQL "Insert Into tbtransportion (Car_num,product_ID,Cus_ID,Order_ID,DateTransport,Qty,Weight) Values(" & [C1] & ",Product_ID,Cus_ID,Order_ID,appoin_Date," & [Q1] & ",WUnit)"
DoCmd.SetWarnings True
End Sub
มีอีกจุดที่ต้องการ ขอคำแนะนำหน่อยครับ
ตามรูปครับ อาจารย์เวลาเราชอัฟเดทข้อมูล Delivery1,Delivery2,Delivery3 ถึง Delivery6
อยากได้ค่าที่ อัฟเดทมากที่สุดหลังจากที่ อัฟเดทเสร็จแล้ว ค่าไปไว้โชว์ที่ Appoin_Date
ต้องใช้ function ใหนครับอาจารย์
ใช้botton กดเวลาอัฟเดทได้หรือป่าวครับ อาจารย์
Private Sub CmdaddToCar_Click()
Dim C1 As Integer
Dim Q1 As Integer
C1 = InputBox("¡ÃسÒÃÐºØ ÅӴѺö¤Ñ¹·Õè")
Q1 = InputBox("¡ÃسÒÃÐºØ ¨Ó¹Ç¹á¼è¹·Õè¨ÐÊè§")
DoCmd.SetWarnings False
DoCmd.RunSQL "Insert Into tbtransportion (Car_num,product_ID,Cus_ID,Order_ID,DateTransport,Qty,Weight) Values(" & [C1] & ",Product_ID,Cus_ID,Order_ID,appoin_Date," & [Q1] & ",WUnit)"
DoCmd.SetWarnings True
End Sub
มีอีกจุดที่ต้องการ ขอคำแนะนำหน่อยครับ
ตามรูปครับ อาจารย์เวลาเราชอัฟเดทข้อมูล Delivery1,Delivery2,Delivery3 ถึง Delivery6
อยากได้ค่าที่ อัฟเดทมากที่สุดหลังจากที่ อัฟเดทเสร็จแล้ว ค่าไปไว้โชว์ที่ Appoin_Date
ต้องใช้ function ใหนครับอาจารย์
ใช้botton กดเวลาอัฟเดทได้หรือป่าวครับ อาจารย์
Time: 0.3746s
คร่อมด้วย " " ก็คือ SQL Sting ชุดเดียวกันทั้งหมด ไม่ใช่ตัวแปรด้านบน