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

مشكلة في إلحاق المرفقات في الاستعلام الإلحاقي


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

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

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

ووفقكم الله ورعاكم،،

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

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

فهلا تكرمتم علينا التعديل على المثال مع جزيل الشكر وعظيم الامتنان،،

الحاق البيانات.accdb

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

28 دقائق مضت, حامل المسك said:

الإلحاق يكون للبيانات الجديدة دون ما سبق إلحاقه..

اخي العزيز @حامل المسك

كود الالحاق شغال في حالة no1 لايوجد في date2

لكن مالذي تريده من الاكواد التي تلي كود استعلام الالحاق ؟

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

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

المطلوب من الكود ألا يعتمد على حقل معين بل عند الضغط على زر الإلحاق يقوم بإلحاق جميع البيانات الجديدة مع المرفقات من جدول dat1 إلى جدول dat2

 

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

13 ساعات مضت, حامل المسك said:

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

المطلوب من الكود ألا يعتمد على حقل معين بل عند الضغط على زر الإلحاق يقوم بإلحاق جميع البيانات الجديدة مع المرفقات من جدول dat1 إلى جدول dat2

 

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

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

15 ساعات مضت, حامل المسك said:

المطلوب من الكود ألا يعتمد على حقل معين بل عند الضغط على زر الإلحاق يقوم بإلحاق جميع البيانات الجديدة مع المرفقات من جدول dat1 إلى جدول dat2

جرب الان اذا كان فهمي صحيح

الحاق البيانات(2).accdb

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

منذ ساعه, مبرمج سابق said:

جرب الان اذا كان فهمي صحيح

الله الله الله عليك .. 

رائع كتب الله أجرك ورضي عنك وأرضاك وكل من شارك بقراءة ورأي..

ظهر إشكال ولعله يكون بسيطا بعون الله

عند إدخال بيانات سجل جديد وطلب إلحاق البيانات تظهر هذه الرسالة

image.png.828e5c9fb25bca641b33d20aac69e264.png

image.png.e2196ab516c753250d6214c44fa74cf5.png

3 ساعات مضت, ابو البشر said:

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

أسعدك الله .. المطلوب كل السجلات وليس السجل الحالي..

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

منذ ساعه, مبرمج سابق said:

جرب الان اذا كان فهمي صحيح

يا سلام عليك ..لقد وصلت لنص الطريق اخي @مبرمج سابق

بصراحة الموضوع جديد علي في كيفية الحاق المرفقات ..

لكن كما قال الاستاذ @حامل المسك

حين ادخال سجل جديد تظهر رسالة خطأ

اعتقد نحتاج لاستعلام حذف البيانات القديمة عند الالحاق

مجرد اقتراح .. والا لا علم لي الا ماعلمني الله سبحانه

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

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

مشاركة مع الاخوة على حسب فهمى لطلبك , بالنسبة لمنع التكرار عملت مفتاح اساسى فى الجدول رقم 2 ليمنع قبول السجلات المكررة .

بالتوفيق

 

الحاق البيانات(Amr).accdb

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

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

وايضا منعنا التكرار ....

 

Public Function MoveData(FromTableName As String, ToTableName As String, Optional AttachmentFieldName As String = "No Attachment", Optional IgnoreAttachment As Boolean = True)
On Error GoTo HandleErr

Dim rstFromTable      As DAO.Recordset
Dim rstToTable        As DAO.Recordset
Dim fldFrom           As DAO.Field2
Dim rstToAttach       As DAO.Recordset2
Dim fldAttach         As DAO.Field2
Dim rstFromAttach     As DAO.Recordset2
Err.Clear


Set rstFromTable = CurrentDb.OpenRecordset(FromTableName)
Set rstToTable = CurrentDb.OpenRecordset(ToTableName)

If (rstFromTable.BOF And rstFromTable.EOF) Then
  Exit Function
End If

Do While rstFromTable.EOF = False
   rstToTable.AddNew ' main add record
   For Each fldFrom In rstFromTable.Fields
      If fldFrom.IsComplex = False Then
           rstToTable(fldFrom.Name).Value = fldFrom.Value
      Else
           If AttachmentFieldName <> "No Attachment" Then
           
              rstToTable.Update
              rstToTable.Bookmark = rstToTable.LastModified
              rstToTable.Edit
              Set rstFromAttach = fldFrom.Value
              Set rstToAttach = rstToTable(fldFrom.Name).Value
              
              If rstFromAttach.RecordCount > 0 Then
                If IgnoreAttachment = False Then
                    Do While rstFromAttach.EOF = False
                        rstToAttach.AddNew
                        For Each fldAttach In rstFromAttach.Fields
                           If (IsNull(fldAttach.Value) = False) And (fldAttach.Name <> "FileType") Then
                              rstToAttach(fldAttach.Name).Value = fldAttach.Value
                           End If
                        Next 'fldAttach
                        
                        rstToAttach.Update
                        rstFromAttach.MoveNext
                    Loop
                End If
              End If
           End If
        End If
   Next fldFrom
   rstToTable.Update
   rstFromTable.MoveNext
Loop

rstFromTable.Close
rstToTable.Close
ExitHere:
  Set rstFromTable = Nothing
  Set rstToTable = Nothing
  Set rstFromAttach = Nothing
  Set rstToAttach = Nothing
  
  Exit Function

HandleErr:
  Select Case Err.Number
    Case 53
      Err.Clear
      Resume Next
    Case 91
      Err.Clear
      Resume Next
    Case 3020
      Err.Clear
      Resume Next
    Case 3021
      Err.Clear
      Resume Next
    Case 3022
      Err.Clear
      Resume Next
    Case Else
      Debug.Print "Error " & Err.Number & ": " & Err.Description
  End Select
  Resume ExitHere
End Function

 

الحاق البيانات.accdb

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

3 دقائق مضت, Eng.Qassim said:

لحد الان ..لم نصل الى نتيجة موفقة

تحياتي للاخوة @ابو البشر  @Amr Ashraf

 

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

الظاهر البشمهندس يتحدث بون تجربة للمرفق ... او انه فهم السؤال بطريقة اخرى

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

8 دقائق مضت, Eng.Qassim said:

 

R1.PNG

R2.PNG

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

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

ما شاء الله تفاعل رائع شكر الله لكم أجمعين،،

منذ ساعه, Amr Ashraf said:

مشاركة مع الاخوة على حسب فهمى لطلبك , بالنسبة لمنع التكرار عملت مفتاح اساسى فى الجدول رقم 2 ليمنع قبول السجلات المكررة .

بالتوفيق

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

 

منذ ساعه, ابو البشر said:

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

وايضا منعنا التكرار ....

كتب الله أجرك أبا البشر وأفكارك رائعة كعادتك.. جربت ذلك وعمل بالشكل الصحيح .. 

كتب الله أجركم يا كرام ورضي عنكم أجمعين ..

أعطوني فرصة أطبق ذلك على البرنامج للتأكد من فاعليته وأوافيكم بالنتائج بعون الله،،

لو كنت أعرف فوق الشكر منزلة

أوفى من الشكر عند الله في الثمن

أخلصتها لكم مـن قلبي مهذبة

حذوا على مثل ما أوليتم من حسن

 

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

8 ساعات مضت, حامل المسك said:

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

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

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

17 ساعات مضت, حامل المسك said:

ظهر إشكال ولعله يكون بسيطا بعون الله

عند إدخال بيانات سجل جديد وطلب إلحاق البيانات تظهر هذه الرسالة

الحقيقة اعتذر لكوني لم ادخل للموقع ولم اشاهد الرد ☝️ علما بانه منذ فترة لم تعد تصلني اشعارات على الايميل !

ولكن في جميع الاحوال لن اقدم حل بجمال ماقدم الاساتذة @ابو البشر والاستاذ الخبير @Amr Ashraf

وان كانت فكرتي تجزئة الكود والاستغناء على الاستعلام

مع ذلك اقول بان مشكلة الاستعلامات مع حقل مرفق هي اقل مشاكل هذا النوع من الحقول لكون قاعدة البيانات access حجمها محدود بـ 2 جيجا شاملة مكونات القاعدة نفسها

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

وهنا قمت بتجربة تكرار تحميل ملف وقد قفز حجم القاعدة من 2.5 ميجا الى اكثر من 300 ميجا

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

لذا من وجهة نظر مبرمج سابق الاستغناء عن حقل مرفق واستبدالة بوضع الملفات بمجلد بجانب القاعدة وفي الجدول نستخدم حقل نصي لربط المرفق بالمعرف وتوجد العديد من الامثلة في الموقع

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

تحياتي

 

حقل مرفق.png

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

11 دقائق مضت, مبرمج سابق said:

مع ذلك اقول بان مشكلة الاستعلامات مع حقل مرفق هي اقل مشاكل هذا النوع من الحقول لكون قاعدة البيانات access حجمها محدود بـ 2 جيجا شاملة مكونات القاعدة نفسها

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

السلام عليكم , حقيقة كنت منتظر انتهائى من العمل لمناقشة صاحب الموضوع فى هذه الجزئية .

 

12 دقائق مضت, مبرمج سابق said:

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

وايضاً هذه الجزئية كأنك قرأت افكارى 😄 , ماشاء الله عليك ربنا يزيدك من فضله , كنت هقترح عليه انه يقوم بالحاق رقم ID للسجل المطلوب فقط ويستدعى البيانات الاخرى من الجدول الاصلى وذلك فى حالة الاحتياج اصلا لطريقة العمل هذه .

ولكن ضيق الوقت وتأخر الوقت امس وانا بنام من المغرب :wavetowel: منعنى ذلك من استكمال المناقشة , والآن اجد الموضوع فى أيادى امينة وبإذن الله ستتوصلوا الى الفكرة الصائبة وسأتابع الموضوع بعد انتهائى من العمل بإذن الله لأستفيد واتعلم منكم  .

بارك الله فيكم جميعاً وكل عام وانتم بخير.

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

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

===========

14 ساعات مضت, Amr Ashraf said:

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

بحمد الله نقلت العمل على البرنامج الأصل فعمل على أكمل وجه فشكر الله لكم ورضي عنكم..

===========

9 ساعات مضت, مبرمج سابق said:

ولكن في جميع الاحوال لن اقدم حل بجمال ماقدم الاساتذة @ابو البشر والاستاذ الخبير @Amr Ashraf

ما أجمل هذه الروح المعطاءة وهذا التواضع وليس بمستغرب على أهل الفضل والإحسان

==========

9 ساعات مضت, مبرمج سابق said:

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

سبحان الله وبحمده هذا غاب عن ذهني وبآرائكم أستنير.. 

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

بمعنى لدي مجلد (ص) به مجموعة ملفات pdf وأحدها على سبيل المثال اسمه 123 فهل بالإمكان أن يكون المجلد (ص) مرتبط بالبرنامج وعند كتابة 123 في السجل يرتبط تلقائيا..

أم يحتاج في كل مرة أن أضغط على استعراض ثم اختيار الملف.. أم لكم رأي آخر..

===========

9 ساعات مضت, Amr Ashraf said:

ولكن ضيق الوقت وتأخر الوقت امس وانا بنام من المغرب :wavetowel: منعنى ذلك من استكمال المناقشة , والآن اجد الموضوع فى أيادى امينة وبإذن الله ستتوصلوا الى الفكرة الصائبة وسأتابع الموضوع بعد انتهائى من العمل بإذن الله لأستفيد واتعلم منكم  .

 

بارك الله لكم في أعمالكم وأعماركم وأوقاتكم وأنتم أصحاب الفضل..

الأمر الذي دعاني لإلحاق البيانات بجدول مشابه .. ربما تتعجبون لكني مجتهد 🧐

لدي مجموعة من الموظفين كل منهم يعمل في مكان معين.. ولا يوجد بينهم رابط سوى الانترنت..

فكانت الفكرة أن يتم الربط بين قاعدة البيانات والنماذج عن طريق جوجل درايف..

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

فكانت الفكرة أن تكون قاعدة البيانات كاملة على الجهاز (جهاز كل موظف) وتكون هناك قاعدة بيانات (الجداول) على جوجل درايف ..

يتم ربط الجدول الأساس من قاعدة البيانات التي في جوجل درايف بجهاز كل موظف..

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

وفي حال تأخر نقل البيانات أو ضعف النت لا تتضرر البيانات لكونها محفوظة في البرنامج الذي على جهاز الموظف ويمكن في أي لحظة يفتح البرنامج يتم الإلحاق مرة أخرى..

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

هذه الفكرة بشكل موجز.. ولا غنى عن رأي الخبراء أسعدكم الله في الدارين،،

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

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