กระทู้เก่าบอร์ด อ.Yeadram
4,785 7
URL.หัวข้อ /
URL
การ Link ข้อมูลจากไฟล์ .DAT
พอดีผมต้องการสร้าง Table Link ที่ link ข้อมูลจากไฟล์(text file)ที่เป็นนามสกุล .dat แบบตรงได้ไหมครับ
พอดีผมเปิดไฟล์ .dat ดูแล้วเป็น Text file ธรรมดา
ถ้าผมเปลี่ยนนามสกุลเป็น .txt จะสามารถ link ได้ทันทีเลย
แต่ผมอยากจะ link จากชื่อเดิมของมันไม่อยากมาเปลี่ยนนามสกุลพอมีทางใหมครับ
หรือจะใช้วิธีเขียน script ให้access import เข้ามาก็ได้นะครับ
พอดีผมเปิดไฟล์ .dat ดูแล้วเป็น Text file ธรรมดา
ถ้าผมเปลี่ยนนามสกุลเป็น .txt จะสามารถ link ได้ทันทีเลย
แต่ผมอยากจะ link จากชื่อเดิมของมันไม่อยากมาเปลี่ยนนามสกุลพอมีทางใหมครับ
หรือจะใช้วิธีเขียน script ให้access import เข้ามาก็ได้นะครับ
7 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R00787
ลืมบอกไปว่า ข้อจำกัดเดียวคือต้องเป็น drive เดียวกันครับ
3 @R00788
โอ้วว ความรู้ใหม่ ขอบคุณมากครับ
เดี๋ยวต้องลอง
- จะอยู่ในโฟลเดอร์เดียวกันก็ได้ (แสดงว่า เอาสำเนาไปแอบไว้ที่ไหนก็ได้)
- แล้วถ้าให้ตัวหนึ่ง เป็นปกติ ตัวหนึ่ง เป็น hide ก็น่าจะได้ใช่มั้ย ครับ
ก็ถามๆ เผื่อๆ ครับยังไงผมก็จะลองหาคำตอบเองด้วยอยู่แล้ว
แต่บอกตรงๆ ครับ นี่ใหม่มากสำหรับผม แตกหน่อแตกกอ คิดต่อยอดไปได้อีกหลายเรื่องนะเนี่ย อิอิ
เดี๋ยวต้องลอง
- จะอยู่ในโฟลเดอร์เดียวกันก็ได้ (แสดงว่า เอาสำเนาไปแอบไว้ที่ไหนก็ได้)
- แล้วถ้าให้ตัวหนึ่ง เป็นปกติ ตัวหนึ่ง เป็น hide ก็น่าจะได้ใช่มั้ย ครับ
ก็ถามๆ เผื่อๆ ครับยังไงผมก็จะลองหาคำตอบเองด้วยอยู่แล้ว
แต่บอกตรงๆ ครับ นี่ใหม่มากสำหรับผม แตกหน่อแตกกอ คิดต่อยอดไปได้อีกหลายเรื่องนะเนี่ย อิอิ
4 @R00789
แล้วเวลาที่ dat file ถูกทับหละครับมันจะเป็นอย่างไร พอดียังลองไม่ได้เนื่องจากติดสิทธิ์ admin เลยทำให้เรียก function fsutil ไม่ได้
5 @R00790
เป็นคำถามที่ดีมากครับ เมื่อมีการก๊อปปี้ไฟล์ใหม่ทับชื่อไฟล์เดิม ไม่ว่าจะไปทับชื่อไฟล์ตัวต้นฉบับ หรือชื่อไฟล์ใหม่ก็ตาม ทุกชื่อที่ลิงค์ไป ก็จะโยงไปยังไฟล์ข้อมูลใหม่ครับ แต่ห้ามทำการลบไฟล์เดิมก่อน แล้วก๊อปปี้ไปใหม่นะครับ เช่น มี file.dat และ file.txt ตาม ตย.ข้างบน แล้วคุณลบ file.dat แล้วค่อยก๊อปปี้จากที่อื่นมาเป็น file.dat อย่างนี้จะทำให้ file.txt ยังชี้ไปที่ไฟล์ file.dat ตัวเดิมครับ กลายเป็นไฟล์คนละไฟล์ครับ
อย่างไรก็ตามเนื่องจากผมไม่มีข้อมูลเรื่องนี้มากนัก จึงบอกไม่ได้ว่าจะมีกรณีไหนที่ทำให้เกิดปัญหาได้อีกบ้าง ดังนั้นสิ่งที่อยากให้ทำก็คือ ถ้าจะเอาไฟล์ใหม่มาทับไฟล์เดิม ให้ลบทุกๆลิงค์ที่ลิงค์ไปยังไฟล์เดิมออกให้หมดก่อน แล้วค่อย?๊อปปี้ทับ แล้วค่อยสร้าง hardlink ใหม่อีกที น่าจะปลอดภัยที่สุดครับ
หมายเหตุ : เฉพาะระบบไฟล์แบบ NTFS เท่านั้นที่จะทำ hardlink ได้นะครับ
อย่างไรก็ตามเนื่องจากผมไม่มีข้อมูลเรื่องนี้มากนัก จึงบอกไม่ได้ว่าจะมีกรณีไหนที่ทำให้เกิดปัญหาได้อีกบ้าง ดังนั้นสิ่งที่อยากให้ทำก็คือ ถ้าจะเอาไฟล์ใหม่มาทับไฟล์เดิม ให้ลบทุกๆลิงค์ที่ลิงค์ไปยังไฟล์เดิมออกให้หมดก่อน แล้วค่อย?๊อปปี้ทับ แล้วค่อยสร้าง hardlink ใหม่อีกที น่าจะปลอดภัยที่สุดครับ
หมายเหตุ : เฉพาะระบบไฟล์แบบ NTFS เท่านั้นที่จะทำ hardlink ได้นะครับ
6 @R05928
ขอต่อด้วยนะครับ
ของผม data เป็น .dat ทีนี้ชื่อไฟล์จะเปลี่ยนไปเลื่อยๆ ตามวันที่ ที่นี้ผมว่าจะทำ
ปุ่มคำสังให้มัน Runcommand prompt ใน access แล้วก็ใส่ fsutil hardlink create และค่าลงไปตามวันที่ไม่ทราบว่าจะทำยังไงให้ Runcommand prompt
ได้ครับ
ของผม data เป็น .dat ทีนี้ชื่อไฟล์จะเปลี่ยนไปเลื่อยๆ ตามวันที่ ที่นี้ผมว่าจะทำ
ปุ่มคำสังให้มัน Runcommand prompt ใน access แล้วก็ใส่ fsutil hardlink create และค่าลงไปตามวันที่ไม่ทราบว่าจะทำยังไงให้ Runcommand prompt
ได้ครับ
7 @R05929
สั่งด้วยคำสั่ง Shell "fsutil hardlink create ... "
แต่คำสั่ง Shell( ) ของ VBA เองเป็นแบบ asynchronous คือ Access จะไม่รอว่าคำสั่งที่สั่งไปนั้นจะทำงานเสร็จหรือยัง แต่ Access จะทำงานคำสั่งต่อไปทันทีเลย ดังนั้นถ้าคุณทำอะไรที่ใช้งานผลของการทำ hardlink นี้ทันทีต่อจากคำสั่ง Shell( ) ก็ไม่มีอะไรการันตีว่ามันจะทำได้หรือไม่นะครับ มีวิธีคือ รอสักครู่ก่อนทำงานต่อไป หรือใช้ ShellWait( ) ใน
http://www.thai-access.com/yeadram_view.php?topic_id=27 แทนก็ได้ครับ
แต่คำสั่ง Shell( ) ของ VBA เองเป็นแบบ asynchronous คือ Access จะไม่รอว่าคำสั่งที่สั่งไปนั้นจะทำงานเสร็จหรือยัง แต่ Access จะทำงานคำสั่งต่อไปทันทีเลย ดังนั้นถ้าคุณทำอะไรที่ใช้งานผลของการทำ hardlink นี้ทันทีต่อจากคำสั่ง Shell( ) ก็ไม่มีอะไรการันตีว่ามันจะทำได้หรือไม่นะครับ มีวิธีคือ รอสักครู่ก่อนทำงานต่อไป หรือใช้ ShellWait( ) ใน
http://www.thai-access.com/yeadram_view.php?topic_id=27 แทนก็ได้ครับ
Time: 0.3174s
fsutil hardlink create
เช่น
fsutil hardlink create c:\data\file.txt c:\data\file.dat
คุณสมบัติคือไฟล์เดียวแต่มีมากกว่าหนึ่งชื่อ จะอยู่ folder เดียวกันก็ได้ ลบไฟล์ใดไฟล์หนึ่ง(แม้แต่ลบไฟล์ต้นฉบับโดยไม่ลง recycle bin) เราก็ยังเข้าถึงไฟล์จากอีกชื่อหนึ่งได้ แก้ไขที่ใดที่หนึ่ง เมื่อเรียกดูจากอีกไฟล์ก็จะเห็นการเปลี่ยนแปลงเช่นกัน