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

jjafferr

أوفيسنا
  • Posts

    9903
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    404

كل منشورات العضو jjafferr

  1. السلام عليكم شوفوا هذا الرابط: جعفر
  2. آه نسيت: ولما تغير الطابعة ، بتحتاج عمل التالي مرة او مرتين: ثم اطبعه مباشرة على الفاتورة ، ثم عدّل على اماكن الحقول جعفر
  3. وعليكم السلام يرجى ارفاق جزء من برنامجك والذي فيه هذه الجزئية ، ثم اعطنا مثال من برنامجك ، ونحاول ان نطبقه لك ان شاء الله جعفر
  4. وعليكم السلام لا يوجد طريقة مباشرة ، وانما اعمل شيء تقريبي ، ثم اطبعه مباشرة على الفاتورة ، ثم عدّل على اماكن الحقول ، ثم اطبعه مباشرة على الفاتورة ، ثم عدّل على اماكن الحقول ، ثم اطبعه مباشرة على الفاتورة ، ثم عدّل على اماكن الحقول ، ثم اطبعه مباشرة على الفاتورة ، ثم عدّل على اماكن الحقول ، ثم اطبعه مباشرة على الفاتورة ، ثم عدّل على اماكن الحقول ، ثم تحصل على الفاتورة المطلوبة جعفر
  5. لوسمحت ترفق لي هذا الجدول ضمن برنامجك انت عامل 6 Dsum في حقل الرصيد ، هذا معناه انك تعمل 6 استعلامات (Dsum عبارة عن جملة SQL واللي هي عبارة عن استعلام) داخل استعلامك ، فالفكرة ان نعمل استعلام مستقل للحقل ويعمل فيه المجاميع مرة واحدة ، ونربطه بالاستعلام الحالي. جعفر
  6. وعليكم السلام اخوي حسين البرنامج المحمي والذي يحتاج الى دنجل علشان يشتغل ، معناه ان البرنامج (الواجهة) عند التشغيل ، يخاطب الدنجل ويطلب منه معلومات معينة ، ولما يحصل على المعلومة الصحيحة منه ، يفتح البرنامج ، وبعض الاحيان تتم المخاطبة بين فترة واخرى بين البرنامج والدنجل ، وطبعا كل شركة لها طريقتها في عمل الدنجل ، ولكني ما شايف ولا سامع عن دنجل يعمل مع البرنامج الخلفي ، لذا يجب ان يكون الدنجل في كمبيوتر البرنامج الامامي لكي يعمل. جعفر
  7. السلام عليكم اخي ابو زاهر لازلت في انتظار الجواب جعفر
  8. وعليكم السلام اذا كان عندك حقلين مستقلين ، حقل R للريال وحقل H للهلله ، فتستطيع في الاستعلام تعمل حقل جديد مثلا: RH: [R] + [H] جعفر
  9. وعليكم السلام استخدم محرك البحث في المنتدى ، وابحث عن كلمة تفقيط ، وستجد المطلوب في قسم الاكسس جعفر
  10. وعليكم السلام اخي مازن اذا ممكن تجمع لي النموذج والجدول المطلوب في برنامج ، وترفقهم جعفر
  11. السلام عليكم اخي ابو زاهر سؤال: حقل الرصيد هو: Rsnf: (Nz(DSum("Alkmiah","Qrymaster","Nwaha=11" & " and ID_Sanf=" & [ID_Sanf])) -Nz(DSum("Alkmiah","Qrymaster","Nwaha=12" & " and ID_Sanf=" & [ID_Sanf]))) -(Nz(DSum("Alkmiah","Qrymaster","Nwaha=13" & " and ID_Sanf=" & [ID_Sanf])) -Nz(DSum("Alkmiah","Qrymaster","Nwaha=14" & " and ID_Sanf=" & [ID_Sanf]))) -Nz(DSum("Alkmiah","Qrymaster","Nwaha=21" & " and ID_Sanf=" & [ID_Sanf])) +Nz(DSum("Alkmiah","Qrymaster","Nwaha=20" & " and ID_Sanf=" & [ID_Sanf])) +Nz([rsdaolalmdh]) . بينما الاستعلام اللي تأخذ بياناتك منه Qrymaster ، لا يحتوي على اي من الحقول اعلاه: Nwaha11 و 12 و 13 و 14 و 21 و 20 . جعفر
  12. السلام عليكم اخوي خلف رجاء توضيح اللي تريده من النموذج المرفق. جعفر
  13. تفضل يا سيدي Private Sub Command9_Click() On Error GoTo err_Command9_Click If IsNull(Me.Text15) And IsNull(Me.TotalAmount) Then DoCmd.SetWarnings (False) DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 DoCmd.SetWarnings (True) DoCmd.Close acForm, Me.Name Else DoCmd.Close acForm, Me.Name End If If IsNull(Me.Text15) Then DoCmd.SetWarnings (False) DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 DoCmd.SetWarnings (True) DoCmd.Close acForm, Me.Name Else Dim Msg, style, title, result Msg = "هل تريد حفظ الفاتورة الحالية" style = vbYesNo title = " تنبيه" result = MsgBox(Msg, style, title) If result = vbYes Then [TotalAmount] = [Text17] [Descount] = [Text15] - [Text17] MsgBox "تم الحفظ سيتم الخروج", vbInformation, "تنبيه" DoCmd.Close acForm, Me.Name 'Else ' DoCmd.SetWarnings (False) ' DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 ' DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 ' DoCmd.SetWarnings (True) ' MsgBox "تم حذف الفاتورة الحالية", vbInformation, "مع السلامة" ' DoCmd.Close acForm, Me.Name End If End If Exit_Command9_Click: Exit Sub err_Command9_Click: If Err.Number = 2467 Then Resume Exit_Command9_Click Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub جعفر
  14. وعليكم السلام رجاء اخذ نسخة اضافية من بياناتك قبل العمل الطريقة التي عملتها هي: تغيير الارقام الى ارقام كبيرة غير موجوده في القائمة ، ثم تغيير الارقام الى التسلسل المطلوب تفضل . والكود خلف الزر: Private Sub cmd_Do_The_Changes_Click() 'make Reference to Microsoft DAO x.xx Object Library Dim rst As DAO.Recordset Dim biggest_Number As Long Dim i As Integer Dim j As Integer Dim RC As Integer Dim Multiply_by As String biggest_Number = Len(DMax("[ID]", "Data")) 'we have to do this in two steps: '1 based on the Biggest Number, lets multiply it by 10, so that No number id duplicated '2 then Seq based on the required Seq '1 Set rst = CurrentDb.OpenRecordset("Select * From Data") rst.MoveLast: rst.MoveFirst RC = rst.RecordCount For i = 1 To RC 'what number to multiply with Multiply_by = 1 For j = 1 To biggest_Number - Len(rst!ID) Multiply_by = Multiply_by & "0" Next j 'change the existing numbers to BIGGER NUMBERS rst.edit rst!ID = rst!ID * Val(Multiply_by) rst.Update rst.MoveNext Next i '2 rst.MoveFirst For i = 0 To RC - 1 'change the BIGGER NUMBERS to the new Seq rst.edit rst!ID = Me.int_Start + i rst.Update rst.MoveNext Next i rst.Close: Set rst = Nothing MsgBox "Done" End Sub . وبسبب وجود علاقة بين الجدولين Data و tell عن طريق الحقل ID ، فلما الكود يغير قيمة الحقل ID في الجدول Data ، فتلقائيا نجد ان القيمة قد تغيرت في الحقل ID في الجدول tell . جعفر 927.Access.accdb.zip
  15. حيا الله اخوي شفان الامر Recordset او Recordsetclone هما من عائلة DAO ، فإذا طلبت عدد السجلات مباشرة ، فستحصل على 0 (اي لا سجلات) ، او رقم (ولكن ليس عدد السجلات الصحيح) ، بينما اذا كان عندنا عدد كبير من السجلات ، فاكسس لا يجلب جميع هذه السجلات الى النموذج ، والامر RecordCount. كذلك لا يجلب عدد هذه السجلات ، والسبب ان اكسس يعرض لك عدد معين من السجلات بسرعة وبإستخدام ذاكرة اقل ، واذا اردت الحصول على عدد السجلات الصحيح ، فيجب ان تستخدم MoveLast قبل استعمال RecordCount جعفر
  16. والله يا اخوي صالح انا ما لعبت في الكود ، ولو تقارنه بكودك سطر بسطر بتلقاه طبق الاصل ، غير اني عدلت على امر الخروج من النموذج فقط فقط واصطياد الخطأ وهاي عدد المرات اللي انت اعطيت امر لإغلاق النموذج: . بس انا اعتقد ان كودك بدأ بشيء ، ثم انت غيرت عليه ولكن لم تحذف الكود القديم ، لذا انت محتاج الى هذه الجزئية فقط: . جعفر
  17. وعليكم السلام وبعد التحية والسلام على اخوي محمد سلامة وشفان تستطيع استعمال طريقتي في اي مكان كان ، وحتى في وحدة نمطية مستقله ، مثلا: public function Check_Records() dim rst as dao.recordset dim RC as integet set rst=currentdb.openrecordset("Select * From Table_Name") rst.movelast:rst.movefirst:RC=rst.recordcount if RC=>10000 then هنا تكتب ما تريد من الاوامر لوقف البرنامج endif end function . اما مثال اخوي شفان ، فيكون في النموذج فقط (هكذا بعد التعديل ، لكي تحصل على عدد السجلات الصحيح) Private Sub Form_Current() Me.RecordsetClone.movelast If Me.RecordsetClone.RecordCount >= 10 Then ' Me.Names.Enabled = False ' Me.ID.Enabled = False ' Me.PhoneNumber.Enabled = False Me.Form.AllowAdditions = False Else ' Me.Names.Enabled = true ' Me.ID.Enabled = true ' Me.PhoneNumber.Enabled = true Me.Form.AllowAdditions = True End If End Sub جعفر
  18. وعليكم السلام تستطيع حساب عدد السجلات هكذا (اكتب اسم الجدول بدلا عن Table_Name) : dim rst as dao.recordset dim RC as integet set rst=currentdb.openrecordset("Select * From Table_Name") rst.movelast:rst.movefirst:RC=rst.recordcount if RC=>10000 then هنا تكتب ما تريد من الاوامر لوقف البرنامج endif جعفر
  19. وعليكم السلام تفضل Private Sub Command9_Click() On Error GoTo err_Command9_Click If IsNull(Me.Text15) And IsNull(Me.TotalAmount) Then DoCmd.SetWarnings (False) DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 DoCmd.SetWarnings (True) DoCmd.Close acForm, Me.Name Else DoCmd.Close acForm, Me.Name End If If IsNull(Me.Text15) Then DoCmd.SetWarnings (False) DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 DoCmd.SetWarnings (True) DoCmd.Close acForm, Me.Name Else Dim Msg, style, title, result Msg = "هل تريد حفظ الفاتورة الحالية" style = vbYesNo title = " تنبيه" result = MsgBox(Msg, style, title) If result = vbYes Then [TotalAmount] = [Text17] [Descount] = [Text15] - [Text17] MsgBox "تم الحفظ سيتم الخروج", vbInformation, "تنبيه" DoCmd.Close acForm, Me.Name Else If result = vbNo Then DoCmd.SetWarnings (False) DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 DoCmd.SetWarnings (True) MsgBox "تم حذف الفاتورة الحالية", vbInformation, "مع السلامة" DoCmd.Close acForm, Me.Name End If End If End If Exit_Command9_Click: Exit Sub err_Command9_Click: If Err.Number = 2467 Then Resume Exit_Command9_Click Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub جعفر
  20. السلام عليكم الظاهر انك عملت هذا البرنامج على كمبيوتر (او مجلد) ، ثم اخذته الى كمبيوتر (او مجلد) آخر اول ما يطلع لك الشريط الاصفر ، فالاكسس يخبرك بانه تم فتح هذا البرنامج من موقع/مجلد غير موثوق به (اي انك في اعدادات الاكسس لم تخبره ان البرامج التي يتم تشغيلها من هذا المجلد موثوق بها ، اي ان الاكسس يحترز انه احد البرامج الضارة قد قامت بتشغيل برنامجك هذا) ، فعليه ، يُوقف الاكسس تفعيل/عمل جميع الاكواد ، سواء الماكرو او الاحداث وحتى الازرار في البرنامج ، ويطلب منك تأكيد ان البرنامج غير ضار ، وذلك عن طريق الشريط الاصفر. فكل اللي عليك عمله هو ، النقر على الزر اللي في وسط الشريط الاصفر ، وهو لتفعيل جميع ذلك ، وحينها سترى ان البرنامج يعمل كما يجب وعلشان تسمح لبقية البرامج تعمل بدون ظهور هذا الشريط الاصفر ، فيجب تدخل في اعدادات الاكسس ، وتخبره بان هذا المجلد موثوق به جعفر
  21. السلام عليكم عادةً ، لا نحفظ العمليات الحسابية في حقل في الجدول ، وانما هو سطر نضعه في الاستعلام او في النموذج/التقرير ، ونحصل على النتيجة ، صحيح ان الاكسس يحتوي على حقل محسوب ، ولكن المحترفين ينصحون بعدم استعماله ، لأن به مشاكل!! بغض النظر اينما اردت ان تضع الكود (قد تحتاج الى تغيير الفاصلة الى فاصلة منقطة): في الجدول ، في الحقل المحسوب iif([amount]<[cut],[amount],[amount]-[cut]) في الاستعلام amount_fin: iif([amount]<[cut],[amount],[amount]-[cut]) في النموذج/التقرير =iif([amount]<[cut],[amount],[amount]-[cut]) جعفر
  22. السلام عليكم اخي ابو زاهر اعتذر منك ، ولكن كل محاولاتي باءت بالفشل جعفر
  23. السلام عليكم شكرا اخوي علاء على المشاركة أخي حسين ، اخي علاء اعطى نفس الفكرة ، ولكن بإختلاف مسميات الحقول عملت نفس الاستعلام Q_111 ، ولكن بالحقل الصحيح ، والفرق بين كود Dlookup السابق والجديد ، هو حقل رقم الفاتورة الآن عبارة عن نص. جعفر 922.1.PROGRMS_STORY.accdb.zip
  24. وعليكم السلام اذا كانت هذه المسافة جزء من الكلمة ، يعني عملت مسافة ثم اسم ، فالمسافة اصبحت الآن جزء من الكلمة ، لحل هذا استعمل: ([trim([Field Name ، وبدل Field Name اكتب اسم الحقل ، اما في الاكسس 2007 فما اعلى ، اذا لا يوجد مسافة في الكلمة ، وانما المسافة من مربع الحقل نفسه ، فتستطيع ان تتحكم فيه من اعدادات الحقل: . جعفر
×
×
  • اضف...

Important Information