เทคนิคง่ายที่ผมลองใช้แล้วแก้ปัญหาแชร์ไฟล์ access.a
กระทู้เก่าบอร์ด อ.Yeadram

 3,757   5
URL.หัวข้อ / URL
เทคนิคง่ายที่ผมลองใช้แล้วแก้ปัญหาแชร์ไฟล์ access.a

ผมมีปัญหาที่ว่า เปิด Form เดียวกัน 3 เครื่องแล้วเกิด Error เรื่อง สิทธิ์ในการใช้งานโปรแกรม (เอกสิทธิ์)

เมื่อหลายวันก่อนได้ทำวิธีดังนี้เพื่อแก้ปัญหาเวลาแชร์ไฟล์ access.accdb
1. เปิดโปรแกรม access > ตัวเลือก > การตั้งค่าไคลเอนต์ > ขั้นสูง > โหมดการเปิดเริ่มต้น เลือก "ใช้ร่วมกัน"

2. ใช้คำสั่ง On Error อ่านเพิ่มเติม http://allenbrowne.com/ser-23a.html

3. ถ้าคุณใช้ VBA CODE ให้แก้
Private Sub Name()
...
   End Sub
เป็น
Public Sub Name()
....
   End Sub

ผิดพลาดยังก็ขออภัยด้วยนะครับ แต่ผมใช้วิธีนี้แล้ว แก้ปัญหาได้จริงๆ

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

1 @R17278
นี่ไม่ใช่วิธีที่เขาทำกันนะครับ ลองไปหาดูจากกระทู้เก่าด้วยคำว่า front end back end ดูครับ
2 @R17288
อ.สันติสุข ค่ะช่วยหาวิธีทำ Front end Back end วิธีติดตั้งทั้งเครื่องเซิฟเวอร์และเครื่องไคลเอ็นต์ เป็นขั้นตอนๆ ให้หน่อยค่ะ คือหนูหาจากในเว็บนี้แล้วก็มีแต่ access รุ่นเก่าๆ อะค่ะ ตอนนี้หนูใช้ access 2010 ต้องการวิธีติดตั้งที่ถูกต้อง อะค่ะ
3 @R17291
วิธีก็ไม่แตกต่างนี่ครับ ทำเหมือนกันเลย ทำไม่ได้หรือติดปัญหายังไงหรือครับ
4 @R17297
http://www.thai-access.com/yeadram_view.php?topic_id=771
จากกระทู้ด้านบนหนูลองอ่านๆดูแล้วก็งงๆ ๆ อะค่ะ
อะไรคือ MDE (หนูเดาว่าคือนามสกุลไฟล์) หนูใช้ access 2010 ก็น่าจะหมายถึง ACCDB

หนูลองทำเล่นๆดูนะค่ะว่า
*หนูสร้าง Folder ไว้สองอัน ชื่อ FEDB และ BEDB บนเครื่องเซิฟเวอร์
1. หนู ก๊อปไฟล์ Access.accdb จากเครื่องหนู ไปไว้ที่ Folder FEDB บนเครื่องเซิฟเวอร์แล้ว ทำการ split database โดยแยก Access_be.accdb ไว้ที่ Folder BEDB แล้วทำการเชื่อมโยงตารางเรียบร้อยแล้ว
*หนูลองเพิ่มข้อมูลในตารางของ Access.accdb ปรากฏว่าข้อมูลใน Access_be.accdb ก็เพิ่มด้วยเช่นกัน
2. จากนั้นหนูก็ไปทำ shotcut ไฟล์ Access.accdb ไว้ที่เครื่อง Client เพื่อแชร์ให้คนอื่นๆใช้
*หนูทำวิธีนี้ถูกต้องไหมค่ะถ้าแก้ก็แก้ Access.accdbใช่ไหมค่ะ และ อยากทราบว่า ถ้าหนูต้องการแก้ไขโค้ดหน้าฟอร์มในขณะที่เครื่องอื่นๆยังใช้งานอยู่ หนูจะแก้โค้ดได้เลยหรือเปล่า แล้วข้อมูลจะบันทึกหรือมีปัญหาอะไรหรือเปล่า

รบกวนอาจารย์ช่วย แนะนำหน่อยนะค่ะ
5 @R17303
ขั้นตอนหน่ะถูก แต่เวลาที่ Access ถามว่าเราจะลิงค์เทเบิลมาจาก back end ไฟล์ไหน คุณต้องเลือกมาจาก แชร์โฟล์เดอร์บนเครื่องเซิฟเวอร์ ไม่ใช่จาก C:\ ... \BEDB\Access_be.accdb โดยตรง แม้ว่าแชร์โฟลเดอร์และการอ้างชื่อไดรฟ์ คือเครื่องเดียวกันก็ตาม แต่ Access.accdb จะจำชื่อพาธแตกต่างกัน เมื่อเราเอา Access.accdb ไปใช้ที่เครื่องไคลแอนท์ มันก็จะลิงค์ไปหาแชร์โฟลเดอร์บนเซิฟเวอร์ได้ถูกต้อง แต่ถ้าให้จำเป็นชื่อไดรฟ์ มันก็จะไปหาฐานข้อมูลบนไดรฟ์ของไคลแอนท์แทน ซึ่งแน่นอนว่าหาไม่เจอ

อย่างไรก็ตามเรามักจะไม่ใช้วิธีแชร์ไฟล์ Access.accdb แล้วทำเป็น shortcut ลิงค์มาใช้ที่เครื่องไคลแอนท์ แต่เราจะใช้ .MDE (หรือ .ACCDE) ซึ่งเป็นไฟล์ที่ Access นำเอา source code ออกจากไฟล์ .MDB (หรือ .ACCDB) แล้ว ไปติดตั้งไว้ที่เครื่องไคลแอนท์แต่ละเครื่องเพื่อให้ผู้ใช้ได้ใช้แทนการใช้ .MDB (หรือ .ACCDB) โดยตรง เพราะ 1. ระบบอาจจะรวนได้เมื่อมีผู้ใช้หลายๆคนพร้อมๆกัน และ 2. ผู้ใช้จะไม่สามารถแก้ไขโค้ดในโปรแกรมเราได้เลย ส่วนตัว .MDB (หรือ .ACCDB) เราก็ต้องเก็บเอาไว้เพื่อให้เราได้พัฒนาแก้ไขได้ต่อไป และต้องเก็บเอาไว้อย่าให้หาย เพราะไฟล์ .MDE (หรือ .ACCDE) ไม่สามารถแปลงกลับมาเป็น .MDB (หรือ .ACCDB) ได้อีกต่อไป

ตรงนี้ขอเล่าเพิ่มเติมว่า ถ้ามีเครื่องไคลแอนท์จำนวนมาก เมื่อเราแก้ไขโปรแกรมแต่ละครั้ง การจะก๊อปปี้ไฟล์ .MDE (หรือ .ACCDE) ไปให้เครื่องไคลแอนท์นั้นเป็นงานที่ไม่สะดวกเอาเสียเลย ดังนั้นในงานที่มีเครื่องเป็นจำนวนมากแล้ว (อย่างระบบนึงที่ผมทำ มีเครื่องไคลท์ที่ใช้พร้อมกันมากกว่า 30 เครื่อง กระจายในพื้นที่โรงงานอุตสาหกรรมขนาดใหญ่) เราจะต้องทำโปรแกรมเพื่อให้มันทำอัพเดตโปรแกรมบนเครื่องไคลแอนท์โดยอัตโนมัติไปด้วย จะต้องมีการเช็คเวอร์ชั่นของทั้งตัวโปรแกรมและของฐานข้อมูลให้เป็นคู่เวอร์ชั่นที่ถูกต้องด้วย ถ้าไม่ถูกต้องก็จะไม่ให้ใช้งานได้ แต่ถ้าเป็นระบบเล็กๆ เราก็คงต้องทำการก๊อปปี้ไปที่เครื่องไคลแอนท์แต่ละตัวเอาเอง หรือดีขึ้นมาก็สร้าง batch file ไว้ที่เครื่องไคลแอนท์ให้ผู้ใช้คลิกเพื่อก๊อปปี้แทนครับ

ปล. คะ ค่ะ เขียนให้มันถูกต้องด้วยครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3402s