snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาอื่น ๆ ที่ไม่เกี่ยวกับ Excel
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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่างเพิ่มเติม)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
siamsrising
Member
Posts: 56 Joined: Tue Oct 24, 2017 9:00 am
#1
Post
by siamsrising » Sat Oct 26, 2019 4:23 pm
Code: Select all
Private Sub cmdResult_Click()
Dim answer(70) As String
answer(1) = "A"
answer(2) = "C"
answer(3) = "C"
answer(4) = "C"
answer(5) = "C"
answer(6) = "A"
answer(7) = "C"
answer(8) = "C"
answer(9) = "A"
answer(10) = "D"
answer(11) = "A"
answer(12) = "A"
answer(13) = "C"
answer(14) = "A"
answer(15) = "B"
answer(16) = "B"
answer(17) = "D"
answer(18) = "B"
answer(19) = "A"
answer(20) = "A"
answer(21) = "B"
answer(22) = "B"
answer(23) = "A"
answer(24) = "B"
answer(25) = "B"
answer(26) = "B"
answer(27) = "A"
answer(28) = "A"
answer(29) = "A"
answer(30) = "B"
answer(31) = "B"
answer(32) = "A"
answer(33) = "B"
answer(34) = "B"
answer(35) = "A"
answer(36) = "A"
answer(37) = "B"
answer(38) = "A"
answer(39) = "B"
answer(40) = "B"
answer(41) = "A"
answer(42) = "C"
answer(43) = "C"
answer(44) = "C"
answer(45) = "C"
answer(46) = "A"
answer(47) = "C"
answer(48) = "C"
answer(49) = "A"
answer(50) = "D"
answer(51) = "A"
answer(52) = "A"
answer(53) = "C"
answer(54) = "A"
answer(55) = "B"
answer(56) = "B"
answer(57) = "D"
answer(58) = "B"
answer(59) = "A"
answer(60) = "A"
answer(61) = "B"
answer(62) = "B"
answer(63) = "A"
answer(64) = "B"
answer(65) = "B"
answer(66) = "B"
answer(67) = "A"
answer(68) = "A"
answer(69) = "A"
answer(70) = "B"
Dim Score As Integer
Dim i As Integer
Score = 0
For i = 1 To 70
If ChoiceSelected(i) = answer(i) Then
Score = Score + 1
End If
Next
Dim strSQL As String
strSQL = "INSERT INTO tblScore(SName,Score) VALUES("
strSQL = strSQL & "'" & SName & "',"
strSQL = strSQL & "" & Score & ")"
Dim comm As New ADODB.Command
With comm
.ActiveConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ActivePresentation.Path & "\Score Qc.accdb" & ";Persist Security Info=False;"
.CommandText = strSQL
.CommandType = adCmdText
.Execute
End With
MsgBox ("Complete! Your score is " & Score)
ActivePresentation.SlideShowWindow.View.GotoSlide (1)
End Sub
ผมต้องการบันทึก ชื่อ คะแนนและวันเวลา ของพนักงาน ไปไว้ที่ \\192.168.1.17\Sharing Files\Test GF 2020\Score Qc.accdb และเมื่อคนต่อไปทำการสอบข้อมูลก็จะบันทึกลงต่อๆกันไปเรื่อยๆครับ รบวนอาจารย์ช่วยดูให้หน่อยครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#2
Post
by snasui » Sat Oct 26, 2019 4:27 pm
ปัจจุบันปัญหาคืออะไรกรุณาแจ้งรายละเอียดมาด้วยครับ
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#4
Post
by snasui » Sat Oct 26, 2019 4:28 pm
โปรแกรมฟ้องว่าอะไร มีภาพหรือไม่ ถ้ามีแนบมาด้วยครับ
siamsrising
Member
Posts: 56 Joined: Tue Oct 24, 2017 9:00 am
#5
Post
by siamsrising » Sat Oct 26, 2019 4:31 pm
ขึ้นแบบนี้ครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#6
Post
by snasui » Sat Oct 26, 2019 4:43 pm
เข้าเมนู Tools > References > เลือก Microsoft ActiveX Data Objects 2.8 Library หรือสูงกว่า จากนั้นลอง Run Code ใหม่ครับ
siamsrising
Member
Posts: 56 Joined: Tue Oct 24, 2017 9:00 am
#7
Post
by siamsrising » Sat Oct 26, 2019 4:51 pm
ได้แล้วครับ ผมสงใสครับเรากำหนดโค๊ดตรงไหนเพื่อเซฟครับ
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#8
Post
by snasui » Sat Oct 26, 2019 4:56 pm
กรุณาแก้คำว่า "สงใส" ให้เป็นข้อความที่ถูกต้อง กรุณาทบทวนกฎการใช้บอร์ดทุกข้อด้านบนครับ
siamsrising
Member
Posts: 56 Joined: Tue Oct 24, 2017 9:00 am
#9
Post
by siamsrising » Sat Oct 26, 2019 4:58 pm
ด้แล้วครับ ผมสงสัยครับเรากำหนดโค๊ดตรงไหนเพื่อเซฟครับ
-ผมยากให้เซฟชื่อชีตที่ทำลงไปใน Access ด้วยครับ Score Qc.accdb
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#10
Post
by snasui » Sat Oct 26, 2019 5:05 pm
แก้ไขข้อความให้เป็นคำที่ถูกต้องด้วยครับ
กรณีโพสต์ไปแล้วไม่เกิน 60 นาที สามารถทำการแก้ไขข้อความสามารถโดยคลิกที่ดินสอมุมขวาบนของกล่องข้อความแล้วทำการแก้ไขใหม่แทนการโพสต์ใหม่ทั้งหมดได้ครับ
siamsrising
Member
Posts: 56 Joined: Tue Oct 24, 2017 9:00 am
#11
Post
by siamsrising » Sat Oct 26, 2019 5:07 pm
ได้แล้วครับ ผมสงสัยครับเรากำหนดโค๊ดตรงไหนเพื่อเซฟครับ
-ผมยากให้เซฟชื่อชีตที่ทำลงไปใน Access ด้วยครับ Score Qc.accdb
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#12
Post
by snasui » Sat Oct 26, 2019 5:12 pm
ไม่ต้องกำหนดให้ Save การ Record ข้อมูลลงใน Database ไม่กำหนดว่าต้อง Save เพราะการ Record คือการ Save ไปในตัวอยู่แล้ว
บรรทัดใดใน Code ที่เป็นการ Record ข้อมูล บรรทัดนั้นเราสามารถที่จะเพิ่มค่าที่จะบันทึกเข้าไปได้ แต่จะต้องมีคอลัมน์รองรับครับ
จาก Statement ที่โพสต์มา ภายในเครื่องหมายวงเล็บเปิด-ปิดของคำว่า VALUES คือค่าที่ใช้บันทึกลงไปใน Database หากจะเพิ่มค่าในการบันทึกจะต้องมีคอลัมน์รองรับดังที่กล่าวแล้วครับ
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#14
Post
by snasui » Sat Oct 26, 2019 5:23 pm
ตัวอย่างมีอยู่แล้วใน Code ที่โพสต์มาและผมก็แจ้งไปแล้วว่าให้ปรับตรงส่วนไหน กรุณาทดลองปรับและแจ้งผลที่ได้ จะได้ดูต่อไปจากนั้น การใช้ Code จะต้องทดสอบ ทดลองเป็นพื้นฐานครับ
siamsrising
Member
Posts: 56 Joined: Tue Oct 24, 2017 9:00 am
#15
Post
by siamsrising » Sat Oct 26, 2019 5:31 pm
ถ้าไฟล์ powerpoint อยู่คนละ โฟรเดอร์กับ Access ข้อมูลยังคงบันทึกลงไฟล์ Access ที่เราตั้งไว้ไหมครับ
Last edited by
siamsrising on Sat Oct 26, 2019 5:36 pm, edited 1 time in total.
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#16
Post
by snasui » Sat Oct 26, 2019 5:34 pm
siamsrising wrote: Sat Oct 26, 2019 5:31 pm
ข้อมูลยังคงบันทึกลงไฟล์ Access ที่เราตั้ง
ไหว ไหมครับ
แก้ข้อความด้วยครับ
อยู่คนละเครื่องก็บันทึกถูกต้องหากอ้าง Path ที่เก็บไฟล์ Access ถูกต้อง ดูเรื่อง Path ที่เก็บไฟล์และสิทธิ์ในการเข้าถึงไฟล์ Access เป็นสำคัญครับ
siamsrising
Member
Posts: 56 Joined: Tue Oct 24, 2017 9:00 am
#17
Post
by siamsrising » Sat Oct 26, 2019 5:36 pm
Code: Select all
Dim strSQL As String
strSQL = "INSERT INTO tblScore(SName,Score) VALUES("
strSQL = strSQL & "'" & SName & "',"
strSQL = strSQL & "" & Score & ")"
strSQL = strSQL & "" & Folder & ")"
Dim comm As New ADODB.Command
With comm
.ActiveConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ActivePresentation.Path & "\Score Qc.accdb" & ";Persist Security Info=False;"
.CommandText = strSQL
.CommandType = adCmdText
.Execute
End With
แบบนี้รึป่าวครับ
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#18
Post
by snasui » Sat Oct 26, 2019 5:38 pm
แบบนั้นไม่ได้แน่นอนครับ เพราะ Table มีแค่ 2 คอลัมน์แต่เอาค่าไปใส่ไว้ 3 ค่า
จะต้องปรับที่ Table ให้มีคอลัมน์ให้รองรับค่าที่จะใส่เข้าไปด้วยครับ เช่น จาก
INSERT INTO tblScore(SName,Score)
เป็น
INSERT INTO tblScore(SName,Score,SheetName)
เป็นต้น และไม่ใช่ว่าปรับตรงนี้แล้วจะบันทึกได้ ใน Database จะต้องมีคอลัมน์นี้อยู่จริงด้วยครับ
อ่อ...วงเล็บปิดจะต้องมีที่เดียวคือที่ตัวสุดท้าย ลบของเดิมทิ้งไปด้วย สังเกตว่ามีเครื่องหมาย
'
ครอบแต่ละค่าที่ใส่เข้าไปแล้วหรือไม่ ถ้าไม่ครบจะเกิด Error ครับ
siamsrising
Member
Posts: 56 Joined: Tue Oct 24, 2017 9:00 am
#19
Post
by siamsrising » Sat Oct 26, 2019 5:40 pm
Code: Select all
Dim strSQL As String
strSQL = "INSERT INTO tblScore(SName,Score, Folder ) VALUES("
strSQL = strSQL & "'" & SName & "',"
strSQL = strSQL & "" & Score & ","
strSQL = strSQL & "" & Folder & ")"
Dim comm As New ADODB.Command
With comm
.ActiveConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ActivePresentation.Path & "\Score Qc.accdb" & ";Persist Security Info=False;"
.CommandText = strSQL
.CommandType = adCmdText
.Execute
End With
Last edited by
siamsrising on Sat Oct 26, 2019 5:42 pm, edited 1 time in total.
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#20
Post
by snasui » Sat Oct 26, 2019 5:41 pm
กรุณาแก้ไข Code ให้มีลักษณะเป็นข้อความ Code และไม่ต้องเร่งรีบในการโพสต์ เพราะจะผิดได้บ่อยครับ
อ่านทบทวนโพสต์ด้านบนที่ผมแจ้งไปด้วยเรื่องเครื่องหมาย
'
ครับ