เรียน อ.สุภาพ เรื่อง Connect MySQL โดย Access97
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 339   11
URL.หัวข้อ / URL
เรียน อ.สุภาพ เรื่อง Connect MySQL โดย Access97

คือว่าผมต้องการย้ายBase จาก Access97 ไปไว้ใน MySQL เชื่อมต่อโดย ODBC ผมมีปัญหาก็คือไม่ทราบวิธีดึงข้อมูลโดยใช้ ADO หรือ DAO เพื่อเรียกข้อมูลจาก MySQL ผมมีตัวอย่างเดิมที่เคยทำไว้แบบอยู่ใน Access ชื่อ Customers.MDB ถ้าผมต้องการเชื่อมกับ MySQL ผมต้องเขียน Code ใน Form ชื่อ Customer อย่างไรบ้างให้สามารถใช้ได้เหมือนเดิม ผมลองอยู่หลายวันแล้วครับไม่สามารถทำได้ รบกวน อ. ด้วยครับ ถ้าเป็นไปได้ อ. ช่วยอธิบายการเชื่อมโดยละเอียดหน่อยนะครับ ผมเพิ่งเริ่มศึกษาครับ

11 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R04974
ถ้ายังใช้ Access97 เป็น Front end เหมือนเดิมก็คงไม่ต้องเปลี่ยน code
อะไรครับ เพราะเราใช้ MySQL เป็นฐานข้อมูล แล้วเชื่อมโยงตารางโดยผ่าน
ODBC มาที่ MDB ผมเองยังไม่ค่อยได้ใช้แบบนี้มากนักแต่คิดว่าไม่น่าจะต่าง
จากนี้เท่าไร

1. หา MySQL, MySQL-Front, MySQL ODBC มาใช้
2. ติดตั้งทั้ง 3 โปรแกรม
3. ใช้ MySQL-Front ในการติดต่อกับ MySQL จะทำให้ง่ายในการจัดการ
4. สร้าง System DSN โดยเลือก Driver เป็น MySQL
5. เข้า MySQL-Front แล้วเลือกโอนข้อมูลจากตารางให้ Access มาที่ MySQL
6. ที่ Access ที่เป็น Front End ให้เชื่อมโยงตารางโดยเลือกชนิดของไฟล์ เป็น
ODBC แล้วเลือก System DSN ที่สร้างไว้ในข้อ 4 ก็จะสามารถเชื่อมโยงตาราง
มาที่ MDB ได้
7. นอกนั้น การทำงานบน Access ทุกอย่างก็น่าจะเหมือนเดิมไม่มีการเปลี่ยนแปลง
2 @R04979
เดิมทีผมใช้ วิธีนี้เรียก Database ครับ
Dim CusDatabase As DATABASE
Dim CustomerRecord As Recordset
Set CusDatabase = CurrentDb()
Set CustomerRecord = CusDatabase.OpenRecordset("Customers", DB_DENYWRITE)
CustomerRecord.index = "Customer1"
-----------------------------------------------------------------------------------------
แต่ผมใช้ Link Table มาจาก MySQL จะต้องแก้ไข Code อย่างไรบ้างครับ
3 @R04983
นั่นสิ..ผมก็อยากรู้ เพราะ ตอนนี้ผมย้ายข้อมูลจาก MDB ไปไว้บน PostgreSQL โดยใช้ Visual Foxpro มันค่อนข้างจะเปิดและทำได้ง่ายมากครับ
4 @R04984
ลองอ่านกระทู้ http://www.thai-access.com/suphap.php?topic_id=187

เป็นโค้ดแบบ DSNLess ไม่ต้องอาศัย ODBC

และถ้าจะใช้ ADO แบบ unbound form ก็ลองอ่านบทความนี้ของ MS ครับ ที่ http://support.microsoft.com/default.aspx?scid=kb;EN-US;281998

นำทั้ง 2 อย่างมาประกอบกันครับ
5 @R04992
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim fld As ADODB.Field
Dim sql As String

'connect to MySQL server using MySQL ODBC 3.50 Driver
Set conn = New ADODB.Connection
conn.ConnectionString = "DRIVER={MySQL};" _
& "SERVER=localhost;" _
& " DATABASE=vegetables;" _
& "UID=kaeg;PWD=chaiya0123456; OPTION=3"

conn.Open
Set rs = New ADODB.Recordset
ผมลอง Run ดูแต่มันแจ้งError บรรทัด Dim rs As ADODB.Recordset
ไม่ทราบว่าต้องแก้ไขอย่างไรครับ
6 @R04993
แจ้งเพิ่มเติม มันจะ Error บรรทัด Dim conn As ADODB.Connection
ก่อนครับ
7 @R04994
ต้องเพิ่ม ADO เข้าไปใน References ด้วยครับ

เมื่ออยู่ในหน้าเขียนโค้ด ให้ไปที่เมนู Tools>References> แล้วมองหา Microsoft ActiveX Data Objects 2.X Library ครับ

8 @R05005
Private Sub Form_Load()
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim CustomerRecord As Recordset

Set conn = New ADODB.Connection
conn.ConnectionString = "DRIVER={MySQL};" _
& "SERVER=192.168.0.19;" _
& " DATABASE=soacc;" _
& "UID=;PWD=; OPTION=3"


conn.Open
Set rs = New ADODB.Recordset
With rs
Set .ActiveConnection = conn
.Source = "SELECT * FROM Customers"
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.Open
End With

Set CustomerRecord = rs
Set rs = Nothing
Set conn = Nothing
End Sub
_________________________________
เวลา Run มันจะแจ้งว่า"The request properties can not be supported by this ODBC driver"
แล้วก็แจ้ง Error ตรงบรรทัด .Open
ไม่ทราบว่าเขียนผิดตรงไหนครับ
9 @R05007
ลองดูโค้ดอีกตัวด้วยครับ เพื่อมีปัญหากับ MyODBC ที่ได้ติดตั้งไปครับ
10 @R05045
อ. พอจะมีตัวอย่างให้พอศึกษาบ้างไหมครับ
11 @R05048
ก็อยู่ในกระทู้ http://www.thai-access.com/suphap.php?topic_id=187 ที่เคยแจ้งไว้แล้วครับ จะมี 2 ตัวอย่างให้เลือกใช้ครับ

@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0547s