แสดงกระทู้

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - ศรี-นคร

หน้า: [1]
1
สวัสดีครับ
สำหรับเพื่อนสมาชิกท่านใดติดปัญหา mdb ไฟล์ชำรุด ฟ้อง Unrecognized database format
สามารถติดต่อมาที่ผมได้ครับผม


2
ห้อง Ms Access อื่นๆ / รับแกะ Password mdb File
« เมื่อ: 20 มี.ค. 67 , 13:33:35 »
สวัสดีครับ
สำหรับเพื่อนสมาชิกท่านใดติดปัญหา Password เวลาเปิดไฟล์หรือต้องการเข้าถึงข้อมูลไฟล์ mdb แล้วติดรหัสผ่าน
สามารถติดต่อมาที่ผมได้ครับผม


3
ห้อง MS Access / Access 2016 กับ Share Point
« เมื่อ: 25 ต.ค. 65 , 17:42:02 »
ไม่ทราบว่า ใครทราบวิธีการใช้งาน Access บน Share Point บ้างครับ

4
พอดีได้ทำการ Import XML เข้ามาที่ Access
พบว่า มีฟิลด์ที่เป็นวันที่ เป็นรูปแบบตัวเลข

XML:
  <StartTime>1594477222</StartTime>

ดูที่หน้าเว็บ จะแสดงวันที่เป็น

StartTime : 11/07/20 14:20:22

ผมไม่ทราบวิธีแปลงข้อมูลให้มาเป็นรูปแบบวันที่ที่โชว์ที่หน้าเว็บ
ไม่ทราบว่า มีเพื่อนสมาชิกท่านใดพอจะแนะนำบ้างครับ

5
ห้อง Ms Access อื่นๆ / Link MDB File
« เมื่อ: 05 ก.พ. 62 , 10:34:01 »
สำหรับองค์กรหรือหน่วยงานขนาดเล็ก-ขนาดกลาง ที่ต้องการใช้ข้อมูลร่วมกันในหลายส่วนหรือแผนก
หากต้องเชื่อมฐานข้อมูลไปยัง mdb ไฟล์ที่เก็บไว้ Server หรือ Share folder ที่ส่วนกลาง
สามารถทำได้ 2 วิธีครับ

วิธีที่ 1 คือทำการคลิ๊กขวาที่ Tab : table เลือก Link Tables

วิธีที่ 2 คือเชื่อมต่อผ่าน ODBC โดยมีหลักการมีดังนี้ครับ
- ขั้นตอนที่ 1 สร้าง ODBC เพื่อ Connect ไปยัง MDB ไฟล์ที่ต้องการเชื่อมข้อมูล
- ขั้นตอนที่ 2 ทำการ Link Table เข้ามาในไฟล์ Front End ที่กำลังใช้งานอยู่
- ขั้นตอนที่ 3 ในหน้าเขียนโค๊ด VBA ให้ติ๊กเลือก Tools --> Reference --> Microsoft DAO 3.6 Object libray

##################################
เมื่อต้องการจะจัดการกับข้อมูลใน Table สามารถใช้รูปแบบดังนี้

    Dim rst1, rst2, rst3, rst4, rst5, rst6, rst7, rst8 As DAO.Recordset

    Dim dbs As Database
    Set dbs = CurrentDb()
   
    Set rst1 = dbs.OpenRecordset("SELECT * from Table1")
    'Add
    rst1.addnew
    rst1!Filed1 = "Test"
    rst1.update

    'Edit
    rst1.edit
    rst1!Filed1 = "Test"
    rst1.update

    'Del
    rst1.Delete

    rst1.close
    Set rst1 = nothing

โดยเราจะต้องใส่ Password ไว้ที่ ตรงที่ไฟล์ mdb ที่ Share ไว้ที่ส่วนกลางนั้นไว้ด้วย เพราะเดี๋ยวมีใครซุกซนเข้าไปแก้ไขข้อมูลเดี๋ยวงานจะเข้า
และมีข้อควรระวังอยู่หลายเรื่องคือ
- จะต้องทำการ Compact ข้อมูลทุกวันเพื่อให้ระบบทำการ Clean up record ที่โดนลบระหว่างวันออกไป
- ต้องมีการ Backup ข้อมูลทุกวันเพราะเมื่อไฟล์ชำรุดจะไม่สามารถเปิดไฟล์ได้เลย ไม่ว่าจะรู้ Password ก็ตามต้องใช้ tools พิเศษซ่อม และ Relation ระหว่าง Table จะเสียต้องเข้าไปไล่หาว่า Link ที่เสียหายนั้น หายไปที Table อะไร ต้องทำการสร้าง Relation นั้นใหม่ ซึ่งอาจจะมีปัญหาเพิ่มเติมมาอีกตรงที่มี Record บางอันเกินมาทำให้ไม่สามารถเชื่อมความสัมพันธ์ได้ ต้องลบทิ้งก่อนทำการเชื่อม แล้วค่อยคีร์เข้าไปใหม่
สามารถตรวจสอบได้โดยการสร้าง Query Unmatch เพื่อให้ทราบว่ามี record ใดบ้าง
- เมื่อฐานข้อมูลชำรุด Data unrecognized ต้องให้ User ออกจากระบบทั้งหมดแล้ว Restart เครื่องคอมฯ ที่ Share ไฟล์นั้นเพื่อยกเลิกการเชื่อมต่อมายัง โฟลเดอร์ดังกล่าว ทำการปิด Share สำหรับ User ทุกคน ยกเว้น User ที่ดูแลระบบแล้วจึงทำการปรับซ่อมไฟล์ให้แล้วเสร็จ จากนั้นค่อยทำการเปิด Share กลับมาเหมือนเดิม ปัญหาใหญ่มันจะอยู่ที่ไฟล์ที่ชำรุดนั้นจะเปิดไม่ได้ต้องใช้ Tool ที่เป็นไฟล์ข้างนอกทำการปรับซ่อมสถานเดียว ถ้าไม่มีจึงไม่แนะนำให้ใช้การ Share ข้อมูลวิธีนี้ โดยจะต้องทำทันทีเดี๋ยวนั้นเลย ก่อนที่ข้อมูลจะพังจนสายเกินแก้ หากไม่เก่งพอหรือไม่มี Tool อยู่ในมือ ไม่แนะนำให้ใช้การ Share ข้อมูลแบบนี้เพราะนั้นหมายถึงคุณต้องเอาไฟล์ Backup กลับมาใช้ นรกจะบังเกิดทันที
- เมื่อมีคนใช้งานรวมกันมากขึ้น การเปิด-เขียนข้อมูลจะช้าลงอย่างเห็นได้ชัด เนื่องจากตัว MS-Access จะมีการ Lock Record ที่ User แต่ละคนกำลังใช้งานอยู่ในขณะนั้น
- ความแรงและความเร็วในการอ่านเขียนของเครื่องที่ Share ไฟล์ก็จะมีผลเรื่องความเร็ว ในการอ่าน-เขียนด้วยนะครับ
- การออกแบบระบบ Network และคุณภาพ,ความเร็วของ Network ก็มีผลกับความบ่อยของการชำรุดของไฟล์ที่แชร์ด้วย ถ้าไม่ดีหรือไม่เสถียรก็จะมีปัญหาบ่อย
- ส่วนการตั้งรหัสผ่าน mdb ไฟล์สามารถค้นหาอ่านได้จากข้อมูลเก่าของ อ. สุภาพ ไชยาครับ

จะเห็นว่า มีเงื่อนไขและรายละเอียดการใช้งานค่อนข้างเยอะ จึงไม่แนะนำให้ใช้การ Share วิธีนี้ เลี่ยงได้ก็ควรจะไปใช้ SQL Server จะดีกว่าได้ความเร็วและเสถียรกว่ากันเยอะ แต่ก็ต้องเตรียมเรื่องของ Server และ License

############################
Tool ที่ว่าผมมี หากต้องการให้ Post ขอด้านล่างนะครับเพราะจะให้คนที่ต้องการเท่านั้น ไม่ให้พร่ำเพรื่อ

ขอขอบคุณความรู้เกี่ยวกับ MS-Access จาก อ. สุภาพ ไชยา

ก็ฝากไว้เผื่อจะสามารถช่วยให้มิตรรักแฟนเพลงท่านหนึ่งท่านใด ก้าวพ้นปัญหาที่กำลังแก้อยู่ได้เร็วขึ้น

6
ห้อง Ms Access อื่นๆ / Link SQL Server
« เมื่อ: 28 ม.ค. 62 , 15:51:06 »
หากต้องเชื่อมฐานข้อมูลจาก SQL Server โดยตัว Front End เป็น MS-Access

หลักการมีดังนี้ครับ
- ขั้นตอนที่ 1 สร้าง ODBC เพื่อ Connect ไปยัง MySQL Server
- ขั้นตอนที่ 2 ทำการ Link Table เข้ามาในไฟล์ Front End ที่กำลังใช้งานอยู่
- ขั้นตอนที่ 3 ในหน้าเขียนโค๊ด VBA ให้ติ๊กเลือก Tools --> Reference --> Microsoft DAO 3.6 Object libray

เมื่อต้องการจะจัดการกับข้อมูลใน Table สามารถใช้รูปแบบดังนี้

    Dim rst1, rst2, rst3, rst4, rst5, rst6, rst7, rst8 As DAO.Recordset

    Dim dbs As Database
    Set dbs = CurrentDb()
   
    Set rst1 = dbs.OpenRecordset("SELECT * from Table1", dbOpenDynaset, dbSeeChanges)
    'Add
    rst1.addnew
    rst1!Filed1 = "Test"
    rst1.update

    'Edit
    rst1.edit
    rst1!Filed1 = "Test"
    rst1.update

    'Del
    rst1.Delete

    rst1.close
    Set rst1 = nothing

จะเห็นว่า มีรูปแบบคำสั่ง    ", dbOpenDynaset, dbSeeChanges)   ต่อท้ายเพิ่มขึ้นมานิดหน่อย

ขอขอบคุณความรู้เกี่ยวกับ MS-Access จาก อ. สุภาพ ไชยา

ก็ฝากไว้เผื่อจะสามารถช่วยให้มิตรรักแฟนเพลงท่านหนึ่งท่านใด ก้าวพ้นปัญหาที่กำลังแก้อยู่ได้เร็วขึ้น

7
ห้อง Ms Access อื่นๆ / Link MySQL
« เมื่อ: 28 ม.ค. 62 , 14:21:19 »
พอดีไปเจอโจทย์ใหม่ คือต้องเชื่อมฐานข้อมูลจาก MySQL มาที่งานเก่าที่เป็น SQL Server โดยตัว Front End เป็น MS-Access
งมอยู่พักใหญ่ ในที่สุดก็สามารถทำได้

หลักการมีดังนี้ครับ
- ขั้นตอนที่ 1 ต้องลง Driver ของ MySQL ที่เครื่องก่อน ณ. วันที่โพสนี้มี 2 เวอร์ชั่น คือ v.3.1.5 , 8.0 แนะนำเป็นเวอร์ชั่น 3.1.5
- ขั้นตอนที่ 2 สร้าง User ที่สามารถเข้าถึงฐานข้อมูลให้เรียบเรียบก่อนพร้อมทดสอบ และอย่าเปลี่ยนสิทธิ์ของ User ที่ว่านี้ให้เป็น Full ด้วยเครื่องหมาย %
- ขั้นตอนที่ 3 สร้าง ODBC เพื่อ Connect ไปยัง MySQL Server
- ขั้นตอนที่ 4 ทำการ Link Table เข้ามาในไฟล์ Front End ที่กำลังใช้งานอยู่
- ขั้นตอนที่ 5 ในหน้าเขียนโค๊ด VBA ให้ติ๊กเลือก Tools --> Reference --> Microsoft DAO 3.6 Object libray

เมื่อต้องการจะจัดการกับข้อมูลใน Table สามารถใช้รูปแบบดังนี้

    Dim rst1, rst2, rst3, rst4, rst5, rst6, rst7, rst8 As DAO.Recordset

    Dim dbs As Database
    Set dbs = CurrentDb()
   
    Set rst1 = dbs.OpenRecordset("SELECT * from Table1")

    'Add
    rst1.addnew
    rst1!Filed1 = "Test"
    rst1.update

    'Edit
    rst1.edit
    rst1!Filed1 = "Test"
    rst1.update

    'Del
    rst1.Delete

    rst1.close
    Set rst1 = nothing

ขอขอบคุณความรู้เกี่ยวกับ MS-Access จาก อ. สุภาพ ไชยา

หน้า: [1]