แสดงกระทู้

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.


Messages - Chatthadon

หน้า: [1]
1


งั้นก่อนที่จะมีให้ตั้งค่า LinkTable ต้องนำเข้า BackEnd ก่อนนะครับ ถ้านำเข้าแล้วจะสามารถกดแก้ไขได้
ให้ท่านไปเปิด FrontEnd แล้ว ไปกำหนด Import table จาก BackEnd ใหม่ดูครับ


กดเลือกที่ตั้งของ BackEnd
โพสต์นี้ได้รับคำขอบคุณจาก: Chatthadon

2
ห้อง 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 จาก อ. สุภาพ ไชยา

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

3
จะลองแก้ไขดูครับ

โปรแกรมสร้างจาก access Version ไหน ครับ
ลองส่งชิ้นงานนั้น Zip ไฟล์ ของชิ้นงานส่งมาทาง Inbox ครับเดี่ยวตรวจเช็คให้อีกที

แต่เบื้องต้น ให้ลองเช็คความพร้อมของเครื่องนั้นดูก่อนนะคับ
ส่วนการใส่รูป ในบอร์ด บอร์ดนี้มี ระบบ อัพโหลดภาพแล้วนะครับ ไฟล์ Jpeg อัพได้เลยครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Chatthadon

4
พอดีว่าใช้ computer 2 เครื่อง เขียนโปรแกรมด้วยเกี่ยวข้องกันไหมครับ

ลองเช็คตามนี้ดูว่าแก้ไขได้ไหม
1.ดูตรง Reference ว่ามีตัวไหนหายไปหรือไม่ กด Ctrl + G > Tool > Reference
2.เช็คการตั้งค่าภาษาด้วยครับ ว่ามีภาษาไทย หรือไม่
3.ถ้าเกิดที่ฟอร์มไหนให้ Copy Form นั้นไป Backupไว้ แล้วลบอันเก่าออก แก้ชื่ออันที่เพิ่ง Copy ไปเป็นชื่อเดิมแทนแล้วลองเปิดดูว่ายังเป็นไหม
โพสต์นี้ได้รับคำขอบคุณจาก: Chatthadon

5
ถ้าคุุณต้องการให้ค้นหาจากชื่อ ผมว่าควรตั้งชื่อ textbox ในตัวรายงานจากเดิม textbox ชื่อ Name ให้เป็น txtName จะดีกว่านะครับ และข้อมูล Name จะเป็นตัวอักษร ไม่ใช่ ตัวเลข คำสั่งก็จะต้องมี สัญลักษณ์เพิ่ม เข้ามานิดนึงแบบนี้ครับ

DoCmd.OpenForm "test", acNormal, , "Name='" & txtName & "'"
โพสต์นี้ได้รับคำขอบคุณจาก: Chatthadon

6
ตอนนี้กดปุ่มไหนที่หน้า Report ก็ไปยัง Form หน้าแรกตลอดเลยครับ
อยากให้กดปุ่มที่ Report แล้วลิงค์ไป Form หน้านั้นๆได้ครับ
เช่นกดที่ ปุ่ม Report A ให้ไปเปิดข้อมูลตัว A ที่ฟอร์มครับ

https://drive.google.com/file/d/1szkDNrcfjVWPXkzXwPnMAQG1adhd_tbc/view?usp=sharing.
 
ขอบคุณมากครับ

ที่คุณอธิบายมา คือการเปิดฟอร์มแล้วให้ Filter ข้อมูลใน Record บนฟอร์มให้ ตรงกับ Record ของรายงาน ใช่ไหมครับ
ถ้าใช่ก็แค่เพิ่ม กำหนดให้ Filter ข้อมูลจาก ID ครับโดยใส่ Code เพิ่มนิดหน่อยครับเป็นแบบนี้

โค๊ด: [Select]
Private Sub Command7_Click()
DoCmd.OpenForm "test", acNormal, , "ID=" & ID & ""
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: Chatthadon

หน้า: [1]