กระทู้เก่าบอร์ด อ.Yeadram
5,956 6
URL.หัวข้อ /
URL
คำสั่ง insert into
ผมใช้คำสั่ง Insert into ส่งข้อมูลจาก form ไปยัง table
เป็น form เปล่าๆ ไม่ได้เชื่อมโยงกับตารางใด
ใช้ Insert into ส่งไป Table
ใน Table มี 4 ฟิลด์
OutId เป็น text
OutName เป็น text
OutDate เป็น Date/Time
OutFor เป็น text
ข้่อมูลส่งไปได้ปกติ แต่ติดปัญหาอยู่ 2 อย่าง คือ
1. ข้อมูล ตัวอักษร ส่งไม่ไป มันขึ้นกรอบโต้ตอบให้ใส่ค่า พารามิเตอร์
พอใส่ตัวอักษรเข้าไปถึงจะไปปรากฏใน table ปลายทาง
2. ในส่วนของวันที่ ในฟอร์ม ใส่วันอะไรไปก็ช่าง พอไปถึง Table
มันจะกลายเป็น วันที่ 30 ธันวาคม 2442 ทั้งหมดเลย
นี่เป็น Code ครับ
Private Sub Command19_click()
DoCmd.SetWarnings False
DoCmd.GoToRecord acDataForm, Me.Name, acFirst
DoCmd.RunSQL "Insert into TempTbOutMain (OutId, OutName, OutDate, OutFor) values(" & Insert into& ", " & OutName & ", " & OutDate & ", " & OutFor & ")"
End Sub
ไม่ทราบว่าติดอะไรตรงไหน รบกวนทุกท่านช่วย แนะนำด้วยครับ
เป็น form เปล่าๆ ไม่ได้เชื่อมโยงกับตารางใด
ใช้ Insert into ส่งไป Table
ใน Table มี 4 ฟิลด์
OutId เป็น text
OutName เป็น text
OutDate เป็น Date/Time
OutFor เป็น text
ข้่อมูลส่งไปได้ปกติ แต่ติดปัญหาอยู่ 2 อย่าง คือ
1. ข้อมูล ตัวอักษร ส่งไม่ไป มันขึ้นกรอบโต้ตอบให้ใส่ค่า พารามิเตอร์
พอใส่ตัวอักษรเข้าไปถึงจะไปปรากฏใน table ปลายทาง
2. ในส่วนของวันที่ ในฟอร์ม ใส่วันอะไรไปก็ช่าง พอไปถึง Table
มันจะกลายเป็น วันที่ 30 ธันวาคม 2442 ทั้งหมดเลย
นี่เป็น Code ครับ
Private Sub Command19_click()
DoCmd.SetWarnings False
DoCmd.GoToRecord acDataForm, Me.Name, acFirst
DoCmd.RunSQL "Insert into TempTbOutMain (OutId, OutName, OutDate, OutFor) values(" & Insert into& ", " & OutName & ", " & OutDate & ", " & OutFor & ")"
End Sub
ไม่ทราบว่าติดอะไรตรงไหน รบกวนทุกท่านช่วย แนะนำด้วยครับ
6 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R04330
ผมอยากทราบคำสั่งที่ใช้ในการบันทึกใบเสร็จ และพิพม์เลย เพราะที่ผมทำมันพิพม์ทั้งหมด เลย ผมอยากให้พิมพ์หน้าใบเสร็จหน้าที่เราบันทึกไปเลย ไม่ทราบว่ามีคำสั่ง หรือมีปุ่มพิเศษหรือไม่ครับ ขอบคุณมากครับ
3 @R04332
ตอบคุณ siam
ให้ใช้วิซาร์ด ช่วยสร้างปุ่มปริ๊นท์ครับ
ระบุไปว่าให้ปริ๊นท์เฉพาะเรคคอร์ดที่เกี่ยวข้อง
ให้ใช้วิซาร์ด ช่วยสร้างปุ่มปริ๊นท์ครับ
ระบุไปว่าให้ปริ๊นท์เฉพาะเรคคอร์ดที่เกี่ยวข้อง
4 @R21146
เรียนคุณ yeadram
ผมลองศึกษาจากตัวอย่างด้านบนแล้วเขียนเอง
Private Sub Command257_Click()
Dim sql As String
sql = "insert into QR_PD4OG (Item, A_Total, A_NoCh, A_ToSection, A_DateCh, A_Time, A_Shift, A_Informent, D_Agencies, A_PD4, IC, CyecleT, DueDate, DueDateT) values('" & ITEM & "', '" & A_Total & "', " & A_NoCh & ", " & A_ToSection & ", " & A_DateCh & ", " & A_Time & ", " & A_Shift & ", " & A_Informent & ", " & D_Agencies & ", " & A_PD4 & ", " & IC & ", " & CyecleT & ") WHERE Rework=True;"
Debug.Print sql
DoCmd.RunSQL sql
Endsub
แต่เจอ Error
ผมเช็คดูวันที่และเวลาตามรูป เปฌนที่ A_Time ครับ
จะแก้ยังไงครับ และ ตรงWHERE Rework=True ผมใส่ถูกหรือเปล่าครับ
ขอบคุณครับ
ผมลองศึกษาจากตัวอย่างด้านบนแล้วเขียนเอง
Private Sub Command257_Click()
Dim sql As String
sql = "insert into QR_PD4OG (Item, A_Total, A_NoCh, A_ToSection, A_DateCh, A_Time, A_Shift, A_Informent, D_Agencies, A_PD4, IC, CyecleT, DueDate, DueDateT) values('" & ITEM & "', '" & A_Total & "', " & A_NoCh & ", " & A_ToSection & ", " & A_DateCh & ", " & A_Time & ", " & A_Shift & ", " & A_Informent & ", " & D_Agencies & ", " & A_PD4 & ", " & IC & ", " & CyecleT & ") WHERE Rework=True;"
Debug.Print sql
DoCmd.RunSQL sql
Endsub
แต่เจอ Error
ผมเช็คดูวันที่และเวลาตามรูป เปฌนที่ A_Time ครับ
จะแก้ยังไงครับ และ ตรงWHERE Rework=True ผมใส่ถูกหรือเปล่าครับ
ขอบคุณครับ
5 @R21147
ผมเปลี่ยน
sql = "insert into QR_PD4OG (Item, A_Total, A_NoCh, A_ToSection, A_DateCh, Cdate(A_Time), A_Shift, A_Informent, D_Agencies, A_PD4, IC, CyecleT, DueDate, DueDateT) values('" & ITEM & "', '" & A_Total & "', " & A_NoCh & ", " & A_ToSection & ", " & A_DateCh & ", " & A_Time & ", " & A_Shift & ", " & A_Informent & ", " & D_Agencies & ", " & A_PD4 & ", " & IC & ", " & CyecleT & ") WHERE Rework=True;"
จาก A_Time เป็น CDate(A_Time) หายครับแต่
เป็นตัวใหม่
Error 3134 SyntaX error in INSERT INTO statement ครับ
sql = "insert into QR_PD4OG (Item, A_Total, A_NoCh, A_ToSection, A_DateCh, Cdate(A_Time), A_Shift, A_Informent, D_Agencies, A_PD4, IC, CyecleT, DueDate, DueDateT) values('" & ITEM & "', '" & A_Total & "', " & A_NoCh & ", " & A_ToSection & ", " & A_DateCh & ", " & A_Time & ", " & A_Shift & ", " & A_Informent & ", " & D_Agencies & ", " & A_PD4 & ", " & IC & ", " & CyecleT & ") WHERE Rework=True;"
จาก A_Time เป็น CDate(A_Time) หายครับแต่
เป็นตัวใหม่
Error 3134 SyntaX error in INSERT INTO statement ครับ
6 @R21167
ตอบคุณนครินทร์ ตรงที่ส่งข้อมูลจากฟอร์มย่อยไปยังตารางย่อยไม่ได้ครับ
ที่ให้ใส่พารามิเตอร์เป็นเพราะมันหาตัวควบคุมนั้นไม่เจอเนื่องจากอ้างแหล่งตัวควบคุมไม่ถูกต้องครับ วิธีการอ้างตัวควบคุมบนฟอร์มย่อยปกติต้องอ้างแบบนี้ครับลองเอาไปปรับดูครับ
Forms![main form name]![subform control name].Form![control name]
ที่ให้ใส่พารามิเตอร์เป็นเพราะมันหาตัวควบคุมนั้นไม่เจอเนื่องจากอ้างแหล่งตัวควบคุมไม่ถูกต้องครับ วิธีการอ้างตัวควบคุมบนฟอร์มย่อยปกติต้องอ้างแบบนี้ครับลองเอาไปปรับดูครับ
Forms![main form name]![subform control name].Form![control name]
Time: 0.3682s
แต่ก็ติดปัญหาอีกแล้ว คือ
Private Sub Command19_click()
DoCmd.SetWarnings False
DoCmd.GoToRecord acDataForm, Me.Name, acFirst
DoCmd.RunSQL "Insert into TempTbOutMain (OutId, OutName, OutDate, OutFor) values(OutId, OutName, OutDate, OutFor)"
DoCmd.RunSQL "insert into TempTbOutSub (OutId, OutList, OutCost) values(OutId, child1.OutList, child1.OutCost)"
End Sub
คำสั่งบรรทัดที่ 4 เป็นคำสั่งส่งข้อมูลจาก เมนฟอร์ม ไปยัง เทเบิล ซึ่งแก้ได้แล้ว
แต่คำสั่งบรรทัดที่ 5 เป็นคำสั่งส่งข้อมูลจาก ซับฟอร์ม ไปยัง เทเบิล ซึ่ง ส่งไม่ไป
มันขึ้นกรอบโต้ตอบให้ใส่ค่า พารามิเตอร์ครับ คาดว่า คงใส่ เครื่องหมายผิด
รายละเอียดครับ
ตัว ซับฟอร์ม ชื่อ FrOutSub มี 3 ฟิลด์
OutId เป็น textbox ไว้เชื่อมกับ เมนฟอร์ม
OutList เป็น combobox มี 3 คอลัม ที่ต้องการให้ไปลงเทเบิลคือคอลัมที่ 1
OutCost เป็น textbox รูปแบบ standard
ส่วน เทเบิลที่ต้องการให้ข้อมูลไปลงชื่อ TempTbOutSub
มี 3 ฟิลด์
OutId เป็น text
OutList เป็น text
OutCost เป็น currency แบบ standard ครับ
----------------------------------------------------------------------------------------------
ส่วน Code เอามาจาก (R03054) เป็นของ อ.yeadram ให้ไว้ครับ
ผมเอามาเปลี่ยนชื่อเฉย ๆ
เวลาสั่งเซฟ ต้องสั่งตามลำดับ
เอาข้อมูลหลักเข้าตารางหลักก่อน
แล้วค่อยทยอยเอาข้อมูลย่อย (จากฟอร์มย่อย) เข้าตารางย่อย
insert into tableMain(invNo, invDate) values(txtNo, txtDate);
insert into tableSub(invNo, pdCode, pdQuantity, pdPrice) values(txtNo, child1.txtCode, child1.txtQty, child1.txtPrice);
----------------------------------------------------------------------------------------------
อีกข้อหนึ่ง คือผมไม่สามารถเชื่อม เมนฟอร์มเปล่าๆ กับ ซับฟอร์มเปล่า
เข้าด้วยกันได้ครับ มันบอกว่าไม่สามารถสร้างการเชื่อมโยง
สำหรับฟอร์มที่ไม่ถูกผูกไว้ด้วยกันได้
รบกวนทุกท่าน ชี้แนะด้วยครับ