اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

الردود الموصى بها

قام بنشر

السلام عليكم ورحمة الله

لدي قاعدة بيانات باسم "ddbee$" اريد من خلال نموذج لواجهة مستخدم اضغط على زر يقوم بالذهاب الى مسار قاعدة البيانات ثم يقوم بفتح تلك قاعدة البيانات   ... هل يوجد خطأ فى الكود الموضح بالصورة
image.png.4a4dfae3d992fe88b5d6d917a5798114.png

 

  • تمت الإجابة
قام بنشر
15 دقائق مضت, Abdelaziz Osman said:

هل يوجد خطأ فى الكود الموضح بالصورة

دالة DoCmd.OpenDataAccessPage تُستخدم لفتح صفحات الوصول إلى البيانات (Data Access Pages) وليس لفتح قاعدة بيانات خارجية.

لفتح قاعدة بيانات أخرى، يمكنك استخدام دالة Application.OpenCurrentDatabase أو دالة Shell

Application.OpenCurrentDatabase "E:\Auto\dbbee.accdb"

 

إذا كنت تريد تشغيل قاعدة البيانات كملف منفصل باستخدام Shell

Dim path As String
path = "E:\Auto\dbbee.accdb" ' مسار قاعدة البيانات
Shell "MSACCESS.EXE " & path, vbNormalFocus

 

  • Like 1
قام بنشر (معدل)
39 دقائق مضت, kanory said:

دالة DoCmd.OpenDataAccessPage تُستخدم لفتح صفحات الوصول إلى البيانات (Data Access Pages) وليس لفتح قاعدة بيانات خارجية.

لفتح قاعدة بيانات أخرى، يمكنك استخدام دالة Application.OpenCurrentDatabase أو دالة Shell

Application.OpenCurrentDatabase "E:\Auto\dbbee.accdb"

 

إذا كنت تريد تشغيل قاعدة البيانات كملف منفصل باستخدام Shell

Dim path As String
path = "E:\Auto\dbbee.accdb" ' مسار قاعدة البيانات
Shell "MSACCESS.EXE " & path, vbNormalFocus

 

يعنى   يبقى الكود بالشكل ده 

Private Sub Compact_Click()
Dim path As String
path = "E:\Auto\ddbee$" ' مسار قاعدة البيانات
Shell "MSACCESS.EXE " & path, vbNormalFocus

End Sub


 

وسؤال اخر  :  اريد  عمل Auto Repair  لقاعدة البيانات عند استدعاء فتحها

تم تعديل بواسطه Abdelaziz Osman
قام بنشر
40 دقائق مضت, Abdelaziz Osman said:

وسؤال اخر  :  اريد  عمل Auto Repair  لقاعدة البيانات عند استدعاء فتحها

اولا هل تقوم بإجراء نسخ احتياطية لبياناتك قبل الضغط والإصلاح

لان لاي سبب حصل خطأ قد تفقد بياناتك ... على كل حال هذه الشيفرة تقوم باللازم اقصد الضغط والإصلاح

Sub CompactAndRepairDatabase()
    Dim dbPath As String
    Dim tempDbPath As String

    ' المسار الكامل لقاعدة البيانات الأصلية
    dbPath = "E:\Auto\dbbee.accdb"
    
    ' إنشاء مسار مؤقت لقاعدة البيانات بعد الإصلاح
    tempDbPath = "E:\Auto\dbbee_temp.accdb"

    ' تأكد من أن قاعدة البيانات الأصلية موجودة
    If Dir(dbPath) <> "" Then
        ' إجراء عملية Compact and Repair
        On Error Resume Next
        Application.CompactRepair SourceFile:=dbPath, DestinationFile:=tempDbPath, LogFile:=False
        
        If Err.Number = 0 Then
            ' استبدال قاعدة البيانات الأصلية بالنسخة الجديدة
            Kill dbPath  ' حذف قاعدة البيانات الأصلية
            Name tempDbPath As dbPath  ' إعادة تسمية النسخة المؤقتة إلى الأصلية
            MsgBox "تم إصلاح قاعدة البيانات بنجاح!", vbInformation
        Else
            MsgBox "حدث خطأ أثناء الإصلاح: " & Err.Description, vbCritical
        End If
        On Error GoTo 0
    Else
        MsgBox "قاعدة البيانات غير موجودة في المسار المحدد!", vbExclamation
    End If
End Sub

 

  • Like 1
قام بنشر
8 دقائق مضت, kanory said:

اولا هل تقوم بإجراء نسخ احتياطية لبياناتك قبل الضغط والإصلاح

لان لاي سبب حصل خطأ قد تفقد بياناتك ... على كل حال هذه الشيفرة تقوم باللازم اقصد الضغط والإصلاح

Sub CompactAndRepairDatabase()
    Dim dbPath As String
    Dim tempDbPath As String

    ' المسار الكامل لقاعدة البيانات الأصلية
    dbPath = "E:\Auto\dbbee.accdb"
    
    ' إنشاء مسار مؤقت لقاعدة البيانات بعد الإصلاح
    tempDbPath = "E:\Auto\dbbee_temp.accdb"

    ' تأكد من أن قاعدة البيانات الأصلية موجودة
    If Dir(dbPath) <> "" Then
        ' إجراء عملية Compact and Repair
        On Error Resume Next
        Application.CompactRepair SourceFile:=dbPath, DestinationFile:=tempDbPath, LogFile:=False
        
        If Err.Number = 0 Then
            ' استبدال قاعدة البيانات الأصلية بالنسخة الجديدة
            Kill dbPath  ' حذف قاعدة البيانات الأصلية
            Name tempDbPath As dbPath  ' إعادة تسمية النسخة المؤقتة إلى الأصلية
            MsgBox "تم إصلاح قاعدة البيانات بنجاح!", vbInformation
        Else
            MsgBox "حدث خطأ أثناء الإصلاح: " & Err.Description, vbCritical
        End If
        On Error GoTo 0
    Else
        MsgBox "قاعدة البيانات غير موجودة في المسار المحدد!", vbExclamation
    End If
End Sub

 

واين توجد خاصية    " Sub CompactAndRepairDatabase " التى اضع فيها ذلك الكود

قام بنشر
3 دقائق مضت, Abdelaziz Osman said:

واين توجد خاصية    " Sub CompactAndRepairDatabase " التى اضع فيها ذلك الكود

بعد نسخ الشيفرة ولصقها في النموذج لديك استدعي كود الفتح بهذه الصورة

Private Sub Compact_Click()
Dim path As String
path = "E:\Auto\ddbee$" ' مسار قاعدة البيانات
call CompactAndRepairDatabase
Shell "MSACCESS.EXE " & path, vbNormalFocus

End Sub

 

  • Like 1
قام بنشر
2 ساعات مضت, kanory said:

اولا هل تقوم بإجراء نسخ احتياطية لبياناتك قبل الضغط والإصلاح

لان لاي سبب حصل خطأ قد تفقد بياناتك ... على كل حال هذه الشيفرة تقوم باللازم اقصد الضغط والإصلاح

Sub CompactAndRepairDatabase()
    Dim dbPath As String
    Dim tempDbPath As String

    ' المسار الكامل لقاعدة البيانات الأصلية
    dbPath = "E:\Auto\dbbee.accdb"
    
    ' إنشاء مسار مؤقت لقاعدة البيانات بعد الإصلاح
    tempDbPath = "E:\Auto\dbbee_temp.accdb"

    ' تأكد من أن قاعدة البيانات الأصلية موجودة
    If Dir(dbPath) <> "" Then
        ' إجراء عملية Compact and Repair
        On Error Resume Next
        Application.CompactRepair SourceFile:=dbPath, DestinationFile:=tempDbPath, LogFile:=False
        
        If Err.Number = 0 Then
            ' استبدال قاعدة البيانات الأصلية بالنسخة الجديدة
            Kill dbPath  ' حذف قاعدة البيانات الأصلية
            Name tempDbPath As dbPath  ' إعادة تسمية النسخة المؤقتة إلى الأصلية
            MsgBox "تم إصلاح قاعدة البيانات بنجاح!", vbInformation
        Else
            MsgBox "حدث خطأ أثناء الإصلاح: " & Err.Description, vbCritical
        End If
        On Error GoTo 0
    Else
        MsgBox "قاعدة البيانات غير موجودة في المسار المحدد!", vbExclamation
    End If
End Sub

 

تم عمل بالكود بنجاح ولكن لم يعمل عندما كان ملف قاعدة البيانات له خاصية الاخفاء
هل يوجد حل ؟؟  للملفات المخفية

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information