snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
akekorn
Bronze
Posts: 416 Joined: Wed Mar 09, 2011 5:19 pm
#1
Post
by akekorn » Mon Feb 12, 2018 9:40 pm
เรียน เพื่อนสมาชิกทุกท่าน
วันนี้ผมมีปัญหาการเขียน vba ควบคุม form มาสอบถามครับคือ
ความต้องการของผมคือเมื่อใส่รหัสพนักงานหากมีอยู่ในฐานข้อมูลอยู่แล้วให้แสดงขึ้นมาที่ form เลย
แต่หากไม่มีจะให้ถามว่าต้องการจะเพิ่มข้อมูลใหม่่ใช่ไหม
แต่ผมได้ลองทำแล้วปรากฎไม่ค่อยได้เรื่องจึงอยากรบกวนสอบถามเพื่อนสมาชิกท่านใดหากช่วยแก้ไข
ให้ผมทำงานได้ตามต้องการรบกวนอนุเคราะห์ด้วยครับ
โดยผมได้แนบfile มาด้วย
ขอบคุณมากครับผม
เอกกร
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30760 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#2
Post
by snasui » Mon Feb 12, 2018 9:44 pm
ช่วยแนบไฟล์ที่เป็น .xlsm หรือ .xlsb ที่มี Code มาพร้อมแล้วจะได้ตอบต่อไปจากนั้นครับ
akekorn
Bronze
Posts: 416 Joined: Wed Mar 09, 2011 5:19 pm
#3
Post
by akekorn » Mon Feb 12, 2018 9:58 pm
ขออภัยครับผมส่งผิด
akekorn
Bronze
Posts: 416 Joined: Wed Mar 09, 2011 5:19 pm
#4
Post
by akekorn » Mon Feb 12, 2018 9:58 pm
file ที่ผมทำครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30760 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#5
Post
by snasui » Mon Feb 12, 2018 10:06 pm
ยังไม่เข้าใจครับ
ช่วยลำดับการทำงานก่อนหลัง ค่าทดสอบ ผลลัพธ์ที่ต้องการ จะได้สะดวกต่อการทำความเข้าใจครับ
akekorn
Bronze
Posts: 416 Joined: Wed Mar 09, 2011 5:19 pm
#6
Post
by akekorn » Mon Feb 12, 2018 10:26 pm
ครับผมคือสิ่งที่ผมต้องการคือ หากเปิดform ขึ้นมา หากใส่รหัสพนักงานที่อยู่แล้วข้อมูลในส่วนที่เหลือจะใส้ให้ใน form
แต่หากรหัสพนักงานไม่พบใน form ก็สามารถที่จะบันทึกเพิ่มเข้าไปในฐานข้อมูลต่อไปได้ครับผม
ขอบคุณครับ
akekorn
Bronze
Posts: 416 Joined: Wed Mar 09, 2011 5:19 pm
#7
Post
by akekorn » Mon Feb 12, 2018 10:28 pm
แล้วจะนำข้อมูลที่ใส่ใน form มาใส่ไว้ที่sheet1 ช่วง C2:C5 ตามลำดับครับ
snasui
Site Admin
Posts: 30760 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#8
Post
by snasui » Tue Feb 13, 2018 3:14 pm
กรุณาลงในรายละเอียด อ่านแล้วไม่เข้าใจว่ากำลังอะไรที่ไหน เช่นใส่ค่าอะไรที่ชีตไหน เซลล์ไหน ต้องการตรวจสอบกับค่าใด ที่ไหน ต้องการแสดงผลที่ไหน อย่างไร ฯลฯ ครับ
akekorn
Bronze
Posts: 416 Joined: Wed Mar 09, 2011 5:19 pm
#9
Post
by akekorn » Tue Feb 13, 2018 9:38 pm
ครับผม
คือจากตัวอย่างในsheet1 เมื่อกดปุ่มbutton จะมีform ให้ใส่ข้อมูล ซึ่งหากใส่รหัสที่เคยมีในชีท employee code ที่เขึยนไว้จะนำข้อมูลของกลุ่ม
รหัสพนักงานเช่น ช่ื่อ แผนก เบอร์โทรศัพท์มาใส่ใน form ที่เหลือ จากนั้นจะนำค่าใน form มาใส่ที่ชีท1 cell ที่ hilight สี่เหลืองไว้
แต่ที่ผมต้องการทำเพิ่มคือหากใส่รหัสพนักงานแล้วไม่พบอยากให้ โปรแกรมถามว่าต้องการจะเพ่ิมรหัสใหม่เข้าไปในฐานข้อมูลที่ชีท employee หรือไม่หากต้องการ
เราต้องเติมข้อมูลใน form ที่ทำไว้ และเมื่อกดปุ่ม แล้วจะนำข้อมูลไปไว้ต่อบรรทัดสุดท้ายที่ีชีท employee และ นำข้อมูลที่กรอกใน form มาใส่ที่ sheet1
โดยวางไว้ที่ตำแหน่งที่ hightlight ด้วยครับ
ซึ่งผมได้ลองทำใหม่โดยในช่วงแรกผมสามารถหาขัอมูลที่มีอยู่่ในฐานข้อมูลเดิมคือ ขีท employee และนำข้อมูลที่ใน form มาใส่ที่ sheet1 ได้แต่
ไม่ทราบว่าจะ code อย่างไรใน ตอนที่จะต้องเพิ่มข้อมูลใหม่เข้าไปในฐานข้อมูลเดิมคือต่อบรรทัดสุดท้ายที่ชีท employee และ นำข้อมูลใหม่มาใส่ในsheet1 ครับ
โดยผมได้แนบ file มาอีกครั้งรบกวนคุณคนควนช่วยแนะนำด้วยครับ
ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30760 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#10
Post
by snasui » Wed Feb 14, 2018 6:00 am
ตัวอย่างการปรับ Code ครับ
Code: Select all
Dim foundItem As Boolean, rsp As Integer
Application.ScreenUpdating = False
myid = TextBox1.Text
On Error Resume Next
Sheets("employee").Select
If Err > 0 Then Exit Sub
Range("A2").Select
Do While ActiveCell <> ""
If CDbl(myid) = ActiveCell.Value Then
'TextBox1.Value = ActiveCell.Offset(0, 0).Value
TextBox2.Text = ActiveCell.Offset(0, 1).Value
TextBox3.Text = ActiveCell.Offset(0, 2).Value
TextBox4.Text = ActiveCell.Offset(0, 3).Value
Sheet1.Select
Range("D12").Value = TextBox1.Value
Range("I12").Value = TextBox4.Value
Range("D14").Value = TextBox2.Value
Range("D16").Value = TextBox3.Value
foundItem = True
Exit Do
End If
ActiveCell.Offset(1, 0).Select
Loop
If Len(TextBox1.Text) = 4 And Not foundItem Then
rsp = MsgBox(Prompt:="Not found. Add this item click 'Yes'.", Title:="Not found", _
Buttons:=vbYesNo + vbInformation)
If rsp = vbYes Then
'...Other code..
End If
End If
akekorn
Bronze
Posts: 416 Joined: Wed Mar 09, 2011 5:19 pm
#11
Post
by akekorn » Wed Feb 14, 2018 9:52 pm
ขอบคุณคุณคนควนมากคร้บ
ผมได้ปรับ code ตามคำแนะนำแล้วครับ
แต่ผมรบกวนอีก step คือกรณีที่ผมต้องการจะให้ save data ไปที่ชีท employee และนำข้อมูลมาไว้ที่ hightlight สีเหลืองด้วย
ซึ่งผมได้ลองทำดูแต่ผลที่ได้ไม่ตรงกับความต้องการโดยผมได้แนบ codeที่ผมได้ทำเพิ่ม รบกวนขอคำแนะนำคุณคนควนด้วยครับ
ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30760 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#12
Post
by snasui » Wed Feb 14, 2018 10:35 pm
ควรเพิ่มปุ่มสำหรับการบันทึกข้อมูลลงชีต employee และเขียน Code ในปุ่มนี้ให้ตรวจสอบว่า Control ต่าง ๆ มีข้อมูลหรือไม่ หากไม่มีให้กรอกข้อมูลใน Control นั้น ๆ ให้ครบถ้วนก่อนที่จะนำข้อมูลไปบันทึกครับ
akekorn
Bronze
Posts: 416 Joined: Wed Mar 09, 2011 5:19 pm
#13
Post
by akekorn » Thu Feb 15, 2018 5:43 pm
ครับผมทำได้แล้วครับขอบคุณมากครับคุณคนควน