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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

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

  1. اذا كان هذا الملف اللي انا ارفقته ، فنعم لا تستطيع ادخال قيمة (حقل كود الصنف مقفل) ، ولكن لما تدخل اسم الصنف ، تلقائيا تحصل على الرقم التالي 🙂 جعفر
  2. اخي ابوتمكين 🙂 في الواقع هذا الموضوع دسم ويحتوي على كل ماهو قانوني في حدود قوانين المنتدى ، مع المرفقات . فارجع للمشاركات وتمعّن فيها مرة اخرى 🙂 جعفر
  3. وعليكم السلام اخي عمر 🙂 انا متابع الموضوع اول بأول ، وبسبب اني لم استخدم شجرة الحسابات ، فلم اكتب اي مشاركة 🙂 جعفر
  4. شكرا اخوي ابو احمد ، نعم كلامك صحيح وفي محله ، اذا تم حذف اي صنف في المنتصف (ما عدا الصنف الاخير) ، فالارقام الجديدة ستكون خطأ 🙂 مثلا : 2001 2002 2003 وتم حذف السجل الذي به الرقم 2002 ، فالرقام الجديدة ستكون خطأ ، لأنها تعتمد على عدد السجلات ، ولا تقرأ آخر رقم. لذا لتصحيح هذا الوضع ، فالكودين التاليين سيجعلان تسلسل آخر صنف صحيح ، ولو تم حذف اي صنف في المنتصف ، والافضل استعمال الطريقة رقم 3 ، لأنها لا ترجع لأخذ البيانات من الجدول ، مثلا: 2001 2003 فيصبح آخر رقم 2004 : Private Sub Name_AfterUpdate() '1 DMax 'only work if the field is empty ' If Len(Me![Number] & "") = 0 Then ' Me![Number] = Nz(DMax("[Number]", "tblName", "[typeID]=" & Me.Parent!typeID), Me.Parent!typeID) + 1 ' End If '3 Recordset 'only work if the field is empty If Len(Me![Number] & "") = 0 Then If Me.Recordset.RecordCount = 0 Then Me![Number] = Me.Parent!typeID + 1 Else Me.RecordsetClone.MoveLast Me![Number] = CLng(Me.RecordsetClone("Number")) + 1 End If End If End Sub . جعفر
  5. في اعتقادي ، مشاركة أكثر من شخص في الرد على السؤال ، يفتق الاذهان ويدمج التجارب ويبلور الافكار وفائدة للجميع ، فمنه نتعلم الطرق الاخرى للإجابة على السؤال
  6. وين تجربتك علشان نساعدك في المكان اللي تةقفت فيه !! هذا المرفق هو نفس المرفق في مشاركتك الاولى !! على العموم ، وكما اخبرتك بأن هناك اكثر من طريقة ، تفضل 3 طرق لعمل الترقيم التلقائي للمواد : Private Sub Name_AfterUpdate() '1 DMax 'only work if the field is empty ' If Len(Me![Number] & "") = 0 Then ' Me![Number] = Nz(DMax("[Number]", "tblName", "[typeID]=" & Me.Parent!typeID), Me.Parent!typeID) + 1 ' End If '2 Dcount 'only work if the field is empty ' If Len(Me![Number] & "") = 0 Then ' Me![Number] = DCount("*", "tblName", "[typeID]=" & Me.Parent!typeID) + Me.Parent!typeID + 1 ' If Me![Number] = 0 Then ' Me![Number] = Me.Parent!typeID + 1 ' End If ' End If '3 Recordset 'only work if the field is empty If Len(Me![Number] & "") = 0 Then Me![Number] = Me.Recordset.RecordCount + Me.Parent!typeID + 1 End If End Sub جعفر 1518.Code.accdb.zip
  7. وعليكم السلام 🙂 في الواقع هناك عدة طرق لتنفيذ اي طلب في الاكسس ، وبالنظر الى طلبك ، فاخوي احمد اعطاك رابط الجواب العام والاسهل ، طبعا مع اختلاف اسماء الحقول والجدول ، وانت مبرمج وادرى بهذه الامور : . . ارفق لنا عملك في الكود اعلاه ، وخلينا نساعدك في المكان اللي توقفت فيه. جعفر
  8. اتشرف اخوي سعيد 🙂 لما تكون حيتنا ، ارسل لي رسالة على الخاص ، وان شاء الله نلتقي ، وما ادراك ، يمكن @Moosak يحب البابلو كماي ويهبش معانا 🙂 جعفر
  9. وعليكم السلام اخي عمار 🙂 للأسف لا دراية لدي عن التحزيم ، فجوابي هنا عن الاكسس 😁 في الكود اعلاه ، انت لا تفتح تقرير ، وانما تفتح نموذج !! هذه هي الطريقة . فيصبح الكود: Dim stDocName As String stDocName = "PrintPreviewFrm" DoCmd.OpenReport stDocName, acViewPreview جعفر
  10. 1. عند استخدام اي من الاكواد التي تفضل بها الشباب ، والكود الذي وضعته انا ، يجب ان يكون مسار المجلد كاملا ، فمجلدك رقم 3733 لا يعطي المسار كاملا ، لذا ممكن حل الخطأ بوضع مسار المجلد في الكود ، ثم تضيف عليه رقم مجلد الموظف ، هكذا (ولقد تم تجربة الطرق الثلاث ادناه ، طبعا تجربة كل سطر بطريقة مستقلة) : Dim myPath As String myPath = "D:\" ShellExecute Me.hwnd, "open", myPath & Me.Folder_Name, "", "", 1 Application.FollowHyperlink myPath & Me.Folder_Name Shell "explorer.exe" & " " & myPath & Me.Folder_Name, vbNormalFocus . 2. نعم ، الكود الذي اعطيتك يُظهر "رسالة إشعار امان" الاكسس ، ولكنه وبعد قبول الرسالة ، يفتح المجلد او الملف ، وللتغلب على هذه الرسالة ، يمكننا كتابة الكود هكذا: DoCmd.SetWarnings False Application.FollowHyperlink myPath & Me.Folder_Name DoCmd.SetWarnings True جعفر Folder_Name.zip
  11. همممم اعتقد في خطأ في الحسبة من صوبك !! هذه نتيجة البرنامج: . وهاي نتائج موقعين من الانترنت متخصصين في هذا الموضوع: و . وهاي رابط نقاش طويل عن الدالة اعلاه: . جعفر
  12. السلام عليكم 🙂 الاكسس تلقائيا يحسب عدد الايام الصحيحة ، حسب عدد ايام الشهر ، وحسب كون السنة كبيسة او عادية ، فاليك الدالة التي استعملها (وهي موجودة في المنتدى، ولكن عملت عليها تغيير بسيط حتى تستطيع عرض الارقام مستقلة) : Public Function YMDDif4(sDate1 As Date, sDate2 As Date) On Error GoTo err_YMDDif4 'sDate1 earliest date 'sDate2 later date Dim d As Integer, m As Integer, y As Integer Dim iYear As Integer Dim iMonth As Integer Dim iDay As Integer Dim dInterim1 As Date iMonth = DateDiff("m", sDate1, sDate2) If Day(sDate1) > Day(sDate2) Then iMonth = iMonth - 1 End If dInterim1 = DateAdd("m", iMonth, sDate1) iDay = DateDiff("d", dInterim1, sDate2) d = iDay m = iMonth Mod 12 y = iMonth \ 12 'YMDDif2 = CStr(Y) & " Years " & CStr(M) & " months " & CStr(D) & " days" 'YMDDif4 = CStr(y) & " س/" & CStr(m) & " ش/" & CStr(d) & " ي" YMDDif4 = CStr(y) & "|" & CStr(m) & "|" & CStr(d) Exit Function err_YMDDif4: If Err.Number = 94 Then 'ignor, null Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Function . واذا عندك بيانات في الجدول ، تناديها من النموذج على حدث الحالي: Dim myPeriod As String myPeriod = YMDDif4(Me.date1, Me.date2) Me.Y = Split(myPeriod, "|")(0) Me.M = Split(myPeriod, "|")(1) Me.D = Split(myPeriod, "|")(2) . بس في حالتك ، وبسبب النموذج غير مضمن ، فتناديها على حدث "بعد تحديث" التاريخ الثاني 🙂 جعفر مدة عمل الموظف.zip
  13. وعليكم السلام 🙂 هذا الكود يفتح المجلد D:\Guests_Pics بملئ الشاشة vbMaximizedFocus ، ويجعل التركيز على صورة رقم الضيف (مثلا 123.jpg ) ، وبدون ان يفتح الصورة Shell "C:\Windows\explorer.exe /select,D:\Guests_Pics\" & Me.Guest_ID & ".jpg", vbMaximizedFocus هذا الكود يفتح المجلد D:\Guests_Pics application.followhyperlink "D:\Guests_Pics" جعفر
  14. الله يسلمكم ويعافيكم جميعا ان شاء الله 🙂 وشكرا لك اخي محمد على جميل كلماتك 🙂 جعفر
  15. رجاء مراجعة الصورة في هذا الرابط ، والتأكد من جميع النقاط فيها : .
  16. من النصائح الذهبية في الاكسس: لا تبدأ اسم الكائن برقم ، وإلا ستحصل على اخطاء لا محل لها من الاعراب 😁 اجعل اسماء جداولك تبدأ بحرف 🙂 جعفر
  17. الله يسلمكم ويعافيكم ان شاء الله 🙂 جعفر
  18. وعليكم السلام 🙂 هذا الموضوع فيه ما لذ وطاب من عمل قاعدة بيانات ، الى عمل الحقول ، وعمل نماذج وبها ازرار ، وعمل كود لكل زر ، وووو . وهنا افرد لك الجزئية التي تريدها: 'DoCmd.RunSQL "CREATE TABLE [" & s & "] (ID AUTOINCREMENT primary key, ID_Shamela integer, Tno integer, Nass Memo, part integer, Page integer,Hno integer,Rm_Hno integer, Mno text (50),Mult_mno yesno,NO_hno yesno)" Dim dbsNew As DAO.Database Dim pr As DAO.Property Set dbsNew = CurrentDb 'OpenDatabase(Me.txt2) DoCmd.RunSQL "CREATE TABLE [" & s & "] " & _ " (ID AUTOINCREMENT primary key, " & _ "ID_Shamela integer, " & _ "Tno integer, " & _ "Nass Memo, " & _ "part integer, " & _ "Page integer, " & _ "Hno integer, " & _ "Rm_Hno integer, " & _ "Mno text (50), " & _ "Mult_mno yesno, " & _ "NO_hno yesno) " 'Mult_mno dbsNew.TableDefs(s).Fields("Mult_mno").DefaultValue = 0 Set pr = dbsNew.TableDefs(s).Fields("Mult_mno").CreateProperty("Format", dbText, "True/False", True) dbsNew.TableDefs(s).Fields("Mult_mno").Properties.Append pr 'make the Check Box look Set pr = dbsNew.TableDefs(s).Fields("Mult_mno").CreateProperty("DisplayControl", dbInteger, acCheckBox) dbsNew.TableDefs(s).Fields("Mult_mno").Properties.Append pr dbsNew.TableDefs(s).Fields("Mult_mno").Properties("DisplayControl") = acCheckBox 'NO_hno dbsNew.TableDefs(s).Fields("NO_hno").DefaultValue = 0 Set pr = dbsNew.TableDefs(s).Fields("NO_hno").CreateProperty("Format", dbText, "True/False", True) dbsNew.TableDefs(s).Fields("NO_hno").Properties.Append pr 'make the Check Box look Set pr = dbsNew.TableDefs(s).Fields("NO_hno").CreateProperty("DisplayControl", dbInteger, acCheckBox) dbsNew.TableDefs(s).Fields("NO_hno").Properties.Append pr dbsNew.TableDefs(s).Fields("NO_hno").Properties("DisplayControl") = acCheckBox جعفر YesNo.zip
  19. الله يسلمك ويعافيك ان شاء الله 🙂 وان شاء الله انتظروا مني بعض المواضيع "اللي ما متعودين عليها" 😁 جعفر
  20. شكرا لك اخوي خالد ، فالافضل هو استعمال الاستعلام او النموذج او التقرير بدلا من الحقل ، لصعوبة/انعدام التحكم بحقل الجدول برمجيا !! جعفر
  21. وعليكم السلام ورحمة الله وبركاته 🙂 اخوي ابو جودي ، ابوالحسن ، ابوخليل ، وكل من مر على هذا الموضوع ، شكرا على سؤالكم ، والحمدلله عدت من السفرة/المهمة 🙂 جعفر
  22. وعليكم السلام 🙂 لا توجد مشكلة ، فمثالي اعلاه يحتوي على كلمات عربية ايضا ، اعمل مثالك ، واحفظ البرنامج ، ثم افتح برنامج الآخر واستورد منه هذه القائمة ، وستكون باللغة العربية 🙂 وحتى اذا اردت استعماله نفس قاعدة البيانات ، فترى من الملاحظة في الكود بأنه سيحذف القائمة السابقة والتي هي بنفس الاسم، ويستبدلها بالقائمة الجديدة : جعفر
  23. هناك مرفق في آخر مشاركة لي اعلاه: جعفر
×
×
  • اضف...

Important Information