การ Link ข้อมูลจากไฟล์ .DAT
กระทู้เก่าบอร์ด อ.Yeadram

 4,797   7
URL.หัวข้อ / URL
การ Link ข้อมูลจากไฟล์ .DAT

พอดีผมต้องการสร้าง Table Link ที่ link ข้อมูลจากไฟล์(text file)ที่เป็นนามสกุล .dat แบบตรงได้ไหมครับ

พอดีผมเปิดไฟล์ .dat ดูแล้วเป็น Text file ธรรมดา

ถ้าผมเปลี่ยนนามสกุลเป็น .txt จะสามารถ link ได้ทันทีเลย

แต่ผมอยากจะ link จากชื่อเดิมของมันไม่อยากมาเปลี่ยนนามสกุลพอมีทางใหมครับ

หรือจะใช้วิธีเขียน script ให้access import เข้ามาก็ได้นะครับ

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

1 @R00786
ทำได้โดยการสร้าง hard link ขึ้นมา ด้วยคำสั่งที่ command prompt

fsutil hardlink create

เช่น

fsutil hardlink create c:\data\file.txt c:\data\file.dat

คุณสมบัติคือไฟล์เดียวแต่มีมากกว่าหนึ่งชื่อ จะอยู่ folder เดียวกันก็ได้ ลบไฟล์ใดไฟล์หนึ่ง(แม้แต่ลบไฟล์ต้นฉบับโดยไม่ลง recycle bin) เราก็ยังเข้าถึงไฟล์จากอีกชื่อหนึ่งได้ แก้ไขที่ใดที่หนึ่ง เมื่อเรียกดูจากอีกไฟล์ก็จะเห็นการเปลี่ยนแปลงเช่นกัน
2 @R00787
ลืมบอกไปว่า ข้อจำกัดเดียวคือต้องเป็น drive เดียวกันครับ
3 @R00788
โอ้วว ความรู้ใหม่ ขอบคุณมากครับ
เดี๋ยวต้องลอง
- จะอยู่ในโฟลเดอร์เดียวกันก็ได้ (แสดงว่า เอาสำเนาไปแอบไว้ที่ไหนก็ได้)
- แล้วถ้าให้ตัวหนึ่ง เป็นปกติ ตัวหนึ่ง เป็น 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 ได้นะครับ
6 @R05928
ขอต่อด้วยนะครับ

ของผม 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 แทนก็ได้ครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3270s