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

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


abouelhassan

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

السلام عليكم ورحمة الله اساتذة المنتدى الرائع

احتاج كود تنفيذ لفكرتى لو امكن 

هذا الفورم لدى فورم ادخال اسمه frm_items_entry

1.png.0fe2a87e4f88a0cc5d9c55e6ab80ae17.png

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

احتاج استيراد من ملف اكسيل يكون به 7 شيتات وهم مخزن 1 مخزن2 مخزن3 مخزن 4 مخزن5مخزن6مخزن7

اذا اخترت من القائمة مخزن1 وضغطت استيراد من اكسيل يستورد البيانات من الاكسيل الى هذا الفورم وفى سجل المبلغ يوضع 0 والرقم0 او انا هضعهم فى الاكسيل بس يستورد البيانات من الاكسيل مثل الصورة        

2.png.94df1e489777fd818b11952e3ed50a70.png

ملف الاكسيل سيوضع فى نفس مسار القاعدة بداخل فولدر اسمه Backup

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

ارجو المساعدة بكود للتنفيذ اكون شاكر فضلكم اساتذتى الافاضل 

بارك الله لكم فى علمكم واهلكم امين

DATA14.mdb Backup.rar

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

السلام عليكم 

أخي أبو الحسن

أنا سوف أشرح لك الفكرة و أعطيك مثال و أنت تحكم بها كما تشاء

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

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

الكود التالي يمكننا من استخراخ بيانات الخلية A3 في ملف أكسل اسمه 2021 موجود بجنب القاعدة:

On Error Resume Next

    Dim xlApp As Object  'Excel.Application
    Dim xlWB As Object   'Excel.Workbook
    Dim xlWs As Object   'Excel.Sheet
    Dim curPath As String
    
    curPath = CurrentProject.Path & "\2021.xlsx"    'ãÓÇÑ ãáÝ ÇáÃßÓá

    'open excel template
    Set xlApp = CreateObject("Excel.Application")
    xlApp.Visible = False   'True
    
    Set xlWB = xlApp.Workbooks.Open(curPath)
    Set xlWs = xlWB.Worksheets(1)   ' 1 åæ ÑÞã ÇáæÑÞÉ Ýí ãáÝ ÇáÃßÓá
       
    MsgBox xlWs.Cells(3, 2).Value    ' 3 ÑÞã ÇáÓØÑ   æ 1 åí ÑÞã ÇáÚãæÏ
    xlWB.Save
    xlApp.Quit

    Set xlWs = Nothing
    Set xlWB = Nothing
    Set xlApp = Nothing
    MsgBox "ÇäÊåÊ ÇáãåãÉ ÈäÌÇÍ"

ثانيا : لتسهيل العملية أكثر نحتاج كود يستخرج أسماء الشيت الموجودة

الكود التالي يفتح لك مربع حوار لتقوم بتحديد ملف الأكسل و من ثم يستخرج أسماء الأوراق الموجودة به و يحفظها في قائمة منسدلة اسمها list

On Error Resume Next

Dim xlApp1 As Object  'Excel.Application
Dim xlWB1 As Object 'Excel.Workbook
Dim txtpath As String

With Application.FileDialog(3)
    .Title = "Choose File"
    .Filters.Clear
    .Filters.Add "Excel Files", "*.xls,*.xlsx"
   '.Filters.Add "Excel Files", "*.csv"
    .AllowMultiSelect = False
    .InitialFileName = ""
    If .Show = -1 Then
       txtpath = .SelectedItems(1)
       ''--------------------
    End If
End With

Set xlApp1 = CreateObject("Excel.Application")
xlApp1.Visible = False   'True
Set xlWB1 = xlApp1.Workbooks.Open(txtpath)
       Me.list1.RowSource = ""
       For i = 1 To xlWB1.sheets.Count
           Me.list1.AddItem xlWB1.sheets(i).Name
           ''--------------------------------
       Next i
xlApp1.Quit
Set xlWB1 = Nothing
Set xlApp1 = Nothing

 

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

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

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

 

 

 

Backup.rar

تم تعديل بواسطه abouelhassan
رابط هذا التعليق
شارك

استاذى حبيبى اخى فى الله د.كاف يار ربنا يكرمك ويراضيك مثل ما تكرمنى واخواتى بالمنتدى

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

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

المشكلة الثانية وان شاء الله كلاهما سهلتين عليك

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

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

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

ربنا يحفظك يارب ويكرمك يارب زادك الله علما ومال وزادك من خيره اللهم امين

1.png.42c64a1be85ae3c82c8b3760929957ee.png

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

فضلك الله على عباده اخى الكريم استاذى د.كاف يار

بعد التجربة اخى الحبيب لقلبى

عند الاستدعاء تمام بدون الرقم الله يبارك لك بس عند اختيار مخزن بيستدعى كل شيتات الاكسيل كذلك السجل الذى به معادلة لاذال يعمل Error

بارك الله فيك ولك وبك يارب

واكرمك 

Untitled.png

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

مشكور اخى استاذى بارك الله فيك حبيبى د.كاف يار

نفس المشكلتين للاسف سامحنى اخى

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

اعزك الله

Untitled.png

تم تعديل بواسطه abouelhassan
رابط هذا التعليق
شارك

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

 

DATA142.zip Data14.xlsx

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

بارك الله فيك اخى الكريم جداااااا استاذى د.كاف يار

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

بس المشكلة هى عند استيراد بيانات مخزن1 تمام عند عمل خروج من النموذج او ترحيل لو اختارنا مخزن2

اجد ان الاستيراد تم لبيانات مخزن1 الذى تم استيراده سابقا اضافة الى مخزن2 ولو قمنا بعمل خروج او ترحيل وقمنا باستيراد نموذج4 مثلا

اجد انه قام باستيراد مخزن1 ومخزن2وبالاخر مخزن4 اى انه يقوم بتخزين ما تم استيراده ويقوم باستيراده مرة اخرى اضافة الى ما نحدده جديد

هذه الصورة قمت باستيراد بيانات مخزن1 وعملت ترحيل ثم استوردت مخزن2 وترحيل ثم مخزن1 تانى فتجد حضرتك انه بيخزن ما تم استيراده هذه هى المشكلة

المطلوب الاستيراد دون تخزين الذى تم استيراده بحيث عند الضغط على ترحيل واستيراد بيانات اى مخزن تحضر هى فقط

بارك الله لك وبك وفيك اخى اشكرك اخى

1.png

تم تعديل بواسطه abouelhassan
رابط هذا التعليق
شارك

اخى الكريم استاذى د.كاف يار حبيبى الغالى بارك الله فيك

كل الشكر والتقدير الاستدعاء ممتاز بس ظهرت هذه المشكلة

اخترت مخزن2 وقمت بالاستدعاء وقمت بكتابة الرقم5599 وغيرت المبالغ الى التى بالصورة وضغطت ترحيل

1.png.fefd16a9233673c615e73a4bd6fd7f32.png

عند الدخول الى جميع البيانات من الفورم الرئيسى لاطمأن انه تم الترحيل

2.png.b9190f3b4c3c44d340df54b47f726a7e.png

انظر اخى لم يسجل الرقم ووضع امامه صفر اى انه لم يحفظ الرقم 5599

بس هذه هى المشكلة الاخيرة الباقية ان جربت كل شئ الحمد لله تمام بس الاستدعاء كان بطئ شوية بس تمام

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

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

تسلم ايدك استاذى الحبيب د.كاف يار

ربنا يحفظك ياب جربت كل شئ تمام ممتاز

المشكلة البسيطة التى ظهرت

كان لدى مخزن فاتورة رقم9944 وانا قمت باستيراد مخزن5 تمام من الاكسيل تم استيراده ممتاز كتبت رقم9944 عادى ان اكرر الرقم وارد

لدى كود تنبيه انه مكرر ام ان اغيره او اتجاهل التغير 1.png.99c7c1b6d6b09fbe7313acebb85d9896.png

وجدت انه احضر بيانات الفاتورة9944 القديمة الى الفورم اعلى بيانات مخزن5 الذى قمت باستيراده من الاكسيل

دى كانت اول مشكلة

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

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

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

لايؤثر ذلك على الفاتورة القديمة ولايستدعى القديمة الى الفورم الادخال فقط كود التكرر يظهر رسالة الرقم مكرر واذا اخترت no عادى يكمل عادى لايستدعى البيانات القديمة ولايؤثر عليها

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

كمان استاذى بعد ان استورد من الاكسيل عن طريق اختيار مخزن

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

بارك الله لك فى علمك وزادك من فضله يارب

احترامى

تم تعديل بواسطه abouelhassan
رابط هذا التعليق
شارك

في ٧‏/٦‏/٢٠٢١ at 20:21, abouelhassan said:

تسلم ايدك استاذى الحبيب د.كاف يار

ربنا يحفظك ياب جربت كل شئ تمام ممتاز

المشكلة البسيطة التى ظهرت

كان لدى مخزن فاتورة رقم9944 وانا قمت باستيراد مخزن5 تمام من الاكسيل تم استيراده ممتاز كتبت رقم9944 عادى ان اكرر الرقم وارد

لدى كود تنبيه انه مكرر ام ان اغيره او اتجاهل التغير 1.png.99c7c1b6d6b09fbe7313acebb85d9896.png

وجدت انه احضر بيانات الفاتورة9944 القديمة الى الفورم اعلى بيانات مخزن5 الذى قمت باستيراده من الاكسيل

دى كانت اول مشكلة

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

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

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

لايؤثر ذلك على الفاتورة القديمة ولايستدعى القديمة الى الفورم الادخال فقط كود التكرر يظهر رسالة الرقم مكرر واذا اخترت no عادى يكمل عادى لايستدعى البيانات القديمة ولايؤثر عليها

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

كمان استاذى بعد ان استورد من الاكسيل عن طريق اختيار مخزن

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

بارك الله لك فى علمك وزادك من فضله يارب

احترامى للرفع رفع الله قدركم

 

 

 

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

في ٨‏/٦‏/٢٠٢١ at 02:21, abouelhassan said:

تسلم ايدك استاذى الحبيب د.كاف يار

ربنا يحفظك ياب جربت كل شئ تمام ممتاز

المشكلة البسيطة التى ظهرت

كان لدى مخزن فاتورة رقم9944 وانا قمت باستيراد مخزن5 تمام من الاكسيل تم استيراده ممتاز كتبت رقم9944 عادى ان اكرر الرقم وارد

لدى كود تنبيه انه مكرر ام ان اغيره او اتجاهل التغير 1.png.99c7c1b6d6b09fbe7313acebb85d9896.png

وجدت انه احضر بيانات الفاتورة9944 القديمة الى الفورم اعلى بيانات مخزن5 الذى قمت باستيراده من الاكسيل

دى كانت اول مشكلة

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

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

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

لايؤثر ذلك على الفاتورة القديمة ولايستدعى القديمة الى الفورم الادخال فقط كود التكرر يظهر رسالة الرقم مكرر واذا اخترت no عادى يكمل عادى لايستدعى البيانات القديمة ولايؤثر عليها

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

كمان استاذى بعد ان استورد من الاكسيل عن طريق اختيار مخزن

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

بارك الله لك فى علمك وزادك من فضله يارب

احترامى

هذي الاشكالية تم حلها مسبقا

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

5 ساعات مضت, د.كاف يار said:

هذي الاشكالية تم حلها مسبقا

اشكرك اخى استاذى الحبيب د.كاف يار

انا اسف اخى لم تحل تستطيع تجربة التعديل data144 الاخير وستجد المشكلة اسف استاذى

بارك الله فيك وجزاك كبل خير يارب

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

اتفضل التعديل يابو الحسن

 

اذا الرقم مكرر راح تكون امام خيارين 

- الاستمرار بالرقم المكرر

- رفض الاستمرار بالرقم المكرر

DATA145.zip

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

فضلك الله على عباده استاذى حبيبى د.كاف يار

ممتاز هذا التعديل

بس عند تنفيذ الاتى استوردت ملف الاكسيل مخزن2 وكتبت رقم123

وقمت بالترحيل وبعدها تعمدت استيراد مخزن 1 وكتبت رقم123

قال الرقم مكرر هل تريد التعديل اخترت no

وقمت بالترحيل

وذهبت الى جميع البيانات للفحص وجدت الاتى

5.png.d5a1393bd45f5620cf80f7d55ad603ce.png

البيانات الرقم الاولى تغير الرقم لها الى A4 كما ترى المطلوب ان تظل 123 كما هى مهما تكرر الرقم يفظل القديم والجديد كما هو

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

احترامى

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

50 دقائق مضت, abouelhassan said:

 

البيانات الرقم الاولى تغير الرقم لها الى A4 كما ترى المطلوب ان تظل 123 كما هى مهما تكرر الرقم يفظل القديم والجديد كما هو

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

احترامى

عند الاستيراد 

تأخذ السجلات المستوردة رقم متسلسل يبدء من A

انت حين رفضت التعديل بقت على ماهي عليه دون تعديل

فلو وافقت على التعديل لكانت اخذت الرقم الذي تريده

 

الأمر بإختصار شديد

 

في حال ادخلت رقم تم ادخاله مسبقا سوف تظهر رسالة تحذير ( الرقم مكرر هل تريد التعديل على نفس الرقم) أي هل تريد استخدام نفس الرقم ؟

في حال انك قمت بالرفض لن يحدث اي تغيير على المدخلات أرجوا ان تراجع الكود للتأكد من ذلك

في حال انك وافق سيتم الاحتفاظ بالرقم المكرر المدخل اي سيتم استبدال الرقم التلقائي و الذي يبدء بحرف A  الى الرقم المدخل

في حال كان الرقم جديد سيتم تغيير الرقم التلقائي و الذي يبدء بحرف A  الى الرقم الجديد

 

ارجوا ان تكون الصورة اتضحت كما أرجوا ان تطلع على الكود لكي تعرف كيف تسيير الأمور

  • Like 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