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

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

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

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

طابت اوقاتكم اخواني الكرام .

احاول انشاء مجموعات بحيث يصبح بإمكاني اضافة اكثر من شخص لمجموعة معينة  وكذلك الشخص ممكن يكون مضاف بأكثر من مجموعة.

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

المرفق يحتوي على ثلاث جداول .. 

tbl_contacts  وهو جدول جهات الاتصال

tbl_FavMain وهو جدول المجموعات .

tbl_Favconn  وهو جدول الربط بينهما ..

يوجد نموذج وحيد ... frm_Groups .

======================

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

حيث يجب اغلاق النموذج ومن ثم فتحه.... واحيان اخرى لايقبل الإضافة .

وهذا هو الكود المستخدم :

Dim rs As DAO.Recordset
Set rs = Me.RecordsetClone

If Not (rs.EOF And rs.BOF) Then
Do Until rs.EOF
If rs!Cont_Selct = True Then
DoCmd.SetWarnings False
DoCmd.RunSQL "insert into tbl_favconn (fav_name,cont_id) values('" & Me.txtGroupSrch & "','" & rs!Cont_id & "' )"
DoCmd.SetWarnings True
rs.Edit
rs!Cont_Selct = False
rs.Update
End If
rs.MoveNext
Loop
MsgBox "done"
rs.Close
Set rs = Nothing
End If
End Sub

ارجو التجربه ولو فيه اقتراح اخر

وشكرا مقدما .

Groups.rar

تم تعديل بواسطه سعيد صواب
  • Like 1
قام بنشر

وعليكم السلام

تفضل اخوي سعيد

لاحظ المفاتيح في الجدول الوسيط

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

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

Groups2.rar

  • Like 3
قام بنشر

هلا بك استاذ سعيد

اولا خليني اوضح المشكلة وبعدين الاقتراح

هنا

If Not (rs.EOF And rs.BOF) Then

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

Do Until rs.EOF
.......
rs.MoveNext
Loop

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

وهنا لن يتم المرور على الكود

 

 

الحل :

ضع السطر التالي وهو وضع السجلات في البدء دائما  ليصبح الكود

Private Sub CmdAddtoGroup_Click()
Dim rs As DAO.Recordset
Set rs = Me.RecordsetClone
rs.MoveFirst
If Not (rs.EOF And rs.BOF) Then
Do Until rs.EOF
If rs!Cont_Selct = True Then
DoCmd.SetWarnings False
DoCmd.RunSQL "insert into tbl_favconn (fav_name,cont_id) values('" & Me.txtGroupSrch & "','" & rs!Cont_id & "' )"
DoCmd.SetWarnings True
rs.Edit
rs!Cont_Selct = False
rs.Update
End If
rs.MoveNext
Loop
MsgBox "done"
rs.Close
Set rs = Nothing
End If
End Sub

بالتوفيق

 

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

وهذا الاقتراح

Private Sub CmdAddtoGroup_Click()
DoCmd.RunSQL "insert into tbl_FavConn(Cont_id,Fav_Name) select Cont_id, [forms]![frm_Groups]![txtGroupSrch] from tbl_Contacts where Cont_Selct=true"
End Sub

بالتوفيق

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

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

اقتراحات وحلول مختلفة و رائعة.

جزاكم الله خير معلمينا الأفاضل وزادكم من فضله وعلمه  ...

=====================

بصير طماع شوي واتفلسف .

انا دائما افضل استخدام جمل sql على recordset  من تجربتي احسها اسرع 

لا املك معلومة ولكن مجرد احساس ....  فهل احساسي في محله .. 

شاكر تجاوبكم .

 

قام بنشر
7 دقائق مضت, سعيد صواب said:

لا املك معلومة ولكن مجرد احساس ....  فهل احساسي في محله .. 

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

هذه باختصار

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

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

تحياتي

  • Like 4
قام بنشر
12 ساعات مضت, سعيد صواب said:

شكرا استاذ رمهان .. 

العفو ..

 

12 ساعات مضت, سعيد صواب said:

حفظ الله الجميع

اللهم أميييييين

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

×
×
  • اضف...

Important Information