Page 1 of 1

การ upload file เพื่อลงใน SharePoint ผ่าน Userform

Posted: Wed Jun 22, 2022 4:18 pm
by daling2025
เนื่องจาก ต้องการ upload file เอกสารที่เราเลือกจาก ไดร์ส่วนตัวเรา เพื่อให้เป็นอยู่ที่ drive SharePoint ที่เราต้องการเก็บเอกสาร
โดย เบื้องต้นได้กำหนด ปุ่ม ให้ค้นหา และแสดงที่อยู่เบื่องต้นที่เราค้นหา ใน Textbox87 ลำดับต่อไปต้องการ คือ
1.ให้ upload file ไปที่ SharePoint ที่เราต้องการเก็บเอกสาร ไม่ทราบว่าต้องใช้ Code อย่างไรค่ะ
2. เมื่อ upload file ได้แล้ว กรณีที่เราต้องการค้นหา file ที่ upload ลงไปเพื่อเปิดดู ทำได้ไหมค่ะ ต้องใช้ code อะไรบ้างค่ะ เบื้องต้นกำหนดให้ลงค่าใน file
error ตรง objNet.MapNetworkDrive "A: ", SharepointAddress

Code: Select all

Private Sub CommandButton12_Click()

Dim SharepointAddress As String
Dim LocalAddress As String
Dim objNet As Object
Dim FS As Object
SharepointAddress = "https://sharepoint.com/teams/DCC"
LocalAddress = "Textbox.87.text"
Set objNet = CreateObject("WScript.Network")
Set FS = CreateObject("Scripting.FileSystemObject")

objNet.MapNetworkDrive "A: " , SharepointAddress

If FS.FileExists(LocalAddress) Then

FS.CopyFile LocalAddress, SharepointAddress
    
End If

objNet.RemoveNetworkDrive "A: "
Set objNet = Nothing
Set FS = Nothing

Dim ssheet As Worksheet
    Set ssheet = ThisWorkbook.Sheets("2022 DAR ")
    nr = ssheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
   
   Sheets("2022 DAR LOCK").Cells(nr, 1) = UserForm1.TextBox9.Value
   ssheet.Cells(nr, 77) = "A:)"

End Sub

Re: การ upload file เพื่อลงใน SharePoint ผ่าน Userform

Posted: Wed Jun 22, 2022 4:44 pm
by Xcelvba
เรียนผู้ถาม รวกวนแนบไฟล์มา เพื่อเพื่อนๆสมาชิกจะได้ช่วยกันตอบได้ง่ายครับ
ตัดเฉพาะส่วนสำคัญมาครับ

Re: การ upload file เพื่อลงใน SharePoint ผ่าน Userform

Posted: Wed Jun 22, 2022 5:51 pm
by daling2025
เพิ่มเติม file ค่ะ

Re: การ upload file เพื่อลงใน SharePoint ผ่าน Userform

Posted: Wed Jun 22, 2022 7:47 pm
by snasui
:D สิ่งที่ต้องทราบเป็นอันดับแรกคือ Path ใน SharePoint สามารถหาได้โดยเข้าไปยัง Path ที่ต้องการวางไฟล์ หากมีไฟล์ใด ๆ อยู่ก่อนแล้วจะสามารถเข้าไปดู Detail ได้โดยง่าย แต่หากยังไม่มีไฟล์ใดให้สร้างไฟล์ขึ้นมาสักไฟล์ก่อน จากนั้นทำตามภาพ
SharePointPath.jpg
เมื่อได้ Path มาแล้วค่อยนำมาเขียน Code ซึ่งสามารถเขียนให้ Code ทำงานได้เหมือนกับ Path ในเครื่อง ไม่ว่าจะจัดเก็บหรือเปิดไฟล์ขึ้นมาใช้งาน สำหรับ Path ตามที่เขียนมานั้น หากถูกต้องแล้วจะต้องสามารถเขียนให้จัดเก็บไฟล์และเปิดไฟล์จาก Path นั้นได้โดยตรงครับ

Re: การ upload file เพื่อลงใน SharePoint ผ่าน Userform

Posted: Thu Jun 23, 2022 8:55 am
by daling2025
มีที่เก็บไฟล์แล้วค่ะ อาจารย์ ตามที่แนบมาค่ะ แต่ไม่รู้ว่าจะใช้ Code เพื่อบันทึกไฟล์ลงไปยังที่เก็บ และกรณีค้นหาข้อมูลจะสามารถดึงกลับมาได้ยังไง รบกวนอาจารย์แนะนำด้วยค่ะ

Re: การ upload file เพื่อลงใน SharePoint ผ่าน Userform

Posted: Thu Jun 23, 2022 9:00 am
by snasui
:D Path นั้นมีค่าอะไร ทางที่ดีไปให้ถึงไฟล์แล้วเก็บ Path มา ตัดชื่อไฟล์ทิ้งไปนำเฉพาะ Path มาใช้ใน Code จากนั้นปรับ Code แล้วแนบไฟล์ที่ได้ปรับปรุง Code เรียบร้อยแล้วนำมาถามกันใหม่เฉพาะส่วนที่ติดปัญหาครับ

Re: การ upload file เพื่อลงใน SharePoint ผ่าน Userform

Posted: Thu Jun 23, 2022 10:27 am
by daling2025
ลอง Code ใหม่ ติด error ตามนี้ค่ะ FS.CopyFile LocalAddress, SharepointAddress

Code: Select all


Private Sub CommandButton12_Click()
 
Dim SharepointAddress As String
    Dim LocalAddress As String
    Dim FS As Object
    ' https://[company].sharepoint.com/teams/DCC/Shared%20Documents/Registration/Document%20for%20registration

    SharepointAddress = "\\sharepoint.com\teams\DCC\Shared%20Documents\Registration"

    LocalAddress = Application.GetOpenFilename("All Files (*.*), *.*")

    Set FS = CreateObject("Scripting.FileSystemObject")

    If FS.FileExists(LocalAddress) Then
        FS.CopyFile LocalAddress, SharepointAddress
    End If

End Sub

Re: การ upload file เพื่อลงใน SharePoint ผ่าน Userform

Posted: Thu Jun 23, 2022 1:20 pm
by snasui
:D ตัวอย่างการปรับ Code ครับ

Code: Select all

Private Sub CommandButton12_Click()
    Dim SharepointAddress As String
    Dim LocalAddress As String
    Dim FS As Object
    ' https://[company].sharepoint.com/teams/DCC/Shared%20Documents/Registration/Document%20for%20registration

    SharepointAddress = "\\sharepoint.com\teams\DCC\Shared%20Documents\Registration"

    LocalAddress = Application.GetOpenFilename("All Files (*.*), *.*")

    Set FS = CreateObject("Scripting.FileSystemObject")

    If FS.FileExists(LocalAddress) Then
        FS.CopyFile LocalAddress, SharepointAddress & "\" & VBA.Split(LocalAddress, "\")(UBound(VBA.Split(LocalAddress, "\")))
    End If
End Sub
สังเกตว่าในส่วนของ SharepointAddress ก็จะต้องเชื่อมด้วยชื่อไฟล์เข้าไปด้วยถึงจะเป็น Statement ที่ถูกต้อง หาก Copy ไปวางไม่ได้ให้ตรวจสอบเรื่องสิทธิ์ในการเข้าใช้งาน Path นี้ใน SharePoint นี้ว่ามีสิทธิ์หรือไม่ครับ

Re: การ upload file เพื่อลงใน SharePoint ผ่าน Userform

Posted: Thu Jun 23, 2022 2:38 pm
by daling2025
ยังติด error ที่เดิมค่ะ ปกติ upload ที่ share point โดยตรงได้อยู่ค่ะ ไม่น่าจะติดสิทธิ์ หรือตรงโครงสร้างของ Address ผิดตรงไหนหรือเปล่าค่ะ

Re: การ upload file เพื่อลงใน SharePoint ผ่าน Userform

Posted: Thu Jun 23, 2022 2:51 pm
by snasui
:D จาก Statement นี้ FS.CopyFile LocalAddress, SharepointAddress & "\" & VBA.Split(LocalAddress, "\")(UBound(VBA.Split(LocalAddress, "\")))

ลองเปลี่ยน SharepointAddress & "\" & VBA.Split(LocalAddress, "\")(UBound(VBA.Split(LocalAddress, "\"))) ให้เป็น Path ใน Local ที่มีอยู่จริง ถ้า Copy ได้ก็แสดงว่าส่วนประกอบนี้เมื่ออ้างอิงถึง SharePoint แล้วมีปัญหาคือโปรแกรมไม่รู้จัก Path นั้นครับ