เดือนก่อน ผม update ฐานข้อมูล Access ที่ใช้กันในแผนก แล้ว share ให้ทีมใช้ และเจอปัญหามีข้อความเตือน ดังภาพด้านบน
คือมี SAVE CHANGES Save your changes to the server. พร้อมปุ่ม Save to SharePoint Site ให้กด
ซึ่งก็ไม่มีผลต่อการใช้งานอะไรหรอก แต่มันดูแปลก ๆ สำหรับคนใช้งาน เลยลองค้นหาวิธีแก้ และอยากเขียนแชร์ไว้เตือนความจำตนเอง และเผื่อเป็นประโยชน์กับทุกคน
สาเหตุก็คือ บางทีเราไป Save ไฟล์ไว้ใน SharePoint หรือบางทีก็ OneDrive นี่ล่ะ และระบบก็เพิ่ม Property หนึ่งให้กับไฟล์เรา ทีนี้ Access ก็เลยคอยเตือน
อย่างไรก็ตาม ตามคำแนะนำเขาก็ไม่แนะนำให้เราใช้ Access ทั้งใน SharePoint และ OneDrive อยู่แล้วล่ะ แต่กรณีของผมคือ ผม save ทุกอย่างไว้ใน OneDrive เลยเจอปัญหานี้
วิธีแก้คือ เราต้องเขียน VBA code เพื่อลบ Property นี้ออก โดยใช้คำสั่งนี้
CurrentDb.Properties.Delete "PublishURL"
แต่ก็จะไปเจอปัญหาว่า เมื่อเปิด Access มาใช้งานรอบถัดไป จะขึ้น Error 😂 เนื่องจากพอลบไปแล้ว รอบถัดไประบบก็จะเตือนว่า Property ที่สั่งให้ลบนี้ไม่มีนะ
ซึ่งวิธีแก้ปัญหามี 2 วิธี คือ 1. ลบโค้ดที่ใส่ไปออกซะ กับ 2. คือ เขียนโค้ดเพิ่มให้เช็คว่ามี Property ที่ชื่อ “PublishURL” อยู่ไหม? หากมีให้ลบ ถ้าไม่มีก็แล้วไป จะได้โค้ดประมาณนี้
Sub deletePublishUrl()
If propertyExists("PublishURL") Then
CurrentDb.Properties.Delete "PublishURL"
End If
End Function
Private Function propertyExists(ByVal propName As String) As Boolean
propertyExists = False
Dim prop As Variant
For Each prop In CurrentDb.Properties
If prop.Name = propName Then
propertyExists = True
End If
Next prop
End Function
โดยโค้ดประกอบไปด้วย 2 ส่วนคือ Sub-procedure ที่ชื่อ deletePublishUrl เป็นตัวเรียกใช้งานฟังก์ชันที่ชื่อ propertyExists อีกที และต้องใส่อาร์กิวเมนต์เป็นชื่อ Property ที่เราต้องการตรวจสอบเข้าไป ซึ่งในที่นี้คือ “PublishURL”
หากมี Property นี้ ฟังก์ชันก็จะให้ค่ากลับมาเป็นจริง (TRUE) ซึ่งจะทำให้ขั้นตอนทดสอบค่า IF ของ Sub-procedure ที่ชื่อ deletePublishUrl เป็นจริง แล้วค่อยสั่งให้คำสั่ง CurrentDb.Properties.Delete "PublishURL"
ทำงาน
หากฟังก์ชัน propertyExists ให้ค่ากลับมาเป็นเท็จ (False) คำสั่งส่วนนี้ก็จะถูกข้ามไป
เพียงเท่านี้ก็เรียบร้อยครับ ตอนนี้ผมยังไม่เจอปัญหามีข้อความเตือนขึ้นมาอีกนะ หวังว่าจะเป็นประโยชน์กับทุกคน
หากมีปัญหาอะไรยังไง comment ไว้ได้เลยครับ 😁
Leave a Reply