PDA

View Full Version : سوال: گرفتن نسخه پشتیبان از برنامه



Juventus FC
چهارشنبه 26 فروردین 1394, 17:49 عصر
درود

من شاید 2 هزار روش برای گرفتن نسخه پشتیبان از برنامه با دیتابیس access تست کردم ولی همه اشکال و ایراد خیلی زیاد دارند

این قطعه کد برای گرفتن نسخه پشتیبان هست :


On Error GoTo l:
CommonDialog1.FileName = "BANK.Backup"
CommonDialog1.ShowSave
If CommonDialog1.FileName <> "" Then
A = CopyFile(App.Path & "\BANK.mdb", CommonDialog1.FileName, 0)
If A > 0 Then
MsgBox " ÚãáíÇÊ ÑÝÊä äÓÎå ÔÊíÈÇä ÈÇ ãæÝÞíÊ ÇäÌÇã ÔÏ", vbInformation, ""
Else
MsgBox " ÚãáíÇÊ ÑÝÊä äÓÎå ÔÊíÈÇä ÈÇ ãÔ˜á ãæÇÌå ÔÏå ÇÓÊ ", vbExclamation, ""
End If
End If
l:


این هم برای بازیابی اون :


On Error GoTo l:
CommonDialog1.FileName = ""
CommonDialog1.ShowOpen
If CommonDialog1.FileName <> "" Then
A = CopyFile(CommonDialog1.FileName, App.Path & "\BANK.mdb", 0)
If A > 0 Then
store.Adodc1.Refresh
infostore.Adodc1.Refresh
MsgBox "ÚãáíÇÊ ÈÇÒíÇÈí äÓÎå ÔÊíÈÇä ÈÇ ãæÝÞíÊ ÇäÌÇã ÔÏ ", vbInformation, ""
Else
MsgBox " ÚãáíÇÊ ÈÇÒíÇÈí ÝÇíá ÔÊíÈÇä ÈÇ ãÔ˜á ãæÇÌå ÔÏå ÇÓÊ ", vbExclamation, ""
End If
End If
l:


دو تا مشکل وجود داره :

1) وقتی نسخه پشتیبان گرفته میشه یا بازیابی میشه ، وقتی میخوای به فرم درج کردن و ثبت رکورد ها بری ، اعلام میکنه که دیتابیس نیست در حالی که هست ولی پیداش نمیکنه باید از برنامه خارج بشی و کلا برنامه رو ببندی باز کنی تا درست بشه

2) اینکه در موقع گرفتن نسخه پشتیبان وقتی پشتیبان گرفتی اعلام میشه که با موفقیت انجام شد ولی وقتی پنجره رو هم میبندی دوباره همین پیغام نمایش داده میشه در حالی که باید بگه که عملیات با مشکل مواجه شده است.

isaac23
چهارشنبه 26 فروردین 1394, 18:18 عصر
دوست عزیز از این Ocxاستفاده کن xceedzip

هم فایل های بکاپ رو فشره میکننه هم امکانات وسیعی داره و جالب تر بهتر هستش

موفق باشی

ahmad abdoli
چهارشنبه 26 فروردین 1394, 18:22 عصر
سلام

اینارو هم امتحان کن

برای پشتیبان


On Error Resume Next
Dim fso1 As New Scripting.FileSystemObject
If fso1.FolderExists(fso1.GetFile(Text1.Text)) = True Then
fso1.CopyFile App.Path & "\dbase.mdb", Text1.Text
MsgBox "ÔÊíÈÇä íÑí ÈÇ ãæÝÞíÊ ÇäÌÇã ÔÏ", vbOKOnly, ""
Else
MsgBox "æÔå ãæÑÏ äÙÑ ãæÌæÏ äãí ÈÇÔÏ", vbOKOnly, ""
End If


برای باز یابی


On Error Resume Next
Dim fso1 As New FileSystemObject
If fso1.FolderExists(fso1.GetFile(Text1.Text)) = True Then
fso1.CopyFile Text1.Text, App.Path & "\dbase.mdb"
MsgBox "ÈÇÒíÇÈí ÇØáÇÚÇÊ ÈÇ ãæÝÞíÊ ÇäÌÇã ÔÏ", vbOKOnly, ""

Else
MsgBox "æÔå ãæÑÏ äÙÑ ãæÌæÏ äãí ÈÇÔÏ", vbOKOnly, ""
End If

isaac23
چهارشنبه 26 فروردین 1394, 18:31 عصر
این روشی که شما میگید درسته اما زمانی که بکاپ گرفته بشه میشه راحت باز دستکاری کرد ... بهتره پسوند فایل عوض بشه و زمان بازیابی برگرده به حالت اولش واینکه به فرض مثال من در برمامه از چند فایل اکسس استفاده کردم مثلا 8 تا چطوری اینا رو تو یک فایل بکاپ بریزم و پسوندش رو عوض کنم یعنی یه فایل ایجاد بشه و نه 8 تا فایل اکسس کنار هم با پسوند خودش


اون فایلی که گفتم استفاده کنید تمام این خصوصیات رو داره و امکان رمز گذاری و فشرده سازی و خیلی چیزی های دیگه.. موفق باشید.


130357

YasserDivaR
پنج شنبه 27 فروردین 1394, 20:53 عصر
Private Declare Function GetActiveWindow Lib "user32" () As Long
Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long

پشتیبان گیری



On Error GoTo l:

CommonDialog1.CancelError = False
CommonDialog1.DialogStyle = 1
CommonDialog1.flags = 0
CommonDialog1.Filter = "(*.Yasser Divar Backup)|*.YDB"
CommonDialog1.DialogTitle = "ÔÊíÈÇä íÑí ÇÒ ÏÇÏå åÇ"
CommonDialog1.ShowSave
If CommonDialog1.FileName <> "" Then
a = CopyFile(App.Path & "\data.mdb", CommonDialog1.FileName, 0)
If a > 0 Then
TaskDialog.Reset
TaskDialog.MessageBoxStyle = True
TaskDialog.WindowTitle = "ÔÊíÈÇä íÑí"
TaskDialog.MainInstructionText = "ÔÊíÈÇä íÑí ÈÇ ãæÝÞíÊ ÇäÌÇã ÔÏ"
TaskDialog.ContentText = UAC.FlatEdit1.Text & " ÚÒíÒ ÚãáíÇÊ ÔÊíÈÇä íÑí ÇÒ ÏÇÏå åÇí ãæÌæÏ ÏÑ ÈÇä˜ ÇØáÇÚÇÊí ÎÇØÑå äæíÓ ÈÇ ãæÝÞíÊ ÇäÌÇã ÔÏ "
TaskDialog.FooterText = "ÒãÇä Êåíå ÝÇíá ÏÑ ãæÑÎå " & FileLastAccessed(CommonDialog1.FileName)
TaskDialog.MessageBoxStyle = True
TaskDialog.MainIcon = xtpTaskIconInformation
TaskDialog.FooterIcon = xtpTaskIconInformation
TaskDialog.RtlLayout = True
TaskDialog.EnableMarkup = True
TaskDialog.EnableCommandLinks = True
TaskDialog.VerifyCheckState = False
TaskDialog.ShowCommandLinkIcons = True
TaskDialog.AddButton "ÞÈæá", 166
TaskDialog.ShowDialog
CommonDialog1.FileName = ""
Else
TaskDialog.Reset
TaskDialog.MessageBoxStyle = True
TaskDialog.WindowTitle = "ÔÊíÈÇä íÑí"
TaskDialog.MainInstructionText = "ÔÊíÈÇä íÑí ÈÇ ÎØÇ ãæÇÌå ÔÏ"
TaskDialog.ContentText = UAC.FlatEdit1.Text & " ÚÒíÒ Ííä ÚãáíÇÊ ÔÊíÈÇä íÑí ÇÒ ÏÇÏå åÇí ãæÌæÏ ÏÑ ÈÇä˜ ÇØáÇÚÇÊí ÎÇØÑå äæíÓ ÎØÇíí ÑÎ ÏÇÏå ÇÓÊ æ ÚãáíÇÊ ÈÏÑÓÊí ÇäÌÇã äÔÏå áØÝÇ ãÓíÑ æ äÇã ÝÇíá ÑÇ ãÌÏÏÇ ÈÑÑÓí äãÇííÏ "
TaskDialog.FooterText = "ÒãÇä Êåíå ÝÇíá ÏÑ ãæÑÎå " & FileLastAccessed(CommonDialog1.FileName)
TaskDialog.MessageBoxStyle = True
TaskDialog.MainIcon = xtpTaskIconWarning
TaskDialog.FooterIcon = xtpTaskIconInformation
TaskDialog.RtlLayout = True
TaskDialog.EnableMarkup = True
TaskDialog.EnableCommandLinks = True
TaskDialog.VerifyCheckState = False
TaskDialog.ShowCommandLinkIcons = True
TaskDialog.AddButton "ÞÈæá", 167
TaskDialog.ShowDialog
CommonDialog1.FileName = ""
End If
End If
l:


بازیابی



On Error GoTo l:

CommonDialog1.CancelError = False
CommonDialog1.DialogStyle = 1
CommonDialog1.flags = 0
CommonDialog1.Filter = "(*.Yasser Divar Backup)|*.YDB"
CommonDialog1.DialogTitle = "ÈÇÒíÇÈí ÏÇÏå åÇ"
CommonDialog1.ShowOpen
If CommonDialog1.FileName <> "" Then
a = CopyFile(CommonDialog1.FileName, App.Path & "\data.mdb", 0)
If a > 0 Then
TaskDialog.Reset
TaskDialog.MessageBoxStyle = True
TaskDialog.WindowTitle = "ÈÇÒíÇÈí"
TaskDialog.MainInstructionText = "ÈÇÒíÇÈí ÈÇ ãæÝÞíÊ ÇäÌÇã ÔÏ"
TaskDialog.ContentText = UAC.FlatEdit1.Text & " ÚÒíÒ ÚãáíÇÊ ÈÇÒíÇÈí ÏÇÏå åÇí ÈÇä˜ ÇØáÇÚÇÊí ÎÇØÑå äæíÓ ÈÇ ãæÝÞíÊ ÇäÌÇã ÔÏ "
TaskDialog.FooterText = "ÒãÇä Êåíå ÝÇíá ÏÑ ãæÑÎå " & FileLastAccessed(CommonDialog1.FileName)
TaskDialog.MessageBoxStyle = True
TaskDialog.MainIcon = xtpTaskIconInformation
TaskDialog.FooterIcon = xtpTaskIconInformation
TaskDialog.RtlLayout = True
TaskDialog.EnableMarkup = True
TaskDialog.EnableCommandLinks = True
TaskDialog.VerifyCheckState = False
TaskDialog.ShowCommandLinkIcons = True
TaskDialog.AddButton "ÞÈæá", 168
TaskDialog.ShowDialog
CommonDialog1.FileName = ""
Else
TaskDialog.Reset
TaskDialog.MessageBoxStyle = True
TaskDialog.WindowTitle = "ÈÇÒíÇÈí"
TaskDialog.MainInstructionText = "ÈÇÒíÇÈí ÈÇ ÎØÇ ãæÇÌå ÔÏ"
TaskDialog.ContentText = UAC.FlatEdit1.Text & " ÚÒíÒ Ííä ÚãáíÇÊ ÈÇÒíÇÈí ÏÇÏå åÇí ÈÇä˜ ÇØáÇÚÇÊí ÎÇØÑå äæíÓ ÎØÇíí ÑÎ ÏÇÏå ÇÓÊ æ ÚãáíÇÊ ÈÏÑÓÊí ÇäÌÇã äÔÏå áØÝÇ ãÓíÑ æ äÇã ÝÇíá ÑÇ ãÌÏÏÇ ÈÑÑÓí äãÇííÏ "
TaskDialog.FooterText = "ÒãÇä Êåíå ÝÇíá ÏÑ ãæÑÎå " & FileLastAccessed(CommonDialog1.FileName)
TaskDialog.MessageBoxStyle = True
TaskDialog.MainIcon = xtpTaskIconWarning
TaskDialog.FooterIcon = xtpTaskIconInformation
TaskDialog.RtlLayout = True
TaskDialog.EnableMarkup = True
TaskDialog.EnableCommandLinks = True
TaskDialog.VerifyCheckState = False
TaskDialog.ShowCommandLinkIcons = True
TaskDialog.AddButton "ÞÈæá", 169
TaskDialog.ShowDialog
CommonDialog1.FileName = ""
End If
End If
l:


Private Sub Form_Activate()
On Error Resume Next

'frm_management.Adodc1.Refresh