อยากทราบว่า Backup ไฟล์ยังไงคะ
กระทู้เก่าบอร์ด อ.Yeadram

 5,941   12
URL.หัวข้อ / URL
อยากทราบว่า Backup ไฟล์ยังไงคะ

คืออยากถามหน่อยนะคะว่า โค้ดในการ Backup ไฟล์ใน Access ใช้โค้ดว่าอะไรเหรอคะ ขอบคุณมากคะ

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

1 @R01200
Access ไม่มีตัวจัดการเรื่อง Backup เหมือนอย่างในฐานข้อมูลระดับใหญ่ๆ เราก็แค่ Copy ไฟล์ธรรมดานี่แหล่ะครับ หรืออาจใช้ Control Panel > Schedule Task เพื่อกำหนดเวลา Copy เอาไว้ให้วินโดว์มันทำเองก็ได้ แต่อย่างหนึ่งที่ควรคำนึงถึงก็คือ เราต้องไม่ให้มีคนใช้ไฟล์ฐานข้อมูลระหว่างที่มีการ Copy ไฟล์อยู่ ไม่เช่นนั้นไฟล์ที่ Copy ไปอาจเป็นไฟล์ที่ใช้ไม่ได้ก็เป็นไปได้ วิธีนี้อาจทำได้ง่ายๆด้วยการสั่ง Rename ชื่อไฟล์ฐานข้อมูลก่อนการ Copy แล้วแก้ไขชื่อกลับมาเหมือนเดิมหลัง Copy เสร็จก็ได้ครับ ทั้งหมดก็ทำโดยใช้คำสั่ง DOS Command นี่แหล่ะครับ

ตย.ก็เช่น

Rename DB.MDB Backup.MDB
Copy Backup.MDB C:\Backup Folder\DB.MDB
Rename Backup.MDB DB.MDB
2 @R01214
คือว่าทำแล้วมันเออเร่อนะคะ รบกวนทีนะคะฃ

ขอบคุณมากคะ
3 @R01215
คุณทำอะไรบ้าง แล้ว error ตรงไหน รหัสอะไร ข้อความว่าอย่างไร บอกรายละเอียดมาด้วย
4 @R01216
ขอร่วมแสดงความเห็นด้วยคนนะครับ
คือว่าผมยังนึกไม่ออกว่าคุณผึ้ง ต้องการโค้ดการ Backup ไฟล์ใน Access ไว้ใช้ในเหตุการอะไร หากเพียแค่ Backup ไฟล์ Access ที่เราสร้างไว้และมีข้อมูลแล้ว ที่ผมใช้อยู่ก็เพียง Copy ไฟล์ของเราไปไว้ที่โฟลเดอร์อื่นเป็นระยะๆ ก็เป็นการ Backup ไฟล์ไปในตัวอยู่แล้วนี่ครับ
5 @R01217
วิธีการหนึ่งที่ผมเคยสำรองข้อมูลคือ ให้โปรแกรมสร้างfolder และให้คัดลอกข้อมูลไปเก็บอีกที่หนึ่งดังนี้
สมมติว่าผมสำรอง c:\occheชื่อ dataocc.mdb ไปเก็บที่ c:\backupocche
1.คัดลอกfunction สำรอง นี้เก็บที่โมดูล
Function fCopy(strDest As String, strSrc As String)
Dim fs As Object, strTime As String
Set fs = CreateObject("Scripting.FileSystemObject")
fs.copyfile strDest, strSrc, True
End Function

2.สร้างปุ่มคำสั่งบนฟอร์ม
2.1ให้โปรแกรมสร้างFolder ก่อน สมมติให้ชื่อ backupocche
      เก็บไว้ที่"C:\backupocche"

Private Sub Command0_Click()
        Dim fold
        Set fold = CreateObject("Scripting.FileSystemObject")
        newFDR = "C:\backupocche"
        If Not fold.FolderExists(newFDR) Then
        fold.CreateFolder (newFDR)
        End If
        If MsgBox("ต้องการสำรองข้อมูล...", vbQuestion + vbOKCancel, "แจ้ง") = vbOK Then
        fCopy "C:\ocche\dataocc.mdb", "C:\backupocche\dataocc.mdb"
        MsgBox "สำรองเรียบร้อยแล้วเก็บอยู่ที่ C:\backupocche\dataocc.mdb", vbOKOnly, "แจ้ง"
        End If
End Sub

บรรทัดนี้บอกตำแหน่งสำรองตัวแรกคือแหล่งข้อมูล ตัวหลังคือแหล่งที่นำไปเก็บ
fCopy "C:\ocche\dataocc.mdb", "C:\backupocche\dataocc.mdb"
ไม่ทราบว่าต้องการแบบนี้เปล่าครับ
6 @R01219
ใช่คะขอบคุณมากนะคะ
7 @R01221
ความเห็นคุณ renoo น่าสนใจดีครับ แต่ขอถามต่อนิดนึงว่าวิธีการนี้สำรองเฉพาะข้อมูลอย่างเดียว หรือไปด้วยกันทั้งข้อมูลและตัวโปรแกรมด้วย สมมติว่าสำรองเฉพาะข้อมูลอย่างเดียว แล้วหากเราต้องการนำข้อมูลที่สำรองไว้ กลับมาใช้ใหม่ ต้องทำอย่างไรครับ
8 @R01224
การสำรองข้อมูลนั้นเราจะเขียนไฟล์ตัวที่เป็น application หรือ database
แล้วแต่วัตถุประสงค์การใช้(อยู่ที่ตัวท่าน) ถ้าเฉพาะdatabase นั้น คุณอาจจะ
มีไฟล์setup ก็สามารถเขียนคำสั่งกลับมาใช้ใหม่ได้(เขียนสลับ) หากคุณใช้
ตัวdatabaseกับตัว app. เป็นตัวเดียวกันก็เพียงสำรองให้เก็บไว้อีกที่หนึ่ง
ผ่านปุ่มคำสั่ง

แต่โดยปกติที่ผมทำ
ผมสำรองเฉพาะfile ที่เป็นdatabase ส่วนตัว application นั้นผมไม่สำรอง
เพราะไม่มีเหตผลใดที่จะสำรองตัว application เปลืองพื้นที่เปล่า
แต่เมื่อจะนำมาใช้ ผมติดตั้งไฟล์setupก่อน(ใช้โปรแกรมinno setup5)
จากนั้นคลิกปุ่มคำสั่งนำเข้าโดยเขียนสลับกัน
เหตุผลที่ใช้ inno เข้าช่วยเพื่อให้ผู้ใช้งานสะดวกเมื่อนำโปรแกรมไปใช้
(เป็นเพียงความคิดเห็นที่ทำอยู่นะครับ)
9 @R01226
มีแบบใช้ winzip

ต้องขอขอบคุณผู้สร้างตัวอย่างครับ

ผมส่งไปไว้ที่ accboard@gmail.com ครับ
10 @R01230
ขอบคุณทุกคนเลยนะคะ ที่ร่วมแสดงความคิดเห็น
11 @R01235
มีแบบเวลาปิดโปรแกรมแล้ว สามารถส่งข้อมูลไป backup อัตโนมัติเลยได้เปล่าครับ
12 @R04214
อยากให้ backup ตอนไหนก็เอา code ที่เขาแนะนำไปเขียนใน event ต่างๆ ของ form หรือ control ได้เลยครับ เช่น เลื่อน record ไปข้างหน้าทุกครั้งให้ backup ทุกครั้งก็เอา code ไปเขียนแทรกใน code ของปุ่มเลื่อนไปข้างหน้า(ใส่ข้อมูลใน record ปัจจุบันเสร็จแล้วเลื่อนไปขึ้น record ใหม่ก็ backup ทันที) การ backup แบบอัตโนมัติโดยตั้งเวลาไว้เลยล่วงหน้า เช่น 10 นาทีต่อครั้ง กรณีนี้เสี่ยงเกินไปนะ อาจต้องซ่อมกันบ่อยๆ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3304s