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

كيف يمكن حفظ القاعدة بامتداد accde برمجيا


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

السلام عليكم 

بحثت مطولا عن طريقة ما لحفظ التطبيق بصيغة accde باستخدام الاكواد وقد وجدت هذه الأكواد التى يتم تشغيل بعضها من خلال vb.net وبعضها خاص بالأكسس ولكن للأسف لم تعمل معى بشكل صحيح 

'1- By Vb.net
'Here's some code I tried (to make this work you need to set a reference to Microsoft Access 11.0  'Object Library) : 
Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Integer) As Integer 
Private Sub BuildMDE(ByRef strSource As String, ByRef strDest As String) 
'strSource is the mdb file name 
        ioAccess = New Microsoft.Office.Interop.Access.Application     
        ioAccess.Visible = True 
        SetForegroundWindow(ioAccess.hWndAccessApp()) 'Just to make sure Access is the foreground window! 
        Try 
            System.Windows.Forms.SendKeys.Send(strSource & "{Enter}{Enter}") 
            System.Windows.Forms.SendKeys.Send("{Enter}") 
            ioAccess.RunCommand(Microsoft.Office.Interop.Access.AcCommand.acCmdMakeMDEFile) 
        Catch ex As Exception 
            MessageBox.Show(ex.ToString) 
        Finally 
            System.Windows.Forms.Application.DoEvents() 
            ioAccess.Quit() 
            ioAccess = Nothing 
            System.GC.Collect() 'OK we need som serious cleaning up here ...... 
        End Try 
End Sub 
----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
'2- By vb.net
  Function GenerateMDEFile(ByVal MyPath As String)
        Dim NAcc As Access.Application
        Dim convPath As String = "C:\convDB.mdb"

        Try
            NAcc = CreateObject("Access.Application")
            NAcc.ConvertAccessProject(MyPath, convPath, AcFileFormat.acFileFormatAccess2002)

            System.Windows.Forms.SendKeys.SendWait(MyPath & "{Enter}{Enter}")
            System.Windows.Forms.SendKeys.SendWait(MyPath & "{Enter}")

            NAcc.DoCmd.RunCommand(AcCommand.acCmdMakeMDEFile)

        Catch ex As Exception
            MsgBox("Exception: " & ex.Message & "  " & ex.ToString, MsgBoxStyle.Critical)
        Finally
            System.Windows.Forms.Application.DoEvents()
            NAcc.Quit()
            NAcc = Nothing
        End Try
    End Function
---------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------
' On Access Vba Code
Public Function MakeACCDESysCmd(InPath As String, OutPath As String)

Dim app As New Access.Application

app.AutomationSecurity = msoAutomationSecurityLow

app.SysCmd 603, InPath, OutPath

End Function

يحتوى الأكسس على هذا الأمر الجاهز 

Docmd.RunCommand ACcmdMakeMDEFile

ولكننى لم أستطع معرفة طريقة تمرير مسار قاعدة البيانات اليها :blink: 

فهل من مساعدة 

وجزاكم الله خيرا

 

  • Like 1
رابط هذا التعليق
شارك

يبدو أنى أطلت باسؤال لدرجة أوصلت لعزوف القراء عنه من أول نظرة :biggrin:

وعلى كل هذه محاولة منى للوصول للمطلوب ولكنها ناقصة وبحاجة لتوجيه - لعلى لا أعدم ذلك من أهل الخبرة.

هذه المحاولة

Private Sub Command0_Click()
Dim NAcc As Access.Application
 MyPath = "C:\Users\ãÍãÏ ÝÑíÏ\Desktop\Test64\2.accdb"
 convPath = "C:\Users\ãÍãÏ ÝÑíÏ\Desktop\Test64\2.accde"
   Set NAcc = CreateObject("Access.Application")
    NAcc.ConvertAccessProject MyPath, convPath, acFileFormatAccess2007

    NAcc.DoCmd.RunCommand (AcCommand.acCmdMakeMDEFile)
    DoEvents
    NAcc.Quit
    NAcc = Nothing
End Sub

وهذه النتيجة

 

5.jpg

رابط هذا التعليق
شارك

وعليكم السلام

هذا يابو عبدالله  يعمل  عندي  على  الاصدار  2003

جرب  وغير امتداد الملفات  لعله يعمل عندك

Private Sub zer1_Click()
CreateMDE
End Sub
Public Sub CreateMDE()
    Const strcMDBFullPath As String = "d:\db1.mdb"
    Const strcMDEFullPath As String = "d:\db1.mde"
    Dim objACC As Access.Application
    Set objACC = New Access.Application
    objACC.SysCmd 603, strcMDBFullPath, strcMDEFullPath
    objACC.Quit acQuitSaveNone
    Set objACC = Nothing
End Sub

 

main.rar

  • Like 3
رابط هذا التعليق
شارك

1 ساعه مضت, ابوخليل said:

هذا يابو عبدالله  يعمل  عندي  على  الاصدار  2003

لا حرمنا الله منكم وزادكم فضلا وعلما

وقد عمل عندى أيضا على 2010 ويبدو أن الخطأ كان بعدم اضافة مرجع access 14.0 object Library

ملاحظاتى على الكود:

1- يجب اضافة هذا المرجع  access 14.0 object Library

2- يجب أن تكون قاعدة البيانات الهدف قابلة لأخذ نسخة accde / أو  Mde  وذلك بعمل Compile Database

جزاكم الله عنا خيرا - جمعة مباركة عليكم جميعا

  • Like 2
رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

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

Important Information