:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

มีปัญหาเกี่ยวกับการเขียน code vba ในการเชื่อมต่อ excelกับMsS

ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
modllsj
Member
Member
Posts: 12
Joined: Tue Feb 19, 2013 11:14 am

มีปัญหาเกี่ยวกับการเขียน code vba ในการเชื่อมต่อ excelกับMsS

#1

Post by modllsj »

สวัสดีครับผมเป็นมือใหม่ในการเขียน vba
ปัญหาของผมคือ ตอนนี้ผมมี table ใน MsSql เรียบร้อยและมีข้อมูลอยู่ในนั้น
ต้องการที่จะใช้ Excel ทำการดึงข้อมูลจาก table ที่มีมาใส่ใน Excel ครับ
โดยเมื่อเขียน Code ที่ใช้ในการเชื่อมต่อเสร็จแล้ว เกิดปัญหาดังภาพขึ้นครับ
ไม่ทราบว่าจะแก้ด้วยวิธีไหนครับอาจารย์หรือว่าcodeที่ผมเขียนมันผิดหลักครับ
รบกวนชี้แนะด้วยครับ
http://pic.free.in.th/id/fdc8458b930514 ... 457e9118ca
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: มีปัญหาเกี่ยวกับการเขียน code vba ในการเชื่อมต่อ excelกั

#2

Post by snasui »

:D แนบภาพมาที่ฟอรัมนี้เลยครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: มีปัญหาเกี่ยวกับการเขียน code vba ในการเชื่อมต่อ excelกั

#4

Post by snasui »

:D Error ที่บรรทัดไหนครับ หากเป็นที่ SQL Statement ให้ใช้ Statement ง่าย ๆ ก่อนครับ ยังไม่ต้องใส่ Where หรือ อื่น ๆ
modllsj
Member
Member
Posts: 12
Joined: Tue Feb 19, 2013 11:14 am

Re: มีปัญหาเกี่ยวกับการเขียน code vba ในการเชื่อมต่อ excelกั

#5

Post by modllsj »

error ตั้งแต่ Dim cn as ADODB.connection เลยครับ
error ที่ว่าคือ user-defined type not defined ซึ่งเหมือนกับว่า vba ใน excel ไม่รู้จัก ADODB.connection อะครับ
ไม่ทราบว่าต้องแก้ไขอย่างไร หรือ import reference อันไหนเข้ามาหรือเปล่าครับ
ปล.codeข้างต้น ใส่statement แค่เพียง select*from เองครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: มีปัญหาเกี่ยวกับการเขียน code vba ในการเชื่อมต่อ excelกั

#6

Post by snasui »

:D ต้อง Add Reference เข้ามาก่อนครับ โดยเข้า VBE > Tools > Reference > เลือก Microsoft ActiveX Data Objects 2.8 Library หรือสูงกว่า
Last edited by snasui on Sat Feb 23, 2013 12:36 am, edited 2 times in total.
Reason: ลบค่าที่คีย์เกิน
modllsj
Member
Member
Posts: 12
Joined: Tue Feb 19, 2013 11:14 am

Re: มีปัญหาเกี่ยวกับการเขียน code vba ในการเชื่อมต่อ excelกั

#7

Post by modllsj »

add reference ตามอาจารย์บอกแล้วก็ยัง error แบบเดิมอยู่ครับ T_T
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: มีปัญหาเกี่ยวกับการเขียน code vba ในการเชื่อมต่อ excelกั

#8

Post by snasui »

:D สังเกตว่ามี Missing ด้านหน้าของค่าที่ลูกศรชี้ตามภาพหรือไม่ครับ :?:
Attachments
MissingReference.png
MissingReference.png (42.98 KiB) Viewed 2697 times
modllsj
Member
Member
Posts: 12
Joined: Tue Feb 19, 2013 11:14 am

Re: มีปัญหาเกี่ยวกับการเขียน code vba ในการเชื่อมต่อ excelกั

#9

Post by modllsj »

Add reference ตัวที่อาจารย์ชี้แนะเรียบร้อยแล้วครับ ทำการ run code ไม่เกิด error ตัวเดิมแล้วครับ
แต่เกิด error ตัวใหม่ครับ มัน error ว่า type mismatch แทนครับ
รบกวนอาจารย์ชี้แนะทีครับ
modllsj
Member
Member
Posts: 12
Joined: Tue Feb 19, 2013 11:14 am

Re: มีปัญหาเกี่ยวกับการเขียน code vba ในการเชื่อมต่อ excelกั

#10

Post by modllsj »

Image

ตอนนี้ไม่ error แล้วครับ ทำการปรับเปลี่ยน code นิดหน่อย ก็ run ผ่านครับ
แต่มีบางส่วนยังไม่เข้าใจอยากขอคำชี้แนะครับ
modllsj
Member
Member
Posts: 12
Joined: Tue Feb 19, 2013 11:14 am

Re: มีปัญหาเกี่ยวกับการเขียน code vba ในการเชื่อมต่อ excelกั

#11

Post by modllsj »

Image

ปัญหาอย่างแรก : จากรูป อาจารย์จะเห็นได้ว่า Code ที่ทำการรันผ่านแล้วจะดึงข้อมูลมาจาก table ใน MsSql
แต่ว่า ได้มาเพียง Value ที่มีใน table กลับไม่ได้ชื่อของ Column มาเลยครับ
ซึ่งชื่อของ Column ควรจะอยู่ที่ตำแหน่ง A1,B1,C1 แล้ว Value ก็ไปอยู่ที่ตำแหน่ง A2,B2,C2 ครับ
อยากทราบวิธีการแก้ไขหรือคำชี้แนะครับ ^_^

ปัญหาที่สอง : จาก error ที่ฟ้องว่า Type MisMatch นั่น ผมอยากทราบรายละเอียดในส่วนนี้ครับ
รบกวนอาจารย์ชี้แนะด้วยครับ

ปัญหาที่สาม : ในการสร้างในส่วน VBE เมื่อผมทำการเขียน code ขึ้นมาใน Module แล้ว เมื่อทำการบันทึกไฟล์
บางครั้งก็บันทึกแล้ว codeต่างๆยังคงอยู่ แต่บางครั้ง code ต่างๆกลับหายไป ไม่ทราบว่าผมต้องทำอย่างไรในส่วนไหนครับ
ปล.ในปัญหาที่สามนี้ ทุกครั้งที่ผมทำการ save จะมีข้อความว่า(ตามรูปครับ)
Image
ซึ่งเมื่อกด Yes แล้ว บางทีมันก็ save ให้ บางทีก็ไม่ save ให้ครับ

ขอบพระคุณอาจารย์อย่างสูงครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: มีปัญหาเกี่ยวกับการเขียน code vba ในการเชื่อมต่อ excelกั

#12

Post by snasui »

:D กรณีต้องการ Field มาด้วยลองใช้ Code ด้านล่างเข้าไปช่วยครับ

Code: Select all

Dim fld As Field
Dim i As Integer
Dim FieldRange As Range

Set FieldRange = Range("A1")
For Each fld In rc.Fields
   FieldRange.Offset(0, i).Value = fld.Name
   i = i + 1
Next fld
สำหรับ Error Type MisMatch ช่วยจับภาพบรรทัดที่แสดง Error ด้วยครับ

การ Save File จะต้อง Save เป็นนามสกุล .xlsm ถึงจะแนบ Code ได้ครับ หาก Save เป็น .xlsx จะไม่สามารถแนบ Macro ได้ครับ
modllsj
Member
Member
Posts: 12
Joined: Tue Feb 19, 2013 11:14 am

Re: มีปัญหาเกี่ยวกับการเขียน code vba ในการเชื่อมต่อ excelกั

#13

Post by modllsj »

:) ขอบคุณครับอาจารย์ พรุ่งนี้ผมต้องไปต่างจังหวัด
คงจะกลับมานั่งเขียนใหม่ประมาณวันอังคารครับ
ขอขอบคุณในคำชี้แนะต่างๆครับ :cp:
ด้วยความเคารพ
modllsj
Post Reply