Access : จุดเริ่มต้นที่ง่ายที่สุดสำหรับการเรียนรู้ ระบบฐานข้อมูล
Access : จุดเริ่มต้นที่ง่ายที่สุดสำหรับการเรียนรู้ การเขียนโปรแกรม
Access : เป็นได้ทั้งตัวเก็บฐานข้อมูล และตัวจัดการฐานข้อมูล
Thai Access : บอร์ดเสริมการเรียนรู้ Access ด้วยภาษาไทย

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

Back to Board : Thai Access Webboard New Topic    Reply
Import .sql ไฟล์ into MS-Access

Topic by Message Posted : on : 18/8/2553 15:59:14
รักน้องบิวท์  ถึงคราวต้องถามเองบ้างแล้ว 555 หาในอากู๋เท่าไหร่ก็ไม่เจอ
ผมมีไฟล์ .sql (มาจากการทำ sql database publishing อะไรประมาณนี้)
ซึ่งมันเป็น data จากฐานข้อมูล
ต้องการจะ import มันเข้าในฐานข้อมูล MS-Access
ต้องทำยังไงครับ มีใครเคยทำบ้างครับ

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

Reply by Message on : 18/8/2553 23:35:15
yeadram
(R06400)
ถ้า sql เขียนต่อกันด้วยสายอักขระยาวๆ อย่างที่ใช้กับ ฐานข้อมูลใหญ่ๆ อาจจะไม่สะดวกในการนำเข้า Access ครับ
อาจต้องใช้วิธีการ ตัดทอนสายอัขระก่อนแล้วค่อยนำเข้า ด้วยการ Execute ของตัว connection
สายอักขระ SQL ที่ export มาจากโปรแกรมอื่นๆ หรือมาจาก ฐานข้อมูลชนิดอื่นๆ อาจจะอยู่ในรูปแบบที่ ADO อ่านไม่ออกก็ได้ คุณอาจต้องใช้ connection แบบ DAO หรืออาจต้องปรับรูปแบบสายอักขระเหล่านั้นก่อน
เช่น สายอักขระที่ dump มาจาก MySQL เขียนว่า

Insert Into tabl1(fiel1,field2,field3) values
(1, 0, "นาย"),
(2, 0, "นาง"),
(3, 0, "ดร.");

สังเกตเห็นไหมครับว่า เขาสามารถ Execute เพียงครั้งเดียวโปรยข้อมูลเข้าได้ถึง 3 เรคคอร์ด

แต่ ADO connection จะทำไม่ได้ (เท่าที่เคยลองมานะครับ)
ถ้าจะให้ ADO ทำได้ในงานเดียวกันนี้ คุณต้องปรับเปลี่ยน เขียนสายอักขระชุดนี้ใหม่เป็นดังนี้
ชุดที่ 1   Insert Into tabl1(fiel1,field2,field3) values (1, 0, "นาย");
ชุดที่ 2   Insert Into tabl1(fiel1,field2,field3) values (2, 0, "นาง");
ชุดที่ 3   Insert Into tabl1(fiel1,field2,field3) values (3, 0, "ดร.");
เวลาสั่ง Execute ก็ต้องสั่งครั้งละชุด ถึงจะได้ ครบทุกเรคคอร์ด


- ใช้โค้ดไล่ตรวจสอบสายอักขระ ถ้าจำเป็นต้องตัดทอน ก็แบ่งมันเข้า array เตรียมไว้เป็นท่อนๆ
- ใช้โค้ดสร้างตัว connection
- วนลูปให้ Connection ทำการ Execute ไปทีละท่อน

โค้ดดังกล่าว อาจจะเขียนโดย VBS เขียนขึ้นจาก notepad เซฟเป็น VBS แล้วค่อยรัน
หรือถ้าไม่คล่องการเขียนใน notepad (ไม่มีเครื่องมือช่วยเขียน ไม่มีตัว list) ก็อาจจะเขียนใน VBA (อาจจะสร้าง mdb ตัวเปล่าๆ สร้างโมดูล แล้วเขียนโค้ดในนั้น มันจะมี list ช่วยเขียนได้ดีกว่า)
หรืออาจจะเขียนด้วย VBA ใน mdb ตัวเป้าหมายเลยก็ได้

ถ้ามันมีข้อมูลมากๆ ก็ต้องลองคำนวนเอาครับว่า จะใช้ โค้ดไล่ตรวจไล่แปลงตัดทอนเอาเอง หรือจะลองค้นหาโปรแกรมสำเร็จรูปที่คนอื่นเขาทำไว้แล้วจะเร็วกว่า, จะง่ายกว่าไหม โดยหลักการของโปรแกรมพวกนั้นก็คงจะคล้ายๆ กันอย่างนี้แหละครับ คือต้องแปลงสายอักขระ หรืออาจต้องไล่เปลี่ยน คีย์เวอร์ดในสายอักขระให้หมดก่อน แล้วค่อยสั่ง Execute

สำหรับผมเองถ้าเจออย่างนี้ (ผมเขียนโค้ดเองแน่นอนครับ สนุกดี อิอิ)
Back to Top
Reply by Message on : 18/8/2553 23:47:48
รักน้องบิวท์
(R06401)
ขอบคุณมากครับ คุณ yeadram สำหรับคำแนะนำ
คงต้องไปหาวิธีการอื่นแล้วละครับ คือไฟล์ที่ว่านี้ผมนำมาจาก
การทำแบคอัพฐานข้อมูล sql server ด้วยวิธีการ publishing อะไรเนี่ยแหละ
ผมก็ไม่ถนัดในเรื่อง sql server อาศัยลองหาๆ ดูในอากู๋
พอทำแบคอัพได้ ก็เลยลองคิดดูว่า ถ้านำมาเข้า MS-Access จะได้มั๊ย
เผื่อในกรณ๊ที่ยูสเซอร์ต้องการดูข้อมูลที่ทำแบคอัพเก็บเอาไว้
ขอบคุณครับ
Back to Top
Reply by Message on : 23/8/2553 10:38:09
Gerald
(R06447)
ลอง?ช้ SSMA หรือ ทำ Link Database มาที่ Access

โดยใช้ ODBC connect แล้ว ใช้ copy and paste เลือก Local ก็จะได้ Access table แล้ว
Back to Top

Reply

 *Indicates required fields
Format:
Bold Under Line Italic Add Hyperlink Add Email Link Italic List Indent Add Image Emoticons Image Upload Insert code Mode:
Message:*
Your Name*:
Normal word*: Please input : ไทยแอ็คเซส
+++ webboard source: ASPThai.Net Webboard 6.0 webbord +++++++ admin : yeadram +++