اذهب الي المحتوي
أوفيسنا

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

قام بنشر

أخواني الأعزاء من بعد التحية

لدي برنامج بقاعدتين بيانات ولتكن الأولى BackEnd والثانية FrontEnd

في ال BackEnd يوجد فيها الجداول فقط

في ال FrontEnd يوجد فيها النمازج والتقارير ووحدات الماكرو والأكواد

موقع ال BackEnd على سيرفر الشبكة

ال FrontEnd موزع على جميع اجهزة المستخدمين في الشركة

تم برمجة كود يقوم بالمرور على الجداول واحد تلو الأخر واستيرادها من ال BackEnd الى FrontEnd عند تشغيل FrontEnd لأول مرة وهو يعمل من دون مشاكل والحمدالله .

مؤخراً قمت بحماية قاعدة البيانات ال BackEnd بكلمة المرور فلم استطع استيراد تلك الجداول

سؤالي الأن هو :هل أستطيع برمجة كود يفتح قاعدة البيانات المحمية بكلمة المرور ويستورد الجداول ومن ثم يغلقها

تم اقتباس هذه الفكرة من كتاب Access2002 للمطوريين للمهندس Scott Barker ترجمة واعداد المهندس رامي القضماني و الغرض الرئيسي من هذه العملية عدم فقدان البيانات في حالة تحديث البرنامج .

قام بنشر

السلام عليكم

لقد توصلت الى حل المشكلة والحمدالله

هذا المثال للإطلاع

Dim StrBackEndPath, StrBackEndName As String

Dim CnnNet As New ADODB.Connection
Dim RstBEDefault As New ADODB.Recordset
   
'-- Open a connection to the backend database
CnnNet.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & StrBackEndPath & "\" & StrBackEndName & ";Jet OLEDB:DataBase Password=123"
    
'-- Open the database properties table
RstBEDefault.Open "TblClient", CnnNet

   
'-- Your code

    
'-- After Finish clean up
RstBEDefault.Close
CnnNet.Close
    
Set RstBEDefault = Nothing
Set CnnNet = Nothing

حيث ان StrBackEndPath مسار الملف

StrBackEndName أسم قاعدة البيانات المراد الأتصال بها

TblClient اسم الجدول المراد الاتصال به

'-- Your code مجموعة الاوامر المراد تنفيذها

مع تحياتي ال جميع اعضاء المنتدى

قام بنشر (معدل)

السلام عليكم

كود يقوم بالمرور على الجداول واحد تلو الأخر واستيرادها من ال BackEnd الى FrontEnd عند تشغيل FrontEnd
ولكن في مشروعي اقوم بربط الجداول وليس بنسخها

أنا صحيح كبرت وأصبحت أنسى كثيرا والسكري عبث في صحتي كثيرا ولكن لا زالت حواسي تعمل والحمد لله :d

هذا الكود لاستيراد جدول من قاعدة بيانات أخرى حتى وإن كانت محمية بكلمة مرور ولكن بشرط أن يكون الجدول له رابط . وإذا لم يكن له رابط فسيضطر إلى إدخال كلمة السر عندما يطلبها إجراء فتح القاعدة الهدف . وهوطبعا ضمن المثال الذي ذكرته سابقا :

Private Sub CmdTransferdatabase_Click()
  Dim SourceName As String
  Dim NewName As String
  Dim dbs As Database
  Dim obj As TableDef
  Dim DbsName As String
  Dim DbsPWD As String
  Dim Pos As Byte
  
  If NoTableNames Then Exit Sub
  
  SourceName = Me.OldTableName
  NewName = Me.NewTableName
  
  Set dbs = CurrentDb
  Set obj = dbs.TableDefs(SourceName)
  
  If obj.Connect = "" Then
    MsgBox "لا يمكن استيراد جدول من نفس القاعدة"
    Set dbs = Nothing
    Exit Sub
  End If
  
  DbsName = Mid(obj.Connect, InStr(1, obj.Connect, "DATABASE=") + 9)
  Pos = InStr(1, obj.Connect, "PWD=")
  If Pos > 0 Then
    DbsPWD = Mid(obj.Connect, Pos + 4, InStr(Pos + 1, obj.Connect, ";") - Pos - 4)
    SendKeys DbsPWD
    SendKeys "{Enter}"
  End If
  
  DoCmd.TransferDatabase acImport, "Microsoft Access", _
  DbsName, acTable, obj.SourceTableName, NewName
  
  Set dbs = Nothing
End Sub

تحياتي .

تم تعديل بواسطه أبو هادي
قام بنشر

هههههههههههههه

والله انك عسل وروحك مرحه ومثالك والكود غاية في الروعه

وانا ماقلت شي اعتذرت ياخي والله اعتذرنا ها شوف

واعتذر ربما انني لم اذكر هذا في سؤالي
:h

سلام

قام بنشر

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

الف سلامه لك يا استاذنا ابو هادي وأسأل الله أن تكون مأجورا على ما أبتلاك به الله عافانا الله وأياك من سوء أعمالنا ومما أبتلى به كثير من عباده والحمد له حتى الرضى والحمد له أن رضي والحمد له بعد الرضى

اخواني وجدت مثال لأبن مسقط وهو لنسخ الجداول من على الشبكه

أتمنى أن يفيدكم واذا كان غير ذلك أرجو المعذره فما أحببت ألا المساعده

اخيكم ( أبو نعيم )

لنسخ الجداول من على الشبكةbackup.rar

قام بنشر

السلام عليكم

أخواني أعضاء المنتدى تم ملاحظة الأتي

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

بمعنى اذا كانت احرف كلمة المرور مكتوبة في الشفرة بأحرف كبيرة وهي احرف صغيرة

فلن يتم الاتصال بقاعدة البيانات وسوف تظهر رسالة خطأ Invalid Password

للمعلومية فقط

Dim StrBackEndPath, StrBackEndName As String

Dim CnnNet As New ADODB.Connection
Dim RstBEDefault As New ADODB.Recordset
  
'-- Open a connection to the backend database
CnnNet.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & StrBackEndPath & "\" & StrBackEndName & ";Jet OLEDB:DataBase Password=syrianhere"
   
'-- Open the database properties table
RstBEDefault.Open "TblClient", CnnNet

  
'-- Your code

   
'-- After Finish clean up
RstBEDefault.Close
CnnNet.Close
   
Set RstBEDefault = Nothing
Set CnnNet = Nothing

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