20091207

ODBC ของ Window xp

0 comments
ถาม

คือผมอยากทราบว่า ODBC ใน Administrative Tool ของ Window Xp มีความสามารถอะไรบ้าง และสามารถน้ำมาใช้กับ File Ms Access ได้หรือไม่ มีการเชื่อมต่อกับเครื่องอื่นๆอย่างไร ขอบคุณมากครับ

===============================================================

ตอบ

ขอคุยสักแบบนะครับ เพราะว่าเรื่องนี้เป็นหนังเรื่องยาว เช่น ใช้งานในลักษณะ Client/Server คือ เป็นตัวกลางระหว่าง Front-end กับ Back-end ในกรณี Back-end เป็นฐานข้อมูลแบบอื่น (คือไม่ใช่ Access) มันจะแปลงคำสั่งจาก Access ให้อยู่ในรูป ODBC SQL ส่งให้ฐานข้อมูลนั้นนำไปประมวลผลต่อไป

ถ้าจะสรุปอย่างง่าย ก็คือ ODBC Driver Manager ที่ใช้ในการติดต่อฐานข้อมูลต่าง ๆ เช่น Oracle, SQL Server, Informix, DB/2 เป็นต้น ซึ่งมีค่า Default ที่เซ็ตไว้ให้ก็มี Microsoft Access ครับ

หากทดลองใช้งาน ADP ก็ลง Microsoft SQL Server Database ซะก่อน แล้วสร้างฐานข้อมูลแบบ Microsoft Access Project ดูซิครับ

สำหรับ Microsoft Access Project ก็คือ
แฟ้ม Access ที่เชื่อมต่อกับฐานข้อมูล Microsoft SQL Server และใช้ในการสร้างโปรแกรมประยุกต์แบบไคลเอ็นต์/เซิร์ฟเวอร์

ลองเปิด NorthwindCS ดูครับ แต่ต้องติดตั้ง SQL Server 2000 Desktop Engine ได้จากแผ่นติดตั้งอยู่ที่โฟลเดอร์ MSDE2000 ก่อนเปิด


Read more ►

ใช้ MS Access เป็น Front End ควรใช้อะไรเป็น Back End

0 comments
ขอความรู้นะครับ

ที่ทำงานใช้ MS Access เก็บข้อมูลกันครับ

มีการพัฒนาระบบ Front ของ Access ใหม่ โดยแยกข้อมูลไว้ใน Server โดยใช้ Access เป็น Front ผลปรากฎว่าข้อมูลที่เรียกผ่านระบบ network ช้ามากๆ ก็เลยแก้ปัญหาด้วยการปรับระบบเป็น ODBC โดยทดลองใช้ Mysql เป็น Database Server ได้ความเร็วเป็นที่น่าประทับใจ

การติดตั้ง Mysql ใช้ Mysql 5.0.51b
ตัว Convert จาก MsAccess ไป Mysql ผมใช้ BullZip ครับ

ตอนนี้ฐานข้อมูลที่ทดลองใช้มีสองฐานข้อมูลด้วยกัน
ฐานข้อมูลแรกที่ Convert BullZip ฟ้องนะครับว่ามีข้อผิดพลาด ก็ทำการแก้ไขผ่านไปด้วยดี
( ปัญหาที่เกิดคือกำหนดค่าของ Field ผิด คือ เดิมกำหนดเป็น Byte ซึ่งที่ถูกต้อง ต้องกำหนดเป็น Int)

อีกฐานข้อมูลก็มี Error นะครับ ปัญหาคือ ได้มีการเขียนชุดคำสั่งว่า 'พอผู้ใช้กดปุ่ม SaveRecord ประมาณว่าให้copyข้อมูลเอาไว้ก่อนเพื่อนำไปสร้าง Record ใหม่ โดยผู้ใช้ไม่ต้องพิมพ์ข้อมูลชุดเดิมทั้งชุด (ตามภาพที่1)
พอผู้ใช้กดปุ่ม Duplicate ข้อมูลที่เรียกมานั้นก็นำไปสร้างเป็น record ใหม่ทันที

ผลปรากฎว่าข้อมูลในช่อง Field ต่างๆกลายเป็น #DELETE ตามภาพที่2 อันนี้ก็งงกันซิครับว่าปัญหาเกิดจากอะไรกันแน่

เพราะเหตุการณ์นี้ไม่เกิด ถ้าใช้ MS Access โดยตรง

ตอนนี้ก็เลยสับสนว่า มันผิดที่ตรงไหน จะหาทางแก้ยังไงดี

แล้วถ้าจะมีการปรับระบบฐานข้อมูล BackEnd ควรจะเป็นอะไรดี โดยที่ Front เป็น Access เพราะผู้พัฒนาระบบถนัดที่จะใช้ MS Access กันครับ

อีกเรื่องหนึ่งที่เป็นที่ถกเถียงกันว่า ระบบ Network มีผลต่อการ Link ข้อมูลของ Ms Access มากน้อยแค่ไหน หมายถึง Sprit ข้อมูลเอาไปไว้ใน Server

ความช้าของ Access ขึ้นอยู่กับอะไร

Record ที่ไม่มาก แต่การเขียน Form ที่ซับซ้อนจะส่งผลต่อการเรียกข้อมูลหรือไม่

ผมเองไม่มีความรู้เรื่อง Access มากเท่าไหร่นัก แต่พอจะมีความรู้เรื่อง Mysql และ PHP อยู่บ้างคงต้องขอความรู้จากท่านทั้งหลายครับ

ขอบคุณครับ


Read more ►

การใช้ mysql เป็น backend แล้วใช้ Ms access เป็น frontend ได้หรือเปล่าครับ

0 comments
ถาม

คือผมเขียนโปรแกรมโดยใช้ ms access อยู่ครับ ก็ใช้มาหลายปีแล้ว ตอนนี้ที่ทำอยู่จะแยกเป็น 2 files ครับ คือ file ฐานข้อมูล กับ file ที่เป็นโปรแกรม โดยการใช้ Link ฐานข้อมูล แต่ตอนนี้ข้อมูลเริ่มมากขึ้น จำนวนคนใช้งานเริ่มมากขึ้น ทำให้ประสิทธิภาพในการทำงานช้าลง ผมพอทราบมาว่า การเชื่อมกันระหว่าง mysql กับ msaccess สามารถทำได้โดยผ่าน ODBC แต่ไม่ทราบว่าต้องทำอย่างไรครับ ผมกำลังศึกษาอยู่ครับ ถ้ามีปรมาจารย์ทางด้านนี้อยู่ก็ช่วยชี้แนะด้วยครับ หรือมีข้อแนะนำอย่างอื่นก็ได้นะครับ อีกอย่างผมใช้ msaccess ก็ชอบมันครับ ไม่อยากเปลี่ยนไปเขียนตัวอื่นครับ

================================================
ตอบ

คิดว่า คุณคงชำนาญ Access มากที่เดียว จึงขอเชิญชวนมาช่วยกันตอบปัญหา วันใดช่วงใดว่างก็เข้ามาดูสักหน่อยเผื่อว่าจะตอบได้ ถ้าตอบได้ก็ตอบไป ถ้าตอบไม่ได้ก็มีคนอื่น ๆ ช่วยกัน ผมคิดว่ามันเป็นงานน่าภาคภูมิใจ ทำให้มีความสุขกับการได้บำเพ็ญประโยชน์

คำถามที่ยอดเยี่ยม
คุณ ตั้งคำถามได้ถูกใจมากเลย เท่าที่ตอบคำถามต่าง ๆ มา ก็ยังไม่เคยมีใครอยากจะทำแบบของคุณ ผมเคยนึกว่าจะเขียนบทความแนะแนวไว้ ก็ยังไม่เห็นความนิยม จึงละไว้ก่อน

สรุปว่า
จะใช้ Access เป็น Front-End
จะใช้ MySQL เป็นฐานข้อมูล บอกไว้ตรงนี้เลยว่า MySQL มองโฟลเดอร์เป็นฐานข้อมูล และมองไฟล์เป็นตารางข้อมูล

โดย Access จะเป็นเพียง Application รับส่งข้อมูลผ่านไปให้ MySQL แล้ว MySQL ก็ส่งข้อมูลไปให้ Access ประมวลผล เมื่อเสร็จแล้ว Access ก็ส่งข้อมูลไปเก็บที่ MySQL

ตรงนี้เข้าใจ Access อีกนิดว่า Object ใน Access แบ่งเป็น 2 ส่วน คือ
1) ส่วนที่เป็นฐานข้อมูล ได้แก่ Table ทั้งหมด
2) ส่วน Object ที่เหลือ เป็น Application หรือ โปรแกรม นั่นเอง

เพราะฉะนั้นเมื่อ Access ไม่ได้เก็บข้อมูล ไฟล์ Access ที่เป็น Application จึงเป็นไฟล์เล็ก ๆ และในกรณีใช้แบบ MySQL เป็นฐานข้อมูลนี้ ตารางข้อมูลของ Access ก็จะเป็นตารางข้อมูลแบบ Link ตอน Link โปรดเลือกไฟล์ไทพ์เป็น ODBC Databases

สรุป(อีกแล้ว)ได้ว่า ความเข้าใจของคุณถูกต้องครับ

เพราะฉะนั้นงานของคุณก็คือ

1) ลง MySQL -DL จาก http://dev.mysql.com/downloads/

2) ลง MyODBC -DL จาก http://dev.mysql.com/downloads/


3) สร้าง Data Source เป็นการสร้างชื่อฐานข้อมูล (DSN)-อยู่ใน Administrative Tools ของ Control Panel -เลือก MySQL เป็น Driver - ตั้งชื่อฐานข้อมูล(DSN), ชื่อโฮสท์, MySQL Database Name,ID และ PW ดูผลสำเร็จที่ System DSN ว่ามีชือฐานข้อมูลที่คุณใส่หรือเปล่า ถ้ามีก็แสดงว่า OK


4) ส่งตารางทุกตารางของคุณจาก Access ด้วย Access เมนู Exportเลือก type ด้วย ไปไว้ในชื่อฐานข้อมูลตามข้อ 3


5) ทดลองใช้งาน

ขอบ้างได้ไหมครับ - ทดลองทำแล้วเขียนเป็นบทความเสนอในเว็บนี้เลยครับ... หนูขอร้อง.... ไม่ใช่แฟนทำแทนไม่ได้ฮ้า...

ร่วมด้วยช่วยกันครับ

Read more ►

Ms Access ช้ามาก

0 comments
เรื่องมีอยู่ว่าตอนนี้ใช้ acccess โดยการแยก back end แล้ววางไว้ทีเครื่อง server แล้วก็ แชร์ไฟล์ไว้ ส่วน front end ก็วางไว้ที่ server และ เครื่องอื่นๆแล้วก็ link table มาที่เครื่อง server พอใช้งานที่ server ก็ยังไหวอยู่ แต่พอใช้ที่เครื่องอื่นๆ จะช้ามาก ไม่รู้ว่าเกิดจากอะไร พอหาข้อมูลจากที่ต่างๆก็ไม่ค่อยเข้าใจเลยรบกวนผู้รู้ช่วยตอบด้วยครับ

1.การทำ upsizing ใน access จะช่วยได้ไหม ต้องทำยังไง ทำทั้ง back end ,front end หรือเปล่า (upsizing คือ mysql หรือเปล่า???)

2.ถ้าต้องแปลง back end เป็น mysql ต้องทำยังไงบ้าง ต้องใช้โปรแกรมอะไรบ้าง(เช่น mysql ,odbc) แปลงจากaccessต้องแก้ข้อมูลอะไรไหม หรือว่าใช้ได้เลย

3.ส่วนfront end(access) ต้องแก้อะไรไหม แล้วจะเชื่อมกับ back end (mysql) ยังไง

หากระทู้ที่ใกล้เคียงกันแล้วแต่ไม่ค่อยเข้าใจ

http://www.expert2you.com/view_question2.php?q_id=19726

http://www.expert2you.com/view_question2.php?q_id=22275

http://www.expert2you.com/view_question2.php?q_id=11711

รบกวนผู้รู้ช่วยตอบด้วยครับ

ถามเพิ่มเติมนิดนึงนะครับ

1.access project คืออะไร ทำยังไงถึงจะสร้างได้

2.mysql กับ sql server คืออันเดียวกันหรือเปล่า
Read more ►
 

Copyright © Access เบื้องต้น Design by Gu