แก้ปัญหา Access เตือน Save to SharePoint site

เดือนก่อน ผม 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 ไว้ได้เลยครับ 😁


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.