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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    406

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

  1. وعليكم السلام اخوي حسن 🙂 اهلا وسهلا بك في المنتدى 🙂 رجاء قراءة قوانين المنتدى ، حتى تستفيد الاستفادة القصوى من المنتدى 🙂 قواعد المشاركة فى الموقع اضغط هنـــــــــامن فضلك لقراءة القواعد كاملة و بصفة خاصة نؤكدعلى ما يلي 1- يمنع منعا باتا نشر أية مواد تخالف حقوق الملكية الفكرية و يرجى الابلاغ عن المشاركات المخالفة من خلال زر تقرير اسفل المشاركة 2-يجب استخدام خاصيةالبحث قبل طرح السؤال توفيرا للوقت و الجهد. 3-ضرورة كتابة عنوان واضح للموضوع يدل على محتواه ويعطي وصفاً مختصرا للسؤال. 4-ممنوع منعا باتاً كتابة عناوين سينمائية مثل عاجل ، نداء الي فلان ، الي الخبراء ، طلب مساعدة ، أريد حلا..... 5-يمكن استعجال الرد باستخدام تعبير -للرفع- و غير مسموح بالالحاح او اللوم فجميع الاعضاء يشاركون تطوعا طبقا لسعة وقتهم. ومخالفة ذلك تعرض الموضوع للحذف رجاء فتح موضوع جديد بما يتماشى بقوانين المنتدى 🙂 شكرا جزيلا استاذ فايز 🙂 يُغلق جعفر
  2. السلام عليكم 🙂 جاء على بالي ، اذا كلمة السر هي (او حتى اسم المستخدم فيه العلامة/الاشارة) : kl;'';lk لذا في الكود ، يجب تغيير كلمة السر مال الجدول ، بالاضافة الى تغيير كلمة السر التي تم ادخالها : 'chr(39)= ' 'chr(95)= _ u = Replace(Me.Texte1, Chr(39), Chr(95)) p = Replace(Me.Texte3, Chr(39), Chr(95)) myWhere = "Replace(login, chr(39), chr(95))='" & u & "'" myWhere = myWhere & " and" '<اهم شيء هو ترك مسافة في البداية قبل and myWhere = myWhere & " Replace(passe, chr(39), chr(95))='" & p & "'" '<اهم شيء هو ترك مسافة في البداية قبل passe Debug.Print myWhere جعفر
  3. وعليكم السلام 🙂 اما انا ، فأفضّل ان اقوم بكل شيء في الكود ، لأن عندي مساعة واسعة ومجال اكبر للعمل هناك 🙂 يمكنك حل المشكلة بطريقتين ، اولها بإصطياد رقم الخطأ ، ثم نعمل on error والثاني بفحص المتغير قبل دخوله في المعادلة: استعمل wzn2: G_to_K_w([units],[wzn]) وهاي الوحدة النمطية ماله Public Function G_to_K_w(u As String, w As Double) As Double 'convert Gram to Kilogram 'wzn if len(u & "")=0 then G_to_K_w =0 elseIf u = "جرام" Then G_to_K_w = w / 1000 Else G_to_K_w = w End If End Function . جعفر
  4. شوف هذا الرابط قد يساعدك : https://exceldevelopmentplatform.blogspot.com/search?q=jQuery+ جعفر
  5. وعليكم السلام ورحمة الله وبركاته 🙂 شكرا لك اخي صالح على الشرح وبالتفصيل لهذه المواضيح المهمة 🙂 من تجربتي ، فالتصفح من داخل الاكسس عن طريق webbrowser ، والذي يستعمل ieFrame.dll ، والذي هو جزء من الانترنت اكسبلورر Internet Explorer ، لا يحتوي على جميع خواص Internet Explorer الكامل ، فهذا الموضوع سيكون اشمل و أعم 🙂 فانا هنا من المتابعين كذلك ان شاء الله ، وبصمت 🙂 جعفر
  6. لا لا يا استاذ صالح ، احنا متابعين بصمت 😁 جعفر
  7. هلا والله ابو آمنه 🙂 يا رجال ، جمعت الاشياء من هني وهناك ، مو تصدق 😁 انا اكسس وبس 🙂 جعفر
  8. اخي طارق 🙂 فهمنا للطلب ، يسهل علينا الاجابة ، وطلبك ليس بالسهل ولا بالصعب ، ولكننا علشان نساعدك ، لازم نبرمج لهذا الطلب (1. للشبكة الداخلية) ، او ذاك (2. على الانترنت) ، للمواد التي تريد استعمالها ، وعلى الاكسس : واليك الفرق بينهم : 1. الشبكة الداخلية : برنامج جدا عادي ، حسب المواد اللي عندك ، والصفوف ، تضبط مجلداتك ، وعليه ، تقدر يكون عندك نموذج لإدخال المواد (عن طريق الاستاذ مثلا) ، ونموذج قراءة المواد (للطلبة) ، الواجهة والجداول ممكن تكون على الاكسس ، الواجهة على كمبيوتر الطلبة ، والجداول والمواد (المرفقات) يتم حفظها في مجلد المشاركة على السيرفر (او الكمبيوتر الذي به مجلد المشاركة) ، عمل نموذج/نماذج لعرض المرفقات . 2. على الانترنت : برنامج يقرأ من مكان ما من الانترنت ، ولا ينفع السيرفر المحلي الموجود عندك في المكتب حتى ولو عليه SQL Enterprise 2014 ، لأن الاساتذه/الطلبة ما ممكن يتصلوا به من بيوتهم (وهذا هدفك) ، تستطيع جعل الكمبيوتر المحلى سيرفر لقواعد بيانات سيكوال SQL Server والاتصال به محليا وعن بعد ، بإتباعك هذه الخطوات : وسواء اذا اتبعت الخطوات في الرابط اعلاه ، او عملت استضافة في احد مواقع الانترنت ، فبرنامج سيكون على الانترنت ، ولا يمكن لأحد الوصول اليه وادخال المواد (المرفقات) بالطرق التقليدية ، مثل ما عملنا برنامج اكسس عادي لقراءة البيانات ، فيجب ان نعمله هنا كذلك ، طبعا تقدر تعمل واجهات بإستخدام برامج الواجهات مثل php ، Java ، Python ، JavaScript ، CSS / HTML ، او برامج NET. ، وووو ، ولكن هذا خارج منتدى الاكسس ، لرفع المرفقات ، تقدر انك تضمن المرفقات في حقول قاعدة البيانات SQL Server ، او تعمل واجهة خاصة لفعها من برنامجك ، او ترفعها عن طريق FTP ، اما انزالها الى كمبيوتر الطلبة ، فهم محتاج الى رابط هذا المرفق (واللي هي سبب اسئلتي انا والاستاذ صالح من اول مشاركة) 🙂 فالموضوع مو انه ممكن او لا يمكن عمل هذا البرنامج عن طريق الاكسس ، وانما الموضوع هو ان يكون الطريق واضح امامك ، وانك تمتلك الامكانيات اللوجستية والمادية والوقت (والبرمجة هو جزء بسيط من الموضوع) للوصول لهذه الاشياء 🙂 اتمنى هذا الملخص قد شرح لك لماذا اصرارنا على هذه الاسئلة ، وسببها قولك (التدريس عن بعد) ، وفهمي انها على الانترنت : جعفر
  9. السلام عليكم 🙂 برامج الاكسس ممكن ان يصيبها العطب corruption لعدة اسباب ، وبرامج تصليح العطب يجب ان تكون من ضمن مكتبة برامج المبرمج 🙂 يُعتبر برنامج DataNumen Access Repair من احد البرامج المهمة في اصلاح ملفات الاكسس المعطوبة ، والآن الشركة تعطي النسخة الاحدث 2.9 للإستعمال الشخصي الغير تجاري ، مجانا ، من موقعهم : https://www.datanumen.com/access-repair/ انزلته وجربته ، بس لاحظت ان البرنامج بطيء بالمقارنة مع بعض البرنامج الاخرى ، ولكن لا تنسى أنها نسخة مجانية (للإستعمال الشخصي الغير تجاري) 🙂 جعفر رجاء استعمل رابط الشركة حتى تنزل آخر نسخة هناك ، بينما ارفق هنا النسخة 3 (احتياطا ، اذا غيرت الشركة رأيها لاحقا والغت النسخة المجانية ، فتكون عندنا هنا النسخة المجانية 🙂 ) daccr.zip
  10. يا باشمهندس محمد ، يعني لازم نعطيك كل اسرارنا !! هاي الله يسلمك نسخ/لصق آخر الليل كلامك صحيح ، مافي داعي للوزن هنا 🙂 جعفر
  11. او ممكن على اذا كان اسم قسم التفصيل بالعربي Private Sub تفصيل_Format(Cancel As Integer, FormatCount As Integer) End Sub اذا كان اسم قسم التفصيل بالانجليزي Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) End Sub جعفر
  12. حياك الله 🙂 هناك ملاحظات يجب ان تقوم بها : 1. حذف الجدول ، والحقول في النماذج التابعة له : 2. حذف جميع الحقول في الجدول All_P : ابتداءً من A_11 الى P_85 3. 4. اذا تم تنظيف ضرس اليوم ، فيعمل البرنامج حوله حلقة بلون اخضر ، طيب ، وبعد سنه عمل له حشو ، فيصير لون الضرس باللون الارزق ، حاليا (واعتقد هي الطريقة الصحيحة) ، فلون التنظيف الاخضر سيتم استبداله باللون الارزق ، كون لون العملية الاخيرة فقط هي التي تشير اليها الصورة. جعفر
  13. اخي طارق 🙂 كلامنا كله عن سحب البيانات : الموضوع يختلف كليا فيما اذا كانت الشبكة داخلية ، او على الانترنت ، لذا يجب ان تعرف بالضبط شو اللي تريده !! لذا تلاحظ اسئلتنا انا والاستاذ صالح تصب في هذه الناحية 🙂 وما يكفي ان تقول على الانترنت، بل يجب ان تعطينا معلومات اكثر لوسمحت 🙂 جعفر
  14. حياك الله 🙂 نعم تقدر تضيف اي عدد تريد ، وهذا الكود المسؤول عن الاخفاء (للخلع) ، او كأنك نقرت عليه ويتحول لونه للأزرق (للحشو) ، او عليه الدائة الحمراء (للتركيب) ، وتم اضافة حلقة خضراء للتنظيف في نهاية الكود : 'mark the tooth If rst!Service_Type = "خلع" Then 'خلع Me(iTooth & rst!Tooth_Number).Visible = False Me(iTooth & rst!Tooth_Number).BorderStyle = 0 'transparent ElseIf rst!Service_Type = "حشو" Then 'حشو Me(iTooth & rst!Tooth_Number) = -1 Me(iTooth & rst!Tooth_Number).BorderStyle = 0 'transparent ElseIf rst!Service_Type = "تركيب" Then 'تركيب Me(iTooth & rst!Tooth_Number).Visible = True Me(iTooth & rst!Tooth_Number).BorderStyle = 1 'solid Me(iTooth & rst!Tooth_Number).BorderWidth = 2 Me(iTooth & rst!Tooth_Number).BorderColor = RGB(255, 0, 0) ElseIf rst!Service_Type = "تنظيف" Then 'تنظيف Me(iTooth & rst!Tooth_Number).Visible = True Me(iTooth & rst!Tooth_Number).BorderStyle = 1 'solid Me(iTooth & rst!Tooth_Number).BorderWidth = 2 Me(iTooth & rst!Tooth_Number).BorderColor = RGB(0, 255, 0) End If . وبالنسبة لـ Service_Type ، فالافضل ان يكون له جدول مستقل ، بحيث تقدر وبدون برمجة ، ان تضيف اي نوع تريد 🙂 . وبسبب ان حقل الملاحظات صغير ، فلما تنقر عليه مرتين ، سترى نافذة اكبر تظهر (ZoomBox والتي تستطيع اظهارها بالضغط على F2) ، وتقدر ان تكتب فيها الملاحظة او مجرد ان تراها بالكامل 🙂 جعفر 1188.2.YOUSSEF_2020.accdb.zip
  15. السلام عليكم 🙂 ليش ما تحبون الوحدات النمطية ، سهلة ولذيذة 🙂 بدل هذا الحقل UnionUnit: IIf([units]="جرام","كيلو جرام",IIf([units]="كيلو جرام","كيلو جرام",IIf([units]="قرص","قرص"))) استعمل units2: G_to_K_u([units],[wzn]) وهاي الوحدة النمطية ماله Public Function G_to_K_u(u As String, w As Double) As String 'convert Gram to Kilogram 'units If u = "جرام" Then G_to_K_u = "كيلو جرام" Else G_to_K_u = u End If End Function . وبدل هذا الحقل UnionMeasure: IIf([units]="جرام",Format([wzn]/1000,"#,##0.000"),IIf([Units]="كيلو جرام",Format([wzn],"#,##0.000"),IIf([units]="قرص",[wzn]))) استعمل wzn2: G_to_K_w([units],[wzn]) وهاي الوحدة النمطية ماله Public Function G_to_K_w(u As String, w As Double) As Double 'convert Gram to Kilogram 'wzn If u = "جرام" Then G_to_K_w = w / 1000 Else G_to_K_w = w End If End Function . جعفر 1202.Qs For Weight (UP2).mdb.zip
  16. وعليكم السلام اخوي احمد 🙂 اهلا وسهلا بك في المنتدى 🙂 رجاء قراءة قوانين المنتدى ، حتى تستفيد الاستفادة القصوى من المنتدى 🙂 قواعد المشاركة فى الموقع اضغط هنـــــــــامن فضلك لقراءة القواعد كاملة و بصفة خاصة نؤكدعلى ما يلي 1- يمنع منعا باتا نشر أية مواد تخالف حقوق الملكية الفكرية و يرجى الابلاغ عن المشاركات المخالفة من خلال زر تقرير اسفل المشاركة 2-يجب استخدام خاصيةالبحث قبل طرح السؤال توفيرا للوقت و الجهد. 3-ضرورة كتابة عنوان واضح للموضوع يدل على محتواه ويعطي وصفاً مختصرا للسؤال. 4-ممنوع منعا باتاً كتابة عناوين سينمائية مثل عاجل ، نداء الي فلان ، الي الخبراء ، طلب مساعدة ، أريد حلا..... 5-يمكن استعجال الرد باستخدام تعبير -للرفع- و غير مسموح بالالحاح او اللوم فجميع الاعضاء يشاركون تطوعا طبقا لسعة وقتهم. ومخالفة ذلك تعرض الموضوع للحذف جعفر
  17. يمكننا بهذه الطريقة التغلب على هذه الحركات في اسم المستخدم او كلمة السر ، بحيث نستبدل اشارة ' بـ _ ونقارن الكلمات بالجدول : Dim u, p As String u = Replace(Me.Texte1, "'", "_") p = Replace(Me.Texte3, "'", "_") والآن جربها على اي من الطرق التي اقترحتها : Dim rs As dao.Recordset Dim u, p As String u = Replace(Me.Texte1, "'", "_") p = Replace(Me.Texte3, "'", "_") ' Set rs = CurrentDb.OpenRecordset("select * from test1", dbOpenDynaset) ' If Not rs.EOF Then rs.MoveFirst ' Debug.Print "login='" & u & "'" & " and passe='" & p & "'" ' rs.FindFirst ("login='" & u & "'" & " and passe='" & p & "'") ' If rs.NoMatch = True Then ' MsgBox "????" ' Else ' DoCmd.OpenForm "test2", acNormal ' DoCmd.Close acForm, Me.Name, acSaveNo ' End If ' ' Set rs = Nothing ' If DCount("*", "test1", "login='" & u & "'" & " and passe='" & p & "'") = 0 Then ' MsgBox "????" ' Else ' DoCmd.OpenForm "test2", acNormal ' DoCmd.Close acForm, Me.Name, acSaveNo ' End If Dim myWhere As String myWhere = "login='" & u & "'" myWhere = myWhere & " and" '<اهم شيء هو ترك مسافة في البداية قبل and myWhere = myWhere & " passe='" & p & "'" '<اهم شيء هو ترك مسافة في البداية قبل passe Debug.Print myWhere ' rs.FindFirst myWhere ' ' او If DCount("*", "test1", myWhere) = 0 Then MsgBox "????" Else DoCmd.OpenForm "test2", acNormal DoCmd.Close acForm, Me.Name, acSaveNo End If . جعفر
  18. شكرا جزيلا اخوي خالد 🙂 يا ريت اخوي محمد (rey360) اعطيتنا هذه التفاصيل من البداية 🙂 على العموم ، انا ارفقت لك هذا الكود في مشاركاتي السابقة ، فرجاء تجربه : Dim myWhere As String myWhere = "login='" & Me.Texte1 & "'" myWhere = myWhere & " and" '<اهم شيء هو ترك مسافة في البداية قبل and myWhere = myWhere & " passe='" & Me.Texte3 & "'" '<اهم شيء هو ترك مسافة في البداية قبل passe Debug.Print myWhere If DCount("*", "test1", myWhere) = 0 Then MsgBox "????" Else DoCmd.OpenForm "test2", acNormal DoCmd.Close acForm, Me.Name, acSaveNo End If جعفر
  19. هلا ومرحبا بيك ، وبأهلك ، وبالجمل اللي رحل بك 🙂
  20. شكرا جزيلا 🙂 انا ارد على السؤال اثناء تناول الغداء ، فمعذور فالمعادلة الصحيحة تكون : If DCount("*", "test1", "login='" & Me.Texte1 & "'" & " and passe='" & Me.Texte3 & "'") = 0 Then جعفر
  21. وعليكم السلام 🙂 انا ما فهمت السؤال ، ولكن وجدت خطأ في الكود 🙂 وعلشان تعرف وين الخطأ ، دائما استعين بـ Debug.print ، وفي حالتك : Debug.Print "login='" & Me.Texte1 & "'" & "and passe='" & Me.Texte3 & "'" والنتيجة login='mmm'and passe='bb' . وتلاحظ انه ما في مسافة قبل and لهذا السبب ، الكود بعد التعديل يصير : Dim rs As dao.Recordset Set rs = CurrentDb.OpenRecordset("select * from test1", dbOpenDynaset) ' If Not rs.EOF Then rs.MoveFirst Debug.Print "login='" & Me.Texte1 & "'" & " and passe='" & Me.Texte3 & "'" rs.FindFirst ("login='" & Me.Texte1 & "'" & " and passe='" & Me.Texte3 & "'") If rs.NoMatch = True Then MsgBox "????" Else DoCmd.OpenForm "test2", acNormal DoCmd.Close acForm, Me.Name, acSaveNo End If rs.close Set rs = Nothing . وتستطيع ان تستعمل كود اخف : If DCount("*", "test1", "login='" & Me.Texte1 & "'" & " and passe='" & Me.Texte3 & "'") > 0 Then MsgBox "????" Else DoCmd.OpenForm "test2", acNormal DoCmd.Close acForm, Me.Name, acSaveNo End If . ولكن هذين الكودين يعتمدون على المعيار ، لذلك اعطيك طريقتي في عمل المعيار ، واللي يسهل عليك : . فيكون الكود في حالتك : Dim myWhere As String myWhere = "login='" & Me.Texte1 & "'" myWhere = myWhere & " and" '<اهم شيء هو ترك مسافة في البداية قبل and myWhere = myWhere & " passe='" & Me.Texte3 & "'" '<اهم شيء هو ترك مسافة في البداية قبل passe rs.FindFirst myWhere او If DCount("*", "test1", myWhere) > 0 Then جعفر
  22. تفضل Private Sub Form_Error(DataErr As Integer, Response As Integer) If DataErr = 2113 Then Response = acDataErrContinue me.undo msgbox "ادخل البطاقة مرة اخرى" me.ID.setfocus End If End Sub . ولكني لازلت اقول بأنه ممكن فيه طريقة افضل من هذه ، تلك التي يتسلسل فيها دخول البيانات من البطاقة !! لأنك بهذه الطريقة تضطر تصيد الاخطاء واحدة خلف الاخرى وووو ، بينما مثلا : لما تُدخل البطاقة في الجهاز ، يجب ان يكون التركيز على حقل رقم البطاقة ، وآخر حقل يتم ادخاله هو تاريخ الانتهاء ، ومنها ينتقل التركيز للحقل التالي ، هنا ، وعلى حدث "بعد التحديث" للحقل تاريخ الانتهاء ، يمكنك ان تظهر رسالة: هل تريد حفظ البيانات ، نعم ، لا : Dim Msg, Style, Title, Response Msg = "هل تريد حفظ البيانات ?" & vbcrlf & _ "نعم: احفظ البيانات" & vbcrlf & _ "لا : لا تحفظ البيانات" Style = vbYesNo + vbCritical + vbDefaultButton1 ' Define buttons. Title = "تم ادخال البيانات، ولكنها لم تُحفظ بعد" ' Define title. ' context. ' Display message. Response = MsgBox(Msg, Style, Title) If Response = vbYes Then ' User chose Yes. docmd.runcommand accmdsaverecord ' احفظ السجل me.id.setfocus 'وانتقل الى حقل ID مرة اخرى استعدادا لإدخال بيانات بطاقة جديدة Else ' User chose No. me.undo ' Perform some action. me.id.setfocus 'وانتقل الى حقل ID مرة اخرى استعدادا لإدخال بيانات بطاقة جديدة End If . الميزة في ظهور الرسالة هو ، انه لا يسمح لك عمل اي شيء آخر في السجل ، إلا بعد ان تستجيب للرسالة ، مما يسهل عليك ولا تحتاج الى بقية الكود ولا ولا 🙂 Private Sub Form_Error(DataErr As Integer, Response As Integer) Dim x As Integer x = DataErr If x > 0 Then ' Response = acDataErrContinue 'ÞÏ áÇ ÊÍÊÇÌ Çáì åÐÇ ÇáÓØÑ Me.Undo End If End Sub هو بمثابة هذا الكود لأن تقريبا جميع الاخطاء ارقامها موجبه Private Sub Form_Error(DataErr As Integer, Response As Integer) Response = acDataErrContinue Me.Undo End Sub جعفر
  23. 1. هل جربت الكود ، وتم عمل اللازم ؟ 2. تصطاد رقم الخطأ ، ثم تضيف الكود برقم الخطأ 🙂 بس اعتقد بأن موضوعك لا يتم التعامل معه بهذه الطريقة !! على حسب تجربتي مع سكانر MRZ : فطريقة قراءة البطاقة ، سطر بسطر ، ولذلك ، ولما يصل الى السطر الاخير ، تستطيع: 1. ان تحفظ السجل تلقائيا ، وتنقل التركيز للسطر الاول (انظر رقم2) ، 1و 2. تجعل التركيز يذهب للسطر الاول (وتكون القيمة فيه مظلله) ، بحيث اذا اراد ان يُدخل بطاقة ثانية ، فلا يحصل على خطأ 🙂 جعفر
  24. في هذه الحالة ، السجل لم يتم حفظه بعد ، فلا يمكنك حذفه ، وانما يمكنك إلغاءه 🙂 Private Sub Form_Error(DataErr As Integer, Response As Integer) If DataErr = 2113 Then Response = acDataErrContinue 'قد لا تحتاج الى هذا السطر me.undo End If End Sub او تحذف بيانات النموذج : me.text1="" me.text2="" ومن الصورة الاخيرة اللي ارفقتها ، انت لم تنسخ الكود بالكامل ، نسيت اهم سطر : جعفر
  25. طبعا قصدك مع رقم الخطأ ، وإلا ، وبحدوث اي رسالة خطأ ، سيتم حذف الاخضر واليابس 🙂 اخي حسين ، صدقني لما قلت لك ، هذه طريقة اصطياد الخطأ ، والنتيجة ، وحسب طلبك : جعفر
×
×
  • اضف...

Important Information