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

[تطبيق] تحويل قاعدة بيانات من اكسس الى SQL


محمد ايمن

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

الاصدقاء الاكارم السلام عليكم و رحمة الله و بركاته تحية طيبة

في هذا التطبيق سنتحدث عن تحويل قاعدة بيانات اكسس الى sql برمجيا

حيث سنقوم بانشاء قاعدة البيانات على السيرفر و تصدير الجداول لها باستخدام SQL scripts

 

ملاحظة هامة : العمل سيتم على SQL 2005 وما فوق

بعد البحث و التجريب وصلت الى كود يقوم بانشاء قاعدة بيانات SQL وتصدير كافة الجداول لها 

Dim ConData As New ADODB.Connection
Dim Str_Data As String
Dim Str_Use As String
Dim TableName As String
Dim Tdf As TableDef


ConData.Open "Provider=SQLOLEDB;Integrated Security=SSPI;Initial Catalog=master;Data Source=HP-PC\SQLEXPRESS"

Str_Data = "Create database DB1"
Str_Use = "Use DB1"

ConData.Execute (Str_Data)
ConData.Execute (Str_Use)

For Each Tdf In CurrentDb.TableDefs
If Left(Tdf.Name, 4) <> "MSys" Then
    If Len(Tdf.Connect) = 0 Then
        DoCmd.TransferDatabase acExport, "ODBC Database", "ODBC;Driver={SQL Server};Server=HP-PC\SQLEXPRESS" & _
        ";Database=DB1" & ";Trusted_Connection=Yes", acTable, Tdf.Name, Tdf.Name
    End If
End If
Next

 

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

عظيم جدا و تمام التمام لكن هناك مشكلة صغيرة جدا

المفاتيح الاساسية و الفهارس و العلاقات لم يتم تصديرها !!!!!! وبالتالي لن تعمل قاعدة البيانات ابدا

بحثت كثيرا و حاولت تعديل الكود السابق و لكن دون جدوى

لذلك كان لا بد من البحث عن طريقة اخرى لنصل للمطلوب و الطريقة هي انشاء الجداول و المفاتيح و الفهارس و العلاقات عن طريق اكواد SQL او ما يسمى SQL scripts , سيتسائل البعض كيف ذلك ؟؟

البداية :

عند الانتهاء من تصميم قاعدة البيانات سنستخدم معالج التكبير لمرة واحدة فقط من اجل الحصول على الكود او ملف SQL scripts وبعد ذلك سنضيف الكود الى ملف ونستخدم ذلك الملف متى اردنا 

نفتح قاعدة البيانات التي نرغب بتحويلها و نضغط على ادوات قاعدة البيانات ثم نختار (خادم SQL)

1- انشاء قاعدة بيانات جديدة ( في هذا المثال اسم قاعدة البيانات test SQL 1 )

2- نحدد اسم السيرفر و اسم قاعدة البيانات المطلوبة ( الاتصال موثوق ) ( التالي )

3- نحدد كافة الجداول ( التالي )

4- نحدد ( فهارس - قواعد التحقق من الصحة - افتراضيات - علاقات الجداول ) و نستخدم (مشغلات عوضا عن DRI) ( التالي )

5- نحدد (عدم اجراء اية تغييرات للتطبيق) (انهاء)

 

سيبدا المعالج بترحيل كافة الجداول الى السيرفر

بعد الانتهاء نغلق برنامج الاكسس و نذهب الى برنامج SQL Server Management Studio (ملاحظة هذا البرنامج لادارة قواعد البيانات و يختلف عن برنامج SQL server )

نحدد السيرفر ونختار نوع المصادقة (حسابات ويندوز) ثم اتصال سيفتح البرنامج

نختار Databases ثم نحدد قاعدة البيانات المطلوبة

نضغط بالزر الايمن للفارة و نختار من القائمة Tasks ثم Generate Scripts

تظهر نافذة جديدة نختار منها التالي ونحدد قاعدة البيانات Test SQL 1 ثم التالي

تعدل الخيارات التالية:

include if not exists = false

script defaults = false

scripts extended properties = false

scripts owner = false

scripts full-text indexes = true

scripts indexes = true

ثم التالي

نحدد (tables) ثم التالي

نحدد كافة الجداول ثم انهاء و نضغط انهاء مرة اخرى

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

ننسخ الكود بشكل كامل و نحفظه ضمن ملف نصي نسميه مثلا (Test1)

 

نعود الى صديقنا الاكسس

ننشئ نموذجا جديدا ونضع فيه حقلي نص باسم (tservername - tdatabasename) وزر امر

نكتب الكود التالي في زر الامر

Dim ConData As New ADODB.Connection
Dim Str_Data As String
Dim Str_Use As String

' فتح الاتصال مع السيرفر
ConData.Open "Provider=SQLOLEDB;Integrated Security=SSPI;Initial Catalog=master;Data Source=" & Me.tservername

' انشاء قاعدة البيانات
Str_Data = "Create database " & Me.TDataBaseName
Str_Use = "Use " & Me.TDataBaseName

ConData.Execute (Str_Data)
ConData.Execute (Str_Use)

MsgBox "تم انشاء قاعدة البيانات بنجاح" & vbCrLf & "جاري تصدير الجداول", vbInformation + vbMsgBoxRight

' تنفيذ السكريبت ضمن قاعدة البيانات لانشاء الجداول و الفهارس و العلاقات
 Shell "sqlcmd.exe -S " & Me.tservername & " -d " & Me.TDataBaseName & " -i " & CurrentProject.Path & "\test1.txt", 0

MsgBox "تم انشاء الجداول بنجاح", vbInformation

' اغلاق الاتصال
ConData.Close

 

طبعا الملف test1.txt يجب ان يكون في نفس مسار قاعدة البيانات

المرفق يختلف قليلا عن الشرح فهو يساعدك في اختيار السيرفر تلقائيا

اعتذر على الاطالة في الشرح

رابط البرنامج مع فيديو للشرح

http://www.mediafire.com/file/x14w1p4qbqewd4k/SQL1.rar

بانتظار التجريب و النتائج منكم اصدقائي

 

SQL1.rar

تم تعديل بواسطه محمد ايمن
  • Like 4
  • Thanks 1
رابط هذا التعليق
شارك

اخي محمد ايمن جزاك الله خير على هذا المجهود

لكني اريد ان تدلني على افضل رابط لتحويل الى ال  sql بالطريقة التقليدية للاهمية حيث انني لاول مرة ساحاول استخدامها ولا اعرف شئ عنها

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

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

8 ساعات مضت, محمد ايمن said:

اخي الكريم في الرابط يوجد فيديو يوضح كيفية انشاء قاعدة البيانات على SQL Server باستخدام المعالج Upsizing Wizard

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

 

حاولت اطبق لمثال المرفق على القاعده المستخدمه عندي ولكن يطلع لي خطأ

 

 

هل اطبق هذا الكلام على السيرفر نفسه

او من اي كمبيوتر مربوط بالسيرفر

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

  • 7 months later...

السلام عليكم استاذنا العزيز @ابو خليل

لماذا لم يتم اضافة ذلك الموضوع الي الرابط المثبت اعلي القسم الخاص بال sql 

 

لقد بحث عنه ولم اجد 

هل يمكن ضمه

وكل سنة وحضرتك طيب 

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

  • 3 weeks later...
  • 1 month later...

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