กระทู้เก่าบอร์ด อ.Yeadram
1,379 8
URL.หัวข้อ /
URL
เรียกใช้สำรองฐานข้อมูลใน PoPup ฟอร์ม
ปกติเราสามารถสร้างเมนูสำรองฐานข้อมูลบนเมนูบาร์ได้ แต่ถ้าผมต้องการที่จะสร้างสำรองฐานข้อมูลให้อยู่บน PoPup ฟอร์ม ไม่ทราบว่าจะเรียกใช้คำสั่งได้อย่างไรครับ
8 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R22104
ลองอ่านลิงค์นี้ดูนะครับ http://www.thai-access.com/yeadram_view.php?topic_id=3309
2 @R22122
เรียน อาจารย์สันติสุขฯ ครับ ผมรบกวนผมใช้คำสั่งตามที่ อ. แนะนำ
แต่ access ผมเป็นนามสกุล accdb ลองแล้วปรากฏว่าขึ้น "File not found" หาไม่พบ ไม่ทราบว่าต้องแก้ไขคำสั่งอย่างไรครับ
Private Sub Command21_Click()
Dim oFSO As Object
Dim strDestination As String
'strDestination = "D:\TTT.mdb"
strDestination = "D:\TTT.accdb"
DBEngine.Idle
Set oFSO = CreateObject("Scripting.FileSystemObject")
'oFSO.CopyFile CurrentProject.Path & "B.mdb", strDestination
oFSO.CopyFile CurrentProject.Path & "B.accdb", strDestination
Set oFSO = Nothing
'Compact ä¿ÅìãËÁè´éÇÂ
Name strDestination As strDestination & ".cpk"
DBEngine.CompactDatabase strDestination & ".cpk", strDestination
Kill strDestination & ".cpk"
End Sub
แต่ access ผมเป็นนามสกุล accdb ลองแล้วปรากฏว่าขึ้น "File not found" หาไม่พบ ไม่ทราบว่าต้องแก้ไขคำสั่งอย่างไรครับ
Private Sub Command21_Click()
Dim oFSO As Object
Dim strDestination As String
'strDestination = "D:\TTT.mdb"
strDestination = "D:\TTT.accdb"
DBEngine.Idle
Set oFSO = CreateObject("Scripting.FileSystemObject")
'oFSO.CopyFile CurrentProject.Path & "B.mdb", strDestination
oFSO.CopyFile CurrentProject.Path & "B.accdb", strDestination
Set oFSO = Nothing
'Compact ä¿ÅìãËÁè´éÇÂ
Name strDestination As strDestination & ".cpk"
DBEngine.CompactDatabase strDestination & ".cpk", strDestination
Kill strDestination & ".cpk"
End Sub
3 @R22124
โค้ดนี้ทำงานโดย
1. เป็นการก๊อปปี้ไฟล์ B.accdb (ที่อยู่ในโฟลเดอร์เดียวกันกับไฟล์ที่โปรแกรมนี้ทำงาน) ไปลง D:\TTT.accdb
2. เปลี่ยนชื่อ D:\TTT.accdb ไปเป็น D:\TTT.accdb.cpk
3. Compact ไฟล์ D:\TTT.accdb.cpk แล้วเก็บกลับไปในชื่อ D:\TTT.accdb
4. ลบไฟล์ D:\TTT.accdb.cpk
ไม่แน่ใจว่าในขั้นที่ 1 คุณกำหนดชื่อไฟล์และพาธที่มันอยู่ถูกต้องหรือไม่ เช็คดูดีๆ อย่างไงก็ตาม ถ้าไฟล์ B.accdb เป็นไฟล์ที่เก็บเทเบิลที่โปรแกรมนี้ลิงค์ไปหา ผมไม่แนะนำให้ทำนะครับ ขั้นตอนที่ควรจะเป็นจะยุ่งยากกว่านี้ แต่ก็เพื่อความมั่นใจว่าไฟล์ B.accdb ที่ผ่านการ compact แล้วจะไม่เสียหายครับ
1. เป็นการก๊อปปี้ไฟล์ B.accdb (ที่อยู่ในโฟลเดอร์เดียวกันกับไฟล์ที่โปรแกรมนี้ทำงาน) ไปลง D:\TTT.accdb
2. เปลี่ยนชื่อ D:\TTT.accdb ไปเป็น D:\TTT.accdb.cpk
3. Compact ไฟล์ D:\TTT.accdb.cpk แล้วเก็บกลับไปในชื่อ D:\TTT.accdb
4. ลบไฟล์ D:\TTT.accdb.cpk
ไม่แน่ใจว่าในขั้นที่ 1 คุณกำหนดชื่อไฟล์และพาธที่มันอยู่ถูกต้องหรือไม่ เช็คดูดีๆ อย่างไงก็ตาม ถ้าไฟล์ B.accdb เป็นไฟล์ที่เก็บเทเบิลที่โปรแกรมนี้ลิงค์ไปหา ผมไม่แนะนำให้ทำนะครับ ขั้นตอนที่ควรจะเป็นจะยุ่งยากกว่านี้ แต่ก็เพื่อความมั่นใจว่าไฟล์ B.accdb ที่ผ่านการ compact แล้วจะไม่เสียหายครับ
4 @R22129
เรียน อ.สันติสุขฯ
- ขึ้น "File not found" ในขั้นตอน oFSO.CopyFile CurrentProject.Path & "B.accdb", strDestination ตัวโปรแกรมที่ต้องการให้ Copy อยู่ที่ "C:\test.accdb" และต้องการ Copy ไปเก็บไว้ที่ D:\TTT.accdb
- ผมต้องไปตั้งค่าที่ References หรือไม่ครับ ผมใช้ Access 2007 หรือต้องแก้ไขคำสั่งตรง oFSO.CopyFile CurrentProject.Path & "B.accdb", strDestination อย่างไรครับ ขอบคุณครับ
- ขึ้น "File not found" ในขั้นตอน oFSO.CopyFile CurrentProject.Path & "B.accdb", strDestination ตัวโปรแกรมที่ต้องการให้ Copy อยู่ที่ "C:\test.accdb" และต้องการ Copy ไปเก็บไว้ที่ D:\TTT.accdb
- ผมต้องไปตั้งค่าที่ References หรือไม่ครับ ผมใช้ Access 2007 หรือต้องแก้ไขคำสั่งตรง oFSO.CopyFile CurrentProject.Path & "B.accdb", strDestination อย่างไรครับ ขอบคุณครับ
5 @R22130
ก็แก้เป็น oFSO.CopyFile "C:\test.accdb", strDestination ครับ
6 @R22137
ขอบคุณมากครับ อ.สันติสุขฯ ทำได้แล้วครับ
และถ้าผมต้องการที่จะให้ใส่วันที่ที่ CopyFile ทุกครั้ง เช่น TTT.accdb-300557ไม่ทราบว่าผมจะต้องไปเชื่อมต่อวันที่ ( & Date ) ที่ตรงจุดไหนครับ ผมลองเชื่อมต่อวันที่แล้วยังไม่ได้
และถ้าผมต้องการที่จะให้ใส่วันที่ที่ CopyFile ทุกครั้ง เช่น TTT.accdb-300557ไม่ทราบว่าผมจะต้องไปเชื่อมต่อวันที่ ( & Date ) ที่ตรงจุดไหนครับ ผมลองเชื่อมต่อวันที่แล้วยังไม่ได้
7 @R22138
strDestination + "-" + Format$(date,"ddmmyy")
แต่ให้ระวังว่าถ้าเครื่องนั้นกำหนดรูปแบบปฏิธินของวินโดว์เป็นปี ค.ศ. จะได้ผลเป็น 300516 แทนครับ
แต่ให้ระวังว่าถ้าเครื่องนั้นกำหนดรูปแบบปฏิธินของวินโดว์เป็นปี ค.ศ. จะได้ผลเป็น 300516 แทนครับ
8 @R22144
ขอบพระคุณ อ.สันติสุขฯ ครับ
ผมทำได้ตามที่ต้องการแล้วครับโดยการแนะนำที่ดีมีประโยชน์มาก และไม่ต้องกังวนในเรื่องของฐานข้อมูลที่สูญหายครับ
ผมทำได้ตามที่ต้องการแล้วครับโดยการแนะนำที่ดีมีประโยชน์มาก และไม่ต้องกังวนในเรื่องของฐานข้อมูลที่สูญหายครับ
Time: 0.2970s