Page 1 of 1
เพิ่มและแก้ไขข้อมูล
Posted: Fri Jun 29, 2012 8:41 pm
by gentoo
รบกวนท่านผู้รู้ครับ excel ที่ผมสร้างขึ้นนั้น พอผมจะเพิ่มหรือแก้ไขข้อมูลแล้วสั่งให้เก็บเป็น Data ข้อมูลที่บันทึกจะทับข้อมูลเก่า ไม่ทราบว่าผมจะแก้ไขอย่างไรครับ
(ซึ่งแนวทางตามที่ผมคิดไว้ผมควรจะเพิ่มจำนวนแถวก่อนเพิ่มหรือแก้ไขข้อมูล จึงอยากเรียนถามว่าผมควรเขียน Code อย่างไรครับ)
ขอบคุณครับ
Re: เพิ่มและแก้ไขข้อมูล
Posted: Fri Jun 29, 2012 8:50 pm
by snasui
ช่วยอธิบายเพิ่มเติมครับว่างานที่ทำมีลำดับอย่างไร Code ที่ผิดพลาดนั้น ผิดพลาดอย่างไร ที่ถูกควรเป็นอย่างไร Code อยู่ที่ Module ใด ชื่อว่าอะไร จะได้เข้าถึงปัญหาได้เร็วขึ้นครับ
Re: เพิ่มและแก้ไขข้อมูล
Posted: Fri Jun 29, 2012 9:31 pm
by gentoo
ตัวอย่างเช่นถ้าผมต้องการเพิ่มข้อมูลของ Job No. ที่ SPJ55/0170 โดยผมต้องการเพิ่มข้อมูลในตารางเช่น เพิ่มรายการที่ 2 โดยเพิ่ม KVA เป็น 200 และทำการบันทึกข้อมูล
ข้อมูลที่บันทึกจะถูกส่งไปยัง Sheet "Data" แต่ข้อมูลที่บันทึกจะลบข้อมูลของ Job No. SPJ55/0171 ถึง SPJ55/0174 ทำให้ข้อมูลดังกล่าวหายไปครับ รายละเอียดตามเอกสารแนบครับ
จากการที่ข้อมูลถูกบันทึกทับนั้นเนื่องจากผมเขียนสั่งให้มีการบันทึกครั้งละ 7 รายการครับ ผมจึงมีแนวคิดว่าก่อนบันทึกผมควรเขียน code สั่งให้เพิ่มแถวจำนวน 7 แถวก่อนบันทึกครับไม่ทราบผมคิดถูกหรือไม่ครับ หรือว่าอาจารย์มีวิธีอื่นที่ดีกว่าช่วยกรุณาแนะนำด้วยครับ (ส่วน code เพิ่มแถวรบกวนอาจารย์ช่วยแนะนำการเขียนด้วยครับ)
Re: เพิ่มและแก้ไขข้อมูล
Posted: Fri Jun 29, 2012 9:42 pm
by snasui
สำหรับการแก้ Code เพื่อให้แทรกทีละเท่านั้นเท่านี้รายการคิดว่าไม่จำเป็นครับ การเพิ่มข้อมูลในฐานข้อมูล ให้เพิ่มต่อจากรายการสุดท้าย จะเรียงหรือไม่เรียงไม่ใช่ปัญหาครับ เมื่อเพิ่มต่อจากรายการสุดท้ายก็ย่อมจะไม่ทับรายการใดครับ
Re: เพิ่มและแก้ไขข้อมูล
Posted: Fri Jun 29, 2012 10:07 pm
by gentoo
อาจารย์แต่ข้อมูลที่ผมบันทึกผมยึด Job No เป็นตัวเรียกข้อมูลเพื่อทำการเพิ่มหรือแก้ไขครับ ซึ่งหากผมเปลี่ยน Job No ใหม่ ข้อมูลของ Job No นั้นก็จะเแสดงในตารางของ sheet "Form_STD" ซึ่ง sheet "Form_STD" นี้จะถูก link ไปยังแบบฟอร์มใบสั่งงานครับ หากทำตามที่อาจารย์แนะนำผมจะเรียกข้อมูลมาทำการแก้ไขอย่างไรครับโดยใช้ Job No เป็นตัวกำหนดครับ
อีกคำถามหนึ่งครับในการแทรกแถวนั้นผมต้องการให้แทรกแถวท้ายสุดของตำแหน่งที่ต้องการครับ พอดีผมเขียน code แล้วมันแทรกแถวบนสุดของตำแหน่งที่ต้องการ อยากให้อาจารย์ช่วยแนะนำด้วยครับ
Re: เพิ่มและแก้ไขข้อมูล
Posted: Fri Jun 29, 2012 10:23 pm
by snasui
ช่วยทำตัวอย่างในไฟล์เดิมที่แนบมาครั้งแรกที่มี Code ทั้งหลายอยู่ครับ โยงลูกศรชี้ให้เห็นว่าต้องการคำตอบเป็นอย่างไรในไฟล์นั้นเลยจะได้สะดวกในการดูมากกว่าเขียนอธิบายแยกมาเป็นไฟล์อื่น
gentoo wrote:อาจารย์แต่ข้อมูลที่ผมบันทึกผมยึด Job No เป็นตัวเรียกข้อมูลเพื่อทำการเพิ่มหรือแก้ไขครับ ซึ่งหากผมเปลี่ยน Job No ใหม่ ข้อมูลของ Job No นั้นก็จะเแสดงในตารางของ sheet "Form_STD" ซึ่ง sheet "Form_STD" นี้จะถูก link ไปยังแบบฟอร์มใบสั่งงานครับ หากทำตามที่อาจารย์แนะนำผมจะเรียกข้อมูลมาทำการแก้ไขอย่างไรครับโดยใช้ Job No เป็นตัวกำหนดครับ
สามารถ Lookup ข้อมูลมาได้ตามต้องการครับ ข้อมูลไม่จำเป็นต้องอยู่ติดกันก็เรียกมาแสดงหรือปรับปรุงแก้ไขได้ครับ
gentoo wrote:อีกคำถามหนึ่งครับในการแทรกแถวนั้นผมต้องการให้แทรกแถวท้ายสุดของตำแหน่งที่ต้องการครับ พอดีผมเขียน code แล้วมันแทรกแถวบนสุดของตำแหน่งที่ต้องการ อยากให้อาจารย์ช่วยแนะนำด้วยครับ
เรื่องการแทรกเอาไว้ทีหลัง ถ้าไม่ต้องแทรกติดปัญหาอะไร แก้กันไปเรื่อย ๆ ก่อนครับ
Re: เพิ่มและแก้ไขข้อมูล
Posted: Sat Jun 30, 2012 7:15 am
by gentoo
[quote="snasui"]
ช่วยทำตัวอย่างในไฟล์เดิมที่แนบมาครั้งแรกที่มี Code ทั้งหลายอยู่ครับ โยงลูกศรชี้ให้เห็นว่าต้องการคำตอบเป็นอย่างไรในไฟล์นั้นเลยจะได้สะดวกในการดูมากกว่าเขียนอธิบายแยกมาเป็นไฟล์อื่น
อาจารย์ครับผมลองเอาไฟล์เดิมมาเขียนรายละเอียดขั้นตอนการทำงานของ code และปัญหาที่เกิดขึ้น พร้อมทั้งตัวอย่างคำตอบที่ต้องการครับ รายละเอียดตามเอกสารแนบครับ
ขอบคุณครับ
Re: เพิ่มและแก้ไขข้อมูล
Posted: Sat Jun 30, 2012 12:56 pm
by snasui
ขอเล่าคร่าว ๆ ก่อนนะครับ ปกติการนำข้อมูลเข้า ไม่ว่าจะเป็น Update หรือเพิ่มควรจะแยกกับการเรียกข้อมูลขึ้นมาดูครับ
เมื่อเรียกดูแล้วต้องการแก้ไขก็ให้ไปกรอกในอีก Form เพื่อ Update , Add หรือ Delete นอกจากนี้ข้อมูลใน Data ควรจะมีรหัสใด ๆ ที่ทำหน้าที่เป็น
คีย์หลัก คือไม่ซ้ำกันเลยในแต่ละบรรทัดแม้ว่าจะเป็น Job No เดียวกันก็ตาม ในการ Update หรือ ลบ หรือ แก้ไข ก็จะใช้คีย์หลักที่ว่านั้นในการจัดการ กรณีเป็นการ Add ก็ให้ระบบสร้างคีย์หลักให้ใหม่
สำหรับที่ถามมาเพื่อแทรกบรรทัดก่อนที่จะนำข้อมูลมาวางนั้นผมปรับ Code มาให้ดูเป็นตัวอย่างตามด้านล่างครับ
Code: Select all
Sub InputDBF()
On Error Resume Next
Dim rAll As Range
Dim l As Long
With Sheets("Data")
Set rAll = .Range("A3", .Range("A" & Rows.Count).End(xlUp))
End With
For l = rAll.Count To 1 Step -1
If rAll(l) = Sheets("Form_Std").Range("F4")(1) Then
rAll(l).Offset(1, 0).Resize(6).EntireRow.Insert
Exit For
End If
Next l
MyVar = [InputRow]
[Target] = MyVar
End Sub
Re: เพิ่มและแก้ไขข้อมูล
Posted: Sat Jun 30, 2012 3:26 pm
by gentoo
snasui wrote: ขอเล่าคร่าว ๆ ก่อนนะครับ ปกติการนำข้อมูลเข้า ไม่ว่าจะเป็น Update หรือเพิ่มควรจะแยกกับการเรียกข้อมูลขึ้นมาดูครับ
เมื่อเรียกดูแล้วต้องการแก้ไขก็ให้ไปกรอกในอีก Form เพื่อ Update , Add หรือ Delete นอกจากนี้ข้อมูลใน Data ควรจะมีรหัสใด ๆ ที่ทำหน้าที่เป็น
คีย์หลัก คือไม่ซ้ำกันเลยในแต่ละบรรทัดแม้ว่าจะเป็น Job No เดียวกันก็ตาม ในการ Update หรือ ลบ หรือ แก้ไข ก็จะใช้คีย์หลักที่ว่านั้นในการจัดการ กรณีเป็นการ Add ก็ให้ระบบสร้างคีย์หลักให้ใหม่
สำหรับที่ถามมาเพื่อแทรกบรรทัดก่อนที่จะนำข้อมูลมาวางนั้นผมปรับ Code มาให้ดูเป็นตัวอย่างตามด้านล่างครับ
[/code]
ขอบพระคุณอาจารย์มากครับที่ได้ช่วยแนะนำครับ ผมคิดว่าต้องทำใหม่ตามที่อาจารย์แนะนำครับเนื่องจากหากทำตามวิธีที่ผมทำนั้นคงไม่ถูกต้องครับเนื่องจากผมหา คีย์หลัก ไม่ได้ครับหากหาไม่มีจริงๆ ผมอาจต้องสร้างคีย์หลักขึ้นมาเพื่อให้ง่ายต่อการทำงานครับ
ส่วนการแทรกบรรทัดนั้นผมคงไม่ได้เอามาใช้ในงานนี้ครับแต่จะใช้อีกงานหนึ่งครับ ต้องขอบพระคุณอาจารย์อีกครั้งที่ได้แนะนำครับ