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

الارتباط بملف اكسل برمجيا


alsihran
إذهب إلى أفضل إجابة Solved by jjafferr,

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

السلام عليكم 

بالمرفق يوجد  

قاعدة بيانات للجداول و والواجه 

عند الدخول على الواجهة Data

وفتح نموذج frm_relink يتم الاتباط بقاعدة الجدوال Data_be في نفس مجلد البرنامج  والامور تمام 

المطلوب

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

حاولت اطبق نفس الطريقة لكن فشلة محاولتي 

 

Relink.rar

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

8 ساعات مضت, alsihran said:

السلام عليكم 

بالمرفق يوجد  

قاعدة بيانات للجداول و والواجه 

عند الدخول على الواجهة Data

وفتح نموذج frm_relink يتم الاتباط بقاعدة الجدوال Data_be في نفس مجلد البرنامج  والامور تمام 

المطلوب

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

حاولت اطبق نفس الطريقة لكن فشلة محاولتي 

طيب جرب كده ..................

 

Relink.rar

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

السلام عليكم 🙂

 

اخوي ابو البشر ، الافضل ان تحذف الرابط الحالي قبل ان تعمل رابط جديد ، وتتعامل مع النسخة xlsx 🙂 

    If tdf.Name = "shet_Data" Then
        Call CurrentDb.TableDefs.Delete(tdf.Name)
        DoCmd.TransferSpreadsheet acLink, acSpreadsheetTypeExcel12Xml, _
                                      "shet_Data", CurrentProject.Path & "\Data.xlsx", True, "ورقة1$"
    End If

 

جعفر

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

في 25‏/1‏/2023 at 18:36, ابو البشر said:

طيب جرب كده ..................

شكر لك وأسف على التأخر في الرد 

الطريق تعيد الربط لكن يتم تغير اسم الجدول 

وهذا سيعمل مشكلة مع الاستعلامات 

حيث ان الاستعلام سيبحث عن الجدول المرتبط ولن يجده لان اسمه تغير 

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

ملاحظة أخرى 

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

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

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

8 ساعات مضت, alsihran said:

ملاحظة أخرى 

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

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

طيب جرب المرفق ............

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

جرب نقل المجلد لاي مكان في الحاسوب وافتح الجدول تجده مرتبط

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

14 ساعات مضت, jjafferr said:

تفضل 🙂

بعد أذنك استاذ

1- لاحظت أن  الفورم frm_relink لم يعد يغلق تلقائيا بعد فتحه كما في السابق 

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

    If tdf.Name = "shet_Data" Then
    
        Call CurrentDb.TableDefs.Delete(tdf.Name)
        DoCmd.TransferSpreadsheet acLink, acSpreadsheetTypeExcel12Xml, _
                                      "shet_Data", CurrentProject.Path & "\Data.xlsx", True, "ورقة1" & "$"
    Else

 

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

1 دقيقه مضت, alsihran said:

1- لاحظت أن  الفورم frm_relink لم يعد يغلق تلقائيا بعد فتحه كما في السابق 

2- لو كان عندي اكثر من جدول اكسل هل نعيد تكرار الكود مع تغير أسم الملف  للربط 

 

1- ما ادري ، ما عملت اي تغيير في اي جزئية اخرى من الكود 😁

ولكن :

لا تستعمل 
DoCmd.Close
فهو يغلق اي كائن عليه التركيز ، سواء نموذج1 او نموذج2 او حتى التقارير


وانما استعمل
DoCmd.Close acForm, me.Name
والذي معناه اغلاق النموذج الموجود فيه الكود هذا


او
DoCmd.Close acForm, "frm_relink"
والذي يغلق النموذج الموجود اسمه في الكود

 

 

 

2- نعم ، هكذا

    If tdf.Name = "shet_Data" Then
    
        Call CurrentDb.TableDefs.Delete(tdf.Name)
        DoCmd.TransferSpreadsheet acLink, acSpreadsheetTypeExcel12Xml, _
                                      "shet_Data", CurrentProject.Path & "\Data.xlsx", True, "ورقة1" & "$"

elseIf tdf.Name = "shet_Data2" Then
    
        Call CurrentDb.TableDefs.Delete(tdf.Name)
        DoCmd.TransferSpreadsheet acLink, acSpreadsheetTypeExcel12Xml, _
                                      "shet_Data2", CurrentProject.Path & "\Data.xlsx", True, "ورقة21" & "$"

elseIf tdf.Name = "shet_Data3" Then
    
        Call CurrentDb.TableDefs.Delete(tdf.Name)
        DoCmd.TransferSpreadsheet acLink, acSpreadsheetTypeExcel12Xml, _
                                      "shet_Data3", CurrentProject.Path & "\Data3.xlsx", True, "ورقة1" & "$"

Else

 

 

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

13 دقائق مضت, jjafferr said:
وانما استعمل
DoCmd.Close acForm, me.Name
والذي معناه اغلاق النموذج الموجود فيه الكود هذا

تمام 

هذا حل المشكلة 

14 دقائق مضت, jjafferr said:

2- نعم ، هكذا

وهذا تمام 

شكرا لك 

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

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