PDA

View Full Version : Back up گرفتن از بانک اکسس در VB



tci.beh86
شنبه 07 فروردین 1389, 20:24 عصر
سلام دوستان من کاربر تازه این سایت هستم

با عرض پوزش در خواست کد back up از بانک access در vb را داشتم
ممنون میشم کسی کمکم کنه
جستجو کردم ولی نبوده
فقط برای بانک SQL پیدا کردم
:لبخندساده:

حمید محمودی
شنبه 07 فروردین 1389, 20:35 عصر
سلام.مطمئنید که جستجو کردین و نیست. به هر حال یه روش خیلی ساده اینه که با کامون دیالوگ مسیر فایل بانک رو انتخاب کنید بعد با همون متد سیوش در یه مسیر دیگه با هر نامی که خاستین با یه تابع برای کپی اونو اونجا سیوش کنین



Option Explicit
Public Type SHFILEOPSTRUCT
hWnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Boolean
hNameMappings As Long
lpszProgressTitle As String
End Type

Public Declare Function SHFileOperation Lib "shell32.dll" Alias _
"SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Public Const FO_COPY = &H2
Public Const FOF_ALLOWUNDO = &H40

Public Sub ShellCopyFile(Source As String, Dest As String)
Dim result As Long
Dim fileop As SHFILEOPSTRUCT
With fileop
.hWnd = 0
.wFunc = FO_COPY
.pFrom = Source & vbNullChar & vbNullChar
.pTo = Dest & vbNullChar & vbNullChar
.fFlags = FOF_ALLOWUNDO
End With
result = SHFileOperation(fileop)
If result <> 0 Then
MsgBox Err.LastDllError, vbCritical Or vbOKOnly
Else
If fileop.fAnyOperationsAborted <> 0 Then
MsgBox "Operation Failed", vbCritical Or vbOKOnly
End If
End If
End Sub

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

sina26
یک شنبه 08 فروردین 1389, 10:00 صبح
سلام دوستان من کاربر تازه این سایت هستم

با عرض پوزش در خواست کد back up از بانک access در vb را داشتم
ممنون میشم کسی کمکم کنه
جستجو کردم ولی نبوده
فقط برای بانک SQL پیدا کردم
:لبخندساده:
سلام
دوست گرامی براتون یه برنامه میذارم که هم بکاپ میگیره و هم باز گردانی میکنه

HjSoft
یک شنبه 08 فروردین 1389, 10:03 صبح
فقط یک مشکلی که برای بازگردانی و یا پشتیبانی من باهاش مشکل داشتم این هست که اگر بانک در حال استفاده باشه نه میشه کپی گرفت و نه برگردوند . البته من به این مشکل تازگی ها بر خوردم ، قبلا چنین مشکلی نداشتم . اما شما هم حواستون باشه به این مشکل بر نخورین . راه حلش هم اینه که مثل من یک برنامه جدا واسه پشتیبان گیری یک برنامه مستقل ایجاد کنید .

موفق باشید ./

tci.beh86
دوشنبه 09 فروردین 1389, 15:44 عصر
سلام دوست عزیز آقای dcamera من این سورسی رو که برام گذاشتید رو کپی کردم

ببینبد طریقه کپی درسته یا نه؟ اول از همه تشکر میکنم که جوابمو دادید

در بخش General :
Option Explicit
Public Type SHFILEOPSTRUCT
hWnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Boolean
hNameMappings As Long
lpszProgressTitle As String
End Type

و در command اجرایی این بخش ::

Public Declare Function SHFileOperation Lib "shell32.dll" Alias _
"SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Public Const FO_COPY = &H2
Public Const FOF_ALLOWUNDO = &H40

Public Sub ShellCopyFile(Source As String, Dest As String)
Dim result As Long
Dim fileop As SHFILEOPSTRUCT
With fileop
.hWnd = 0
.wFunc = FO_COPY
.pFrom = Source & vbNullChar & vbNullChar
.pTo = Dest & vbNullChar & vbNullChar
.fFlags = FOF_ALLOWUNDO
End With
result = SHFileOperation(fileop)
If result <> 0 Then
MsgBox Err.LastDllError, vbCritical Or vbOKOnly
Else
If fileop.fAnyOperationsAborted <> 0 Then
MsgBox "Operation Failed", vbCritical Or vbOKOnly
End If
End If
End Sub
اینو گذاشتم ولی کار نمی کنه
؟؟؟؟؟؟

butterfly8528
دوشنبه 09 فروردین 1389, 23:40 عصر
فقط یک مشکلی که برای بازگردانی و یا پشتیبانی من باهاش مشکل داشتم این هست که اگر بانک در حال استفاده باشه نه میشه کپی گرفت و نه برگردوند . البته من به این مشکل تازگی ها بر خوردم ، قبلا چنین مشکلی نداشتم . اما شما هم حواستون باشه به این مشکل بر نخورین . راه حلش هم اینه که مثل من یک برنامه جدا واسه پشتیبان گیری یک برنامه مستقل ایجاد کنید .

سلام .

این مشکل به خاطر این پیش میاد که بعد از انجام عمل مورد نظر ارتباط با بانک رو قطع نمیکنید .

بهتره ارتباط با بانک رو قبل از انجام هر عملی مثل اضافه ، حذف ، آپدیت و... بر قرار کنید و بعد از پایان کار ارتباط با بانک رو قطع کنید .

موفق باشید .

HjSoft
سه شنبه 10 فروردین 1389, 08:30 صبح
سلام .

این مشکل به خاطر این پیش میاد که بعد از انجام عمل مورد نظر ارتباط با بانک رو قطع نمیکنید .

بهتره ارتباط با بانک رو قبل از انجام هر عملی مثل اضافه ، حذف ، آپدیت و... بر قرار کنید و بعد از پایان کار ارتباط با بانک رو قطع کنید .

موفق باشید .
به این حواسم بود ، اما فکر کنم از ado ها اینطوری شده بود . در هر صورت شاید هم به همون دلیل باشه .
ممنون

rd.net
سه شنبه 10 فروردین 1389, 14:28 عصر
از دستور copyfile هم میشه استفاده کرد.

HjSoft
سه شنبه 10 فروردین 1389, 16:51 عصر
از دستور copyfile هم میشه استفاده کرد.
مگه راه دیگه ای هم داره ؟؟؟؟ همه این ها از CopyFile یا سایر Api های معروف که آخرشون به CopyFile میرسه استفاده می کنند .

rd.net
سه شنبه 10 فروردین 1389, 19:33 عصر
copy file که این همه کد نوشتن نمیخواد.

حمید محمودی
چهارشنبه 11 فروردین 1389, 02:50 صبح
سلام دوست عزیز آقای dcamera من این سورسی رو که برام گذاشتید رو کپی کردم ...



کار خاصی انجام نمیده.همون کپی هست. هم Backup هست و هم Restore

با fso و ... هم میشه.


اینم سورسی که براتون اماده کردم. این برنامه فایل بانک رو یعنی همون db.mdb از پوشه vb Project توی درایو C به درایو D کپی میکنه.

برای ریستور هم برعکس این عمل رو انجام میده.

موفق باشید.

HjSoft
چهارشنبه 11 فروردین 1389, 08:09 صبح
copy file که این همه کد نوشتن نمیخواد.
خوب ، این کد ها دارن Browser رو باز می کنند تا کاربر مسر پشتیبانش رو انتخاب کنه .

محسن شامحمدی
سه شنبه 17 فروردین 1389, 14:02 عصر
دوستان خطای هنگام کپی دیتابیس به این دلیل پیش میاد که دیتابیس در حالت استفاده باشه و این مشکل فقط واسه تابع filecopy درونی وی بی پیش میاد و دیگر توابع کپی فایل مثل کتابخانه FSO و یا توابع Api این مشکل را ندارند.