แอดเข้า Table ไม่ได้ครับ
กระทู้เก่าบอร์ด อ.Yeadram

 3,626   23
URL.หัวข้อ / URL
แอดเข้า Table ไม่ได้ครับ

ผมเขียน Code ให้กับปุ่ม ๆ หนึ่งมันไม่ยอม Add เข้า Table ให้ครับผม Code เป็นดังนี้
Private Sub Request_Click()
DoCmd.SetWarnings False
DoCmd.OpenQuery "DelNew"
DoCmd.OpenQuery "InsertNew"
DoCmd.SetWarnings True

Dim strNo
strNo = DLookup("runno", "Runno")
Me!no = strNo

If Me!no <> 0 Then
Me!newcode = Cate & Right(Period1, 3) & "-" & Num1 & "-" & Num2 & "-" & Format(no + 1, "000")
Else
Me!newcode = Cate & Right(Period1, 3) & "-" & Num1 & "-" & Num2 & "-" & "001"
End If

DoCmd.OpenQuery "InsertMKTDetail"

End Sub

และอันนี้เป็น Query ของ InsertMKTDetail

INSERT INTO MKTDetail ( ReqNo, Period, Subject, Comment, ReqDate, ReqName, CateID, Status )
SELECT MKTDetail.ReqNo, MKTDetail.Period, MKTDetail.Subject, MKTDetail.Comment, MKTDetail.ReqDate, MKTDetail.ReqName, MKTDetail.CateID, MKTDetail.Status, *
FROM MKTDetail
WHERE (((MKTDetail.ReqNo)=[Forms]![RequestDocMktNewGen]![newcode]) AND ((MKTDetail.Period)=[Forms]![RequestDocMktNewGen]![period1]) AND ((MKTDetail.Subject)=[Forms]![RequestDocMktNewGen]![Subject]) AND ((MKTDetail.Comment)=[Forms]![RequestDocMktNewGen]![Comment]) AND ((MKTDetail.ReqDate)=[Forms]![RequestDocMktNewGen]![newdate]) AND ((MKTDetail.ReqName)=[Forms]![RequestDocMktNewGen]![ReqName]) AND ((MKTDetail.CateID)=[Forms]![RequestDocMktNewGen]![Cate]) AND ((MKTDetail.Status)=[Forms]![RequestDocMktNewGen]![Status]));

ลองหาดูแล้ว COde ไม่ได้ Error อะไร ทำอย่างไรครับ

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

1 @R10119
ช่วยด้วยครับ
2 @R10121
ถ้าตัดเอาเฉพาะ SELECT ... ไปจนหมดมาทำเป็นคิวรี่ ลองดูก่อนว่ามีข้อมูลหรือเปล่า ถ้าไม่มี ก็แปลว่าอาจไม่มีข้อมูลตามเงื่อนไขหรือไม่ก็เงื่อนไขผิดพลาด
3 @R10124
ได้นะครับ ตัดเอา Select ไปทำ Query มันได้นะครับผมแต่ยัง Add ไม่ได้
4 @R10131
ลอง comment บรรทัดนี้   DoCmd.OpenQuery "InsertMKTDetail"
แล้วคลิกปุ่ม Request ตามปกติ จากนั้นก็มาที่คิวรี่ [InsertMKTDetail] แล้วสั่งเปิดโดยตรงจากใน Database Windows ไปเลย แล้วดูว่ามี error message อะไรฟ้องหรือไม่
5 @R10133
ไม่มี error ครับพบ เพียงแต่มัน ฟ้องว่า เป็น 0 Record
6 @R10134
ถ้าศูนย์เรคอร์ดก็แปลว่าเรคอร์ดที่เกิด SELECT มันไม่มีเลยสิครับ แต่ก็ขัดแย้งกับที่คุณตอบมาใน R10124   ลองตรวจสอบดีๆครับว่าจริงๆแล้ว SELECT นี้มันให้ผลลัพธ์ออกมากี่เรคอร์ดกันแน่
7 @R10135
คือ Select ผมเอาไปใช้ นะครับแล้วมันจะมีหน้าจอพิมพ์ Criteria ผมลอง Test แล้ว สามารถ Select ได้ ปัญหาคือ ถ้า Add Record แล้ว มันจะไม่ได้ผมไม่แน่ใจว่าตัวแปรอะไรผิดหรือเปล่า
8 @R10136
ที่บอกว่าหน้าจอมีพิมพ์ Criteria นั้น เกิดจากการทดสอบจาก R10121 หรือ R10131 ครับ
9 @R10137
R10131 ครับผม
10 @R10138
ตาม R10131 หลังจากป้อนอะไรต่างๆที่หน้าจอแล้ว และคลิกปุ่ม Request แล้ว ไม่ต้องปิดฟอร์มนะครับ จากนั้นให้ดับเบิลคลิกที่คิวรี่ [InsertMKTDetail] ไปเลย มันไม่ควรมีการถาม Criteria อะไรทั้งสิ้น ลองใหม่อีกทีครับ
11 @R10139
คุณสันติสุขครับ มี Mail หรือเปล่าครับ เดี๋ยวผมส่ง Mail File ให้ดูครับ
12 @R10140
ส่งมาที่เมล์กลางของบอร์ด accboard@gmail.com
13 @R10147
ผมชักไม่แน่ใจว่าคุณเขียนคิวรี่ออกมาได้ตามจุดประสงค์ที่ต้องการหรือไม่ ที่เขียนมา มันคือการเอาเรคอร์ดจาก MKTDetail มาแปะลง MKTDetail อีกที เรียกง่ายๆว่า ก็อปปี้เรคอร์ดตามเงื่อนไข ไม่มีการเปลี่ยนค่าในฟิลด์จากเรคอร์ดต้นฉบับใดๆทั้งสิ้น นี่หรือเปล่าที่คุณต้องการ ?
14 @R10149
ผมว่าคิวรีของผมผิด เพราะจริง ๆ มันต้องเอาค่า จากField ใน Form RequestDocMktNewGen เข้าไป
15 @R10150
คุณต้องไปแก้ตรง SELECT field1, field2, ... หล่ะครับว่าจะเอาค่าอะไรใส่ลงในเทเบิล ถ้า field ต่างๆเป็นชื่อฟิลด์ในเทเบิลเอง มันก็จะเอาค่ามาจากเทเบิล ถ้าจะเอาค่ามาจากคอลโทรลต่างๆบนฟอร์ม   field ต่างๆก็ควรเป็น alias_name : expression เช่น

SELECT NewCode : [Forms]![RequestDocMktNewGen]![newcode], Period : [Forms]![RequestDocMktNewGen]![period1], ....

FROM ...

WHERE ...
16 @R10187
ยังแอดไม่ได้ครับ อาจารย์ มันมีวิธีไหนบ้างอะครับ
17 @R10188
เพราะปัญหามันไม่ได้อยู่ี่ syntax error แต่ปัญหาอยู่ที่คุณไม่สามารถอธิบายความต้องการออกมาเป็นตัวอักษรได้ ดังนั้นเอาคำสั่ง SQL ที่คุณทำมาให้ดูหน่อย และอธิบายเป็นข้อความโดยละเอียดด้วยว่าคุณต้องการอะไร เช่น ฟิลด์ ReqNo ต้องการให้เท่ากับ บลาๆๆๆๆ, ฟิลด์ xxxxx เท่ากับ บลาๆๆๆๆ โดยที่เลือกเอาเรคอร์ดที่ บลาๆๆๆๆ มาเป็นต้นแบบ (ใช่หรือไม่)
18 @R10199
คืออย่างนี้ครับอาจารย์ ผมเองต้องการเอาค่าใน Text Box ในหน้า Form เอาค่านำไปใส่ลงใน Table กล่าคือผมต้องการเอาค่าใน Textbox ที่ชื่อ Newcode ไปใส่ลงใน Table MKTDetail ที่ชื่อฟิลด์ ReqNo ครับอาจารย์ ผมไม่แน่ใจว่าจะต้องประกาศ RecordSet ขึ้นมาหรือเปล่า เพื่อให้มันรับค่าล้วส่งไป คือความต้องการเป็นแบบนี้ครับ เพราะผมดูแล้วคิวรี่ผมมันผิดครับ
19 @R10201
แล้วฟิลด์อื่นๆหล่ะครับ บอกมาให้หมดเลย
20 @R10220
ครับอาจารย์ รายละเอียดดังนี้ครับ

Textbox newcode ใส่ใน reqno ในตาราง MKTDetail
Textbox Period1 ใส่ใน period ในตาราง MKTDetail
Textbox Subject ใส่ใน Subject ในตาราง MKTDetail
Textbox Comment ใส่ใน Comment ในตาราง MKTDetail
Textbox NewDate ใส่ใน ReqDate ในตาราง MKTDetail
Textbox ReqNameใส่ใน ReqNameในตาราง MKTDetail
Textbox Cate ใส่ใน CateID ในตาราง MKTDetail
Textbox Status ใส่ใน Status ในตาราง MKTDetail

คือผมไม่แน่ใจว่าต้องเปิด Recordset ให้มันก่อนแล้วเอาค่านี้ไปเก็บก่อนไปใส่ในตารางหรือเปล่าครับอาจารย์



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