ใช้ Access กับ MySQL อย่างไร
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 674   8
URL.หัวข้อ / URL
ใช้ Access กับ MySQL อย่างไร

มีคนถามไว้ที่  
http://pantip.inet.co.th/tech/software/topic/SP923748.html#1  
ดังนี้  
  
ใช้ MS Access กับ MySQL   
ใครเคยใช้ MS Access เชื่อมต่อกับ MySQL โดยผ่าน  
ODBC บ้างช่วยแนะนำหน่อยครับ  
  
  
จากคุณ : abcdefghi@chaiyo.com [22 เม.ย. 2545 - 15:10:18]   
  
ผมได้ตอบเขาไว้ดังนี้  
  
จะต้องติดตั้ง MyODBC driver โดย d/l จาก http://www.mysql.com/downloads/api-myodbc-2.50.html  ให้ติดตั้งให้เรียบร้อย แล้วไปสร้าง DSN ให้ฐานข้อมูล MySQL (โดยใช้ ODBC ใน control panel ลองมองหา MySQL ในรายการที่มีให้) แล้วตั้งชื่อให้เป็นอะไรก็ได้เช่น MyAccess จากนั้นให้กลับไปที่ Access, คลิกขวาที่ตารางที่ต้องการจะย้ายไป MySQL>Save As/Export>เลือกเป็น Select ODBC Database() ตรงช่อง Save As Type:>มองหา MyAccess>เรียบร้อย!   
  
เผอิญผมเพิ่งจะทำเมื่อวานเอง ใช้ได้ดีที่เดียวครับ  *** Edited by Supap Chaiya *** 5/10/2003 12:08:39 PM

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

1 @R00264
ถ้าต้องการติดต่อแบบ DSNLess ก็สามารถทำได้ โดยใช้ ADO ดังนี้ Sub myodbc_ado_Click2() 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 'Count the records.. rs.Open "SELECT Count(*) FROM info1", conn Debug.Print rs(0) rs.Close rs.Open "SELECT * FROM info1", conn, 3, 3 rs.MoveFirst For Each fld In rs.Fields Debug.Print fld.Name, Next Debug.Print Do Until rs.EOF For Each fld In rs.Fields Debug.Print fld.Value, Next rs.MoveNext Debug.Print Loop rs.Close conn.Close End Sub จะเห็นว่า ถ้าต้องการที่จะแสดงจำนวนข้อมูลทั้งหมด จะไม่สามารถใช้ Recordcount ได้ เนื่องจาก MySQL ไม่ได้สนับสนุน ต้องใช้ Count(*) แทนดังนี้ rs.Open "SELECT Count(*) FROM info1", conn Debug.Print rs(0) ส่วนการติดต่อ MySQL ถ้าใช้ MyODBC เวอร์ชัน 2.50 จะเป็นดังนี้ Set conn = New ADODB.Connection conn.ConnectionString = "DRIVER={MySQL};" _ & "SERVER=localhost;" _ & " DATABASE=vegetables;" _ & "UID=kaeg;PWD=chaiya0123456; OPTION=3" แต่ถ้าเป็นเวอร์ชัน 3.51 ก็จะเป็น Set conn = New ADODB.Connection conn.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};"_ & "SERVER=localhost;"_ & " DATABASE=test;"_ & "UID=venu;PWD=venu; OPTION=35" ลองดูครับ
2 @R02773
อยากให้ช่วยแนะนำการ setup หรือติดตั้ง Server โดยใช้ MySQL โปรแกรมด้วยครับ เพราะลองติดตั้งแล้วแต่งงมาก.....

ขอบคุณครับ
3 @R02780
ลองดูกระทู้ http://www.thai-access.com/suphap.php?topic_id=181 ครับ
4 @R02786
ผมจะลองดู......ขอบคุณครับ
5 @R02789
ผมลอง download ตามที่อาจารย์แนะนำแล้วครับ แต่สงสัยในส่วน driver odbc ชื่อ driver อะไรครับ แล้ว mirror คืออะไรครับ ขอบคุณครับ อยากใช้ mysql มาก เพราะช่วยประหยัดเงินค่าฐานข้อมูลเยอะครับ
6 @R02990
ตอนนี้ผมสามารถใช้ MySQL ได้แล้วขอบคุณมากครับ.....แต่มีข้อสงสัยเกี่ยวกับ DSN ติดต่อกับ Access ว่าทำไมไม่สามารถกำหนด Privaliage ของ user ได้จาก MySQL ครับ เพราะเมือผมลองดูแล้วมันขึ้นอยู่กับ Access.....
7 @R03091
recordset1.Open "SELECT * from table where Time = '" & oldtime & "' and Date = '" & olddate & "' ,conn, adOpenStatic, adLockOptimistic"

มันเรียก ข้อมูลชื่อฟิลด์ Time ขึ้นมาตามเงื่อนไขไม่ได้ค่ะ
1.ต้องแก้ไขส่วนนี้ Time = '" & oldtime & "' อย่างไรค่ะ เพราะ ฟิลด์ Time เป็นชนิด DateTime ค่ะ
2.ต้องแก้ไขส่วนนี้ Date = '" & olddate & "' อย่างไรค่ะ เพราะ ฟิลด์ Date เป็นชนิด Date ค่ะ



ช่วยแนะนำด้วยน่ะค่ะ.....ขอบคุณค่ะ
8 @R03099
ลองแบบนี้ครับ

recordset1.Open "SELECT * from table where Time = " & oldtime & " and Date = " & olddate & " , conn, adOpenStatic, adLockOptimistic
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0457s