: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

ขออนุญาตสอบถามการตั้งค่าเชื่อมต่อกับ MySQL

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

ขออนุญาตสอบถามการตั้งค่าเชื่อมต่อกับ MySQL

#1

Post by 9KiTTi »

ขออนุญาตสอบถามปัญหาการตั้งค่าเชื่อมต่อกับ MySQL (ผมเชื่อมต่อด้วย odbc ครับ ติดตั้ง odbc ตั้งค่า referenc แล้ว)

Code: Select all

Sub test2_Click()

MsgBox "โปรดตรวจสอบการตั้งค่าเชื่อมต่อ", , "ตั้งค่าการเชื่อมต่อ"

Dim Servername As String
Dim Databasename As String
Dim UserID As String
Dim Password As String
Dim Query As String


Servername = Sheets("setting").Range("B2").Value
Port = Sheets("setting").Range("B3").Value
Databasename = Sheets("setting").Range("B4").Value
UserID = Sheets("setting").Range("B5").Value
Password = Sheets("setting").Range("B6").Value
Query = Sheets("setting").Range("B7").Value '

MsgBox Servername, , "Server"
MsgBox Port, , "Port"
MsgBox Databasename, , "Database"
MsgBox UserID, , "User"
MsgBox Password, , "password"
'MsgBox Query, , "ÃÒ§ҹ" '

    'Declare variables'
        Dim objMyConn As ADODB.Connection
        Dim objMyCmd As ADODB.Command
        Dim objMyRecordset As ADODB.Recordset

        Set objMyConn = New ADODB.Connection
        Set objMyCmd = New ADODB.Command
        Set objMyRecordset = New ADODB.Recordset

    'Open Connection'
        objMyConn.connectionString = "Provider={MySQL ODBC 3.51 Driver}; " _
        & "Data Source=Servername; " _
        & "Initial Catalog=Databasename; " _
        & "Port=Port; " _
        & "User ID=UserID; " _
        & "Password=Password"
        
        objMyConn.Open

    'Set and Excecute SQL Command'
        Set objMyCmd.ActiveConnection = objMyConn
        objMyCmd.CommandText = "Query;"
        objMyCmd.CommandType = adCmdText

    'Open Recordset'
        Set objMyRecordset.Source = objMyCmd
        objMyRecordset.Open

    'Copy Data to Excel'
        Person.Range("A2").CopyFromRecordset objMyRecordset
        
    Main.Activate
        
    End Sub
  
โดยหลังจากตรวจสอบการตั้งค่าแล้ว ให้ดึงข้อมูลตามคิวรี่ที่กำหนดมาใส่ sheet ชื่อ person แต่หลังจากกดปุ่มที่ person ที่ sheet ชื่อ main แล้วเจอ error ตามภาพครับ
รบกวนอาจารย์ทุกท่านแนะนำแก้ไขด้วยครับ ขอบพระคุณครับ
You do not have the required permissions to view the files attached to this post.
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขออนุญาตสอบถามการตั้งค่าเชื่อมต่อกับ MySQL

#2

Post by 9KiTTi »

ตอนนี้ทำได้แล้วครับ แต่พบปัญหาไม่ข้อมูลที่ดึงมาจาก Mysql ไม่แสดงเป็นภาษาไทย เป็นเครื่องเครื่องหมาย " ? " ในส่วนที่เป็นภาษาไทยทั้งหมด ขอคำแนะนำวิธีแก้ไขด้วยครับ ขอบพระคุณครับ

Code: Select all

Sub sqlconnect()
    
    Dim Servername As String
    Dim Databasename As String
    Dim UserID As String
    Dim Password As String
    Dim Query As String


    Servername = Sheets("setting").Range("B2").Value
    Port = Sheets("setting").Range("B3").Value
    Databasename = Sheets("setting").Range("B4").Value
    UserID = Sheets("setting").Range("B5").Value
    Password = Sheets("setting").Range("B6").Value
    Query = Sheets("setting").Range("B7").Value '
     
      
    'Define a connection and a recordset to hold extracted information
    Dim oConn As ADODB.Connection, rcSet As ADODB.Recordset
    Dim cnStr As String, n As Long, msg As String, e
    
    'connection string to connect to db4free.net
    cnStr = "Driver={MySQL ODBC 3.51 Driver};SERVER=" & Servername & _
            ";Port=3333;DATABASE=" & Databasename & _
            ";UID=" & UserID & ";Password=" & Password & ";"
    
    'Test SQL query
    Const SQL = "SELECT * FROM person "
    
    ' connect
    Set oConn = New ADODB.Connection
    'oConn.CommandTimeout = 900
    
    On Error Resume Next
    oConn.Open cnStr
    If oConn.Errors.Count > 0 Then
        For Each e In oConn.Errors
            msg = msg & vbLf & e.Description
        Next
        MsgBox msg, vbExclamation, "ERROR - Connection Failed"
        Exit Sub
    Else
        
        MsgBox "เชื่อมต่อฐานข้อมูล  " & oConn.DefaultDatabase & "  สำเร็จ ", vbInformation, "สถานะการเชื่อมต่อฐานข้อมูล"
        
    End If
    
    ' run query
    Set rcSet = oConn.Execute(SQL, n)
    If oConn.Errors.Count > 0 Then
        msg = ""
        For Each e In oConn.Errors
            msg = msg & vbLf & e.Description
        Next
        MsgBox msg, vbExclamation, "ERROR - Execute Failed"
    Else
        Sheets("Person").Range("A2").CopyFromRecordset rcSet
        
        MsgBox "จำนวนข้อมูลที่นำเข้าสำเร็จ " & n & " เรคคอด", vbInformation, "สถานะการนำเข้าข้อมูล"
        
    End If
    On Error GoTo 0
    
    oConn.Close
    
End Sub
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขออนุญาตสอบถามการตั้งค่าเชื่อมต่อกับ MySQL

#3

Post by 9KiTTi »

ตอนนี้งมจนแก้ไขได้แล้วครับ เป็นที่ ODBC ครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30988
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขออนุญาตสอบถามการตั้งค่าเชื่อมต่อกับ MySQL

#4

Post by snasui »

:D ยินดีด้วยครับ

ไม่ทราบว่าเป็นปัญหาที่ตรงไหน อย่างไร รบกวนช่วยแจ้งรายละเอียดพร้อมทั้งการกำหนดค่าให้ใช้การได้ เพื่อประโยชน์แก่เพื่อนสมาชิกในอนาคตครับ
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขออนุญาตสอบถามการตั้งค่าเชื่อมต่อกับ MySQL

#5

Post by 9KiTTi »

snasui wrote: Tue Sep 19, 2023 8:23 am :D ยินดีด้วยครับ

ไม่ทราบว่าเป็นปัญหาที่ตรงไหน อย่างไร รบกวนช่วยแจ้งรายละเอียดพร้อมทั้งการกำหนดค่าให้ใช้การได้ เพื่อประโยชน์แก่เพื่อนสมาชิกในอนาคตครับ
กรณีผมที่เชื่อมต่อไม่ได้ เกิดจากติดตั้ง ODBC ไม่ตรงกับเวอร์ชั่นของ Office ครับ โปรแกรม Office เป็น x32 แต่ลง ODBC เป็น x64 ต่อจากนั้นเชื่อมต่อได้แล้ว แต่ไม่เป็นภาษาไทยเพราะกำหนดค่าที่เชื่อมต่อผิด ตอนแรกกำหนดเป็น

Code: Select all

Driver={MySQL ODBC 8.0 Driver}
ซึ่งต้องแก้เป็น

Code: Select all

Driver={MySQL ODBC 8.0 Unicode Driver}
จึงจะแสดงผลเป็นภาษาไทยครับ

*** แต่ยังมีปัญหาเรื่องถ้าเชื่อมต่อไม่ได้ ให้ขึ้นข้อความแจ้งเพื่อให้แก้ไข ยังหาวิธีทำไม่ได้ครับ ***

ตามแนบไฟล์ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30988
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขออนุญาตสอบถามการตั้งค่าเชื่อมต่อกับ MySQL

#6

Post by snasui »

:D เท่าที่ดูจากไฟล์แนบ พบว่ามีการเขียนไว้เรียบร้อยแล้วว่าหากติดต่อไม่ใด้ให้แสดงข้อความและออกจาก Procedure เมื่อทดสอบแล้วก็แสดง Error ออกมาทาง Message Box เรียบร้อยแล้ว ไม่ทราบว่ายังเกิดปัญหาใดครับ
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขออนุญาตสอบถามการตั้งค่าเชื่อมต่อกับ MySQL

#7

Post by 9KiTTi »

snasui wrote: Sat Sep 23, 2023 7:04 am :D เท่าที่ดูจากไฟล์แนบ พบว่ามีการเขียนไว้เรียบร้อยแล้วว่าหากติดต่อไม่ใด้ให้แสดงข้อความและออกจาก Procedure เมื่อทดสอบแล้วก็แสดง Error ออกมาทาง Message Box เรียบร้อยแล้ว ไม่ทราบว่ายังเกิดปัญหาใดครับ
อยากให้แสดงเป็นภาษาไทยครับ ไม่ใช่แสดงเป็น code ครับ หากเชื่อมต่อไม่ได้ ให้แสดง form ตั้งค่าเชื่อมต่อครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30988
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขออนุญาตสอบถามการตั้งค่าเชื่อมต่อกับ MySQL

#8

Post by snasui »

:D ความต้องการเช่นนั้นเป็นการแสดงผลทางหน้าจอ เราสามารถกำหนดเองได้ครับ

ให้ดู Code ด้านหลังว่าเป็น Error ลำดับใด (Err.Number) และคำอธิบาย Error คืออะไร (Err.Description)

จากนั้นค่อยนำ Error Number เช่น 40, 70 นี้มากำหนดค่าเองว่าให้แสดงเป็นข้อความเป็นภาษาไทยแบบไหน เมื่อ Error นั้นแล้วให้ทำงานต่ออย่างไร เช่นนี้ครับ
9KiTTi
Member
Member
Posts: 227
Joined: Thu Jun 28, 2012 3:46 pm
Excel Ver: 2016,2019

Re: ขออนุญาตสอบถามการตั้งค่าเชื่อมต่อกับ MySQL

#9

Post by 9KiTTi »

snasui wrote: Sat Sep 23, 2023 10:11 am :D ความต้องการเช่นนั้นเป็นการแสดงผลทางหน้าจอ เราสามารถกำหนดเองได้ครับ

ให้ดู Code ด้านหลังว่าเป็น Error ลำดับใด (Err.Number) และคำอธิบาย Error คืออะไร (Err.Description)

จากนั้นค่อยนำ Error Number เช่น 40, 70 นี้มากำหนดค่าเองว่าให้แสดงเป็นข้อความเป็นภาษาไทยแบบไหน เมื่อ Error นั้นแล้วให้ทำงานต่ออย่างไร เช่นนี้ครับ
ขอบพระคุณครับอาจารย์
Post Reply