المشاركات : 1,545
المواضيع 33
الإنتساب : Jul 2016
السمعة :
255
الشكر: 6532
تم شكره 4339 مرات في 1696 مشاركات
31-10-16, 01:48 PM
(آخر تعديل لهذه المشاركة : 31-10-16, 02:46 PM {2} بواسطة sendbad100.)
احتاج كود لعمل نسخة من قاعدة بيانات اكسس عندما تكون مفتوحة او اثناء الاتصال بها.
انا استخدم FileCopy ولكن يلزم قطع الاتصال قبل النسخ.
هل يوجد طريقة
------------------------------
المشاركات : 128
المواضيع 3
الإنتساب : Mar 2013
السمعة :
13
الشكر: 89
تم شكره 784 مرات في 67 مشاركات
اخوية العزيز اذا تحب تنسخ ملف اثناء استخدامة فلازم تستخدم نسخ الملف كBinary
PHP كود :
Private Sub cmdBackupDataBase_Click() Dim X As String Open App.Path & "\file.mdb" For Binary As #1 Open App.Path & "\file_Copy.mdb" For Binary As #2 X = String(LOF(1) - 1, " ") Get #1, , X Put #2, , X Close End Sub
المشاركات : 2,008
المواضيع 58
الإنتساب : Oct 2014
السمعة :
1,005
الشكر: 31833
تم شكره 22865 مرات في 2187 مشاركات
01-11-16, 01:47 AM
(آخر تعديل لهذه المشاركة : 01-11-16, 01:51 AM {2} بواسطة Ahmed_Mansoor.)
أهلا بك أخي الكريم , جرب الثلاث طرق , الطريقة الأولى طريقة الأخ "محمد العبيدي" وهاذي طريقتين إضافيه :
- الطريقة الثانية : هي بإستخدام مكتبة الـ Microsoft Scripting Runtime حيث لابد أولا من إضافتها لمشروع برنامجك وذلك بالذهاب إلى قائمة "Project " أو "مشروع" في شاشة برنامج الفيجول بيسك ثم إختيار الأمر "References" أو "مراجع" ثم بعد ظهور الشاشة الخاصه بأسماء المكتبات إبحث عن إسم المكتبه التي بإسم Microsoft Scripting Runtime ثم ضع علامة صح عليها ثم "OK" أو "موافق" ثم إستخدم الكود التالي :
PHP كود :
Private Sub Command1_Click()
Dim FSO As New FileSystemObject
FSO.CopyFile "D:\db1.mdb", "C:\db1.mdb" DoEvents
Set FSO = Nothing
End Sub
- ملاحظه :- إذا إستخدمت الطريقة الثانية , يجب إرفاق ملف المكتبة المستخدمه وهو بإسم scrrun.dll يجب إرفاقه مع ملفات تثبيت برنامجك عند تحزيم ملفات برنامجك , وهذا الملف موجود في جهازك في هذا المسار : C:Windows\System32
- الطريقة الثالثة : وهي بإستخدام دالة API , قم بإضافة هذا الكود في أعلى كود الفورم الذي تريد إستخدام كود النسخ فيه :
PHP كود :
Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" _ (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, _ ByVal bFailIfExists As Long) As Long
Private Function CopyFileA(OldFileName As String, NewFileName As String) As Boolean On Error Resume Next: Err.Clear
If CopyFile(OldFileName, NewFileName, False) <> 1 Then CopyFileA = False Else CopyFileA = True End If
End Function
ثم إستخدم كود النسخ في المكان الذي تريد في الفورم هكذا :
PHP كود :
Private Sub Command1_Click()
If CopyFileA("D:\db1.mdb", "C:\db1.mdb") = True Then MsgBox "تم النسخ بنجاح" Else MsgBox "لم يتم النسخ" End If
End Sub
المشاركات : 1,545
المواضيع 33
الإنتساب : Jul 2016
السمعة :
255
الشكر: 6532
تم شكره 4339 مرات في 1696 مشاركات
01-11-16, 08:57 AM
(آخر تعديل لهذه المشاركة : 01-11-16, 09:03 AM {2} بواسطة sendbad100.)
(31-10-16, 10:13 PM)محمد العبيدي كتب : اخوية العزيز اذا تحب تنسخ ملف اثناء استخدامة فلازم تستخدم نسخ الملف كBinary
PHP كود :
Private Sub cmdBackupDataBase_Click() Dim X As String Open App.Path & "\file.mdb" For Binary As #1 Open App.Path & "\file_Copy.mdb" For Binary As #2 X = String(LOF(1) - 1, " ") Get #1, , X Put #2, , X Close End Sub
الف الف شكر اخي الكريم الغالي / [b]محمد العبيدي[/b]
الله يحفظك ويجزيك الف خير
(01-11-16, 01:47 AM)Ahmed_Mansoor كتب : أهلا بك أخي الكريم , جرب الثلاث طرق , الطريقة الأولى طريقة الأخ "محمد العبيدي" وهاذي طريقتين إضافيه :
- الطريقة الثانية : هي بإستخدام مكتبة الـ Microsoft Scripting Runtime حيث لابد أولا من إضافتها لمشروع برنامجك وذلك بالذهاب إلى قائمة "Project " أو "مشروع" في شاشة برنامج الفيجول بيسك ثم إختيار الأمر "References" أو "مراجع" ثم بعد ظهور الشاشة الخاصه بأسماء المكتبات إبحث عن إسم المكتبه التي بإسم Microsoft Scripting Runtime ثم ضع علامة صح عليها ثم "OK" أو "موافق" ثم إستخدم الكود التالي :
PHP كود :
Private Sub Command1_Click()
Dim FSO As New FileSystemObject
FSO.CopyFile "D:\db1.mdb", "C:\db1.mdb" DoEvents
Set FSO = Nothing
End Sub
- ملاحظه :- إذا إستخدمت الطريقة الثانية , يجب إرفاق ملف المكتبة المستخدمه وهو بإسم scrrun.dll يجب إرفاقه مع ملفات تثبيت برنامجك عند تحزيم ملفات برنامجك , وهذا الملف موجود في جهازك في هذا المسار : C:Windows\System32
- الطريقة الثالثة : وهي بإستخدام دالة API , قم بإضافة هذا الكود في أعلى كود الفورم الذي تريد إستخدام كود النسخ فيه :
PHP كود :
Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" _ (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, _ ByVal bFailIfExists As Long) As Long
Private Function CopyFileA(OldFileName As String, NewFileName As String) As Boolean On Error Resume Next: Err.Clear
If CopyFile(OldFileName, NewFileName, False) <> 1 Then CopyFileA = False Else CopyFileA = True End If
End Function
ثم إستخدم كود النسخ في المكان الذي تريد في الفورم هكذا :
PHP كود :
Private Sub Command1_Click()
If CopyFileA("D:\db1.mdb", "C:\db1.mdb") = True Then MsgBox "تم النسخ بنجاح" Else MsgBox "لم يتم النسخ" End If
End Sub
عاجز عن الشكر استاذي الفاضل / Ahmed_Mansoor
الله يطول بعمرك ويجزيك الف خير
|