بحث مخصص من جوجل فى أوفيسنا
Custom Search
|
-
Posts
9,871 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
403
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
تغير البيانات بناءاً على القائمة المنسدلة
jjafferr replied to الحياه ممر's topic in قسم الأكسيس Access
عفوا أختي ، اعتقد بانك ارفقتي برنامج آخر!! مافي نموذج باسم اساسي ، ولا لقيت حقل رقم اللوحة في الجداول!! جعفر -
مكتبة _ ملفات ,,, لكبار الاساتذه ,,, تم تجميعها من شروحات متعدده
jjafferr replied to ابو الآء's topic in قسم الأكسيس Access
انا اقول الرجال ساكت ، اثارية يعدل وينظم ثروته بارك الله فيك أخي أبوآلآء انا انزلت برنامجين افحصهم جعفر -
وبدون مساعدة الاستاذ رمهان جعفر
-
حياك الله للعلم ، انا قلت: وفي الكود استخدمت >= و <= يعني في مقارنتي للوقت ، قلت الوقت اكبر من او بساوي ، وللقيمة الثانية قلت اصغر من او يساوي ، والسبب اني ما استخدمت = فقط هو: ان البرنامج عندما يقضي 60 ثانية ويكون صاير وقت مراجعة وقت الكمبيوتر ، فإن البرنامج يطلب من CPU الكمبيوتر ان ينفذ الى المعادلة ، وفي الكثير من الاوقات يكون CPU الكمبيوتر مشغولا في تنفيذ اوامر اخرى (هو دائما مشغول في تنفيذ الاوامر ، هذا شغله ) ، لذلك ، فان CPU الكمبيوتر قد يتأخر بعض الوقت في تنفيذ الامر ، وبهذا تكون اجزاء من الثانية قد فاتت ، ويكون وقت المقارنة غير عن الذي كان جعفر
-
تفضل 1. التوقيت: البرنامج يفحص وقت الكمبيوتر كل دقيقة ، 2. هذا هو كود الفحص: Private Sub Form_Timer() Set rst = Me.RecordsetClone rst.MoveLast: rst.MoveFirst RC = rst.RecordCount For i = 1 To RC 'Debug.Print Format(Now, "hh:mm") & vbCrLf & Format(rst!Class_Time_From, "hh:mm") & vbCrLf & Format(rst!Class_Time_To, "hh:mm") & vbCrLf 'compare the timer with the Class_Time If Format(Now, "hh:mm") >= Format(rst!Class_Time_From, "hh:mm") And Format(Now, "hh:mm") <= Format(rst!Class_Time_To, "hh:mm") Then 'Debug.Print "I am in" rst.FindFirst "[Class_Number]=" & rst!Class_Number Me.Bookmark = rst.Bookmark Exit Sub End If rst.MoveNext Next i Debug.Print "------" End Sub 3. اضفت 3 حقول في الجدول: Class_Number: لرقم كل حصة ، ومافي داعي لها ، لكنها لتسهيل الشغل (يعني بالعربي ، انا حطيتها ، وبعدين شفت مافي داعي لها ، بس كنت كتبت الكود ومستكاود اغيره ) ، Class_Time_From: البرنامج يفحص الوقت "من" و "الى" ، وحسب التجربة ، يفضل ان يكون الوقت بينهم على الاقل 3 دقائق ، Class_Time_To: جعفر 60.تجريبي.mdb.zip
-
هذا بالضبط اللي اعمله الان شكرا لك أخي أبوآلآء جعفر
-
حياك الله أخوي رمهان في الواقع كنت اعمل برنامج اجمع فيه جميع الكائنات في النموذج والتي لا يمكن تغيير اتجاهها لليمين الى اليسار ، مثل Tree View (اعلاه) و ListBox وقد اتطرق للكائنات الباقية الكود هو ما ارفقته في هذا الموضوع بتغيير بسيط لكل نوع جعفر
-
تفضل انا وضعت الكود التالي في كود النموذج: Private Sub TreeView1_NodeClick(ByVal Node As Object) On Error GoTo err_TreeView1_NodeClick 'lblItemCode.Caption = "" 'If Node.Key <> "Root" Then ' lblItemCode.Caption = Mid(Node.Key, InStr(Node.Key, "_") + 1) 'End If 'lblPath.Caption = Node.FullPath ' Dim colon As Integer ' colon = InStr(Node.Text, ":") ' Me.txt3 = Mid(Node.Text, 1, colon - 1) ' Me.Txt4 = Mid(Node.Text, colon + 1) ' colon = InStr(Node.Child, ":") ' If colon = 0 Then ' Me.txt1 = Val(Mid(Node.Child, 1, colon - 1)) + Node.Children ' Me.txt1 = "" ' Else ' Me.txt1 = Val(Mid(Node.Child, 1, colon - 1)) + Node.Children ' End If On Error Resume Next Debug.Print "node.Child; " & Node.Child Debug.Print "node.Children; " & Node.Children Debug.Print "node.Expanded; " & Node.Expanded Debug.Print "node.FirstSibling; " & Node.FirstSibling Debug.Print "node.FullPath; " & Node.FullPath Debug.Print "node.Index; " & Node.Index Debug.Print "node.Key; " & Node.Key Debug.Print "node.LastSibling; " & Node.LastSibling Debug.Print "node.Next; " & Node.Next Debug.Print "node.Parent; " & Node.Parent Debug.Print "node.Previous; " & Node.Previous Debug.Print "node.Root; " & Node.Root Debug.Print "node.Selected; " & Node.Selected Debug.Print "node.Sorted; " & Node.Sorted Debug.Print "node.Tag; " & Node.Tag Debug.Print "node.Text; " & Node.Text Debug.Print "----------------------" Exit Sub err_TreeView1_NodeClick: If Err.Number = 91 Then colon = 0 Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub رجاء مشاهدة هذا المقطع قبل البدء في قراءة التالي: . 1. النافذة تحت الكود كانت فاضية ، 2. نقرنا في النموذج على "الحفظ العام" ، 3. رجعنا للكود ولاحظنا النتائج النقر هي: node.Child; الصادر node.Children; 2 node.Expanded; True node.FirstSibling; الحفظ العام node.FullPath; جميع الاقسام-الحفظ العام node.Index; 2 node.Key; node.LastSibling; الشئون الهندسية node.Next; الشئون الادارية node.Parent; جميع الاقسام node.Root; جميع الاقسام node.Selected; True node.Sorted; False node.Tag; Level1 node.Text; الحفظ العام ---------------------- 4. سؤالك: فنجد ان جواب سؤالك هو في الكود: node.FirstSibling; الحفظ العام او في node.FullPath; جميع الاقسام-الحفظ العام او في node.Text; الحفظ العام 5. ولما نقرنا على "الصادر" ، 6. كانت النتيجة: node.Child; 4 node.Children; 1 node.Expanded; False node.FirstSibling; الصادر node.FullPath; جميع الاقسام-الحفظ العام-الصادر node.Index; 3 node.Key; node.LastSibling; الوارد node.Next; الوارد node.Parent; الحفظ العام node.Root; جميع الاقسام node.Selected; True node.Sorted; False node.Tag; Level2 node.Text; الصادر ---------------------- فنجد ان القيمة في: node.FirstSibling; الصادر او في node.FullPath; جميع الاقسام-الحفظ العام-الصادر او في node.Text; الصادر وعلى هذا المنوال ، تستطيع ان تتوصل الى ما تريد من هذه المعلومات ومثل ما اخبرتك في البداية ، هذا الكود من احد مشاركاتي السابقة ، لذا ، فانك تستطيع ان تستخدم الكود التالي (طبعا بعمل تغييرات بسيطة على المسميات) لإستخراج اي قيمة من الكود اعلاه: ' Dim colon As Integer ' colon = InStr(Node.Text, ":") ' Me.txt3 = Mid(Node.Text, 1, colon - 1) ' Me.Txt4 = Mid(Node.Text, colon + 1) ' colon = InStr(Node.Child, ":") ' If colon = 0 Then ' Me.txt1 = Val(Mid(Node.Child, 1, colon - 1)) + Node.Children ' Me.txt1 = "" ' Else ' Me.txt1 = Val(Mid(Node.Child, 1, colon - 1)) + Node.Children ' End If جعفر 54.1.TreeView_RTL.mdb.zip
-
شكرا أخوي رمهان بس بعد ماعرفنا السبب ، في اعتقادي انه من الافضل ان نقارن الساعة قبل الانتقال الى السجل التالي ، وخصوصا اذا بالغلط تم تشغيل البرنامج في الوقت الغير صحيح ، فالطلبة بتستانس ، كما ان البرنامج لن يعطي نتائج صحيحة إلا اذ تم تشغيله في الوقت الصح ، بينما بطريقتي ، فالحصص ستكون مضبوطة يعني الاخ جمال لازم يعطينا توقيت بداية كل حصة. فيك الخير أخوي رمهان في عمل فكرتي ، إلا اذا عندك او عند الاخ جمال فكرة اخرى جعفر
-
وعليكم السلام ايش رايك اعلمك كيف تصيد بدل ما اعطيك سمكة في احد مواضيعي السابقة ، تعمقت في الاختيارات الموجودة عندنا عند النقر على اي من مكونات الشجرة ، لذا ، في الكود على النقر على الشجرة ، اكتب هذا الكود: On Error Resume Next Debug.Print "node.Child; " & Node.Child Debug.Print "node.Children; " & Node.Children Debug.Print "node.Expanded; " & Node.Expanded Debug.Print "node.FirstSibling; " & Node.FirstSibling Debug.Print "node.FullPath; " & Node.FullPath Debug.Print "node.Index; " & Node.Index Debug.Print "node.Key; " & Node.Key Debug.Print "node.LastSibling; " & Node.LastSibling Debug.Print "node.Next; " & Node.Next Debug.Print "node.Parent; " & Node.Parent Debug.Print "node.Previous; " & Node.Previous Debug.Print "node.Root; " & Node.Root Debug.Print "node.Selected; " & Node.Selected Debug.Print "node.Sorted; " & Node.Sorted Debug.Print "node.Tag; " & Node.Tag Debug.Print "node.Text; " & Node.Text Debug.Print "----------------------" وتأكد بانك فتحت نافذة النتائج (النافذة في اسفل VBA): فكلما نقرت على الشجرة ، على طول اذا لتلك النافذة وشاهد النتيجة ، وعلى اساسها ستعرف الامر الصحيح للوصول لما تريد وإحنا في الخدمة بعد محاولاتك جعفر
-
تغير البيانات بناءاً على القائمة المنسدلة
jjafferr replied to الحياه ممر's topic in قسم الأكسيس Access
طيب ارفقي برنامجك ، واشرحي فيه اي جدول ، اي حقل محتاجة للعمل عليه جعفر -
وعليكم السلام الله يطول في عمرك وتكون دوم سالم تو انت الله هداك كتبت المعادلات كلها ، قاصر تدخل اسماءها في الكود وخلص الموضوع وين المشكلة؟ جعفر
-
وعليكم السلام هذا ممكن عن طريق التوقيت في النموذج ، ولكنه غير عملي (بالنسبة لي طبعا) ، لكن السؤال ، ليش تريد عمل هذا الشئ؟ لأن ممكن تحصل على اللي تريده بطريقه ثانيه/افضل جعفر
-
ول ول ول ، هالكثر الموضوع معقد رحم الله والديك أخوي رمهان ، رفعت الرايه عنا كلنا جعفر
-
وعليكم السلام اما انا فأضع تنسيق الحقل في الجدول ، وعلى اساسه يتنظم في النموذج والاستعلام والتقرير جعفر
-
وعليكم السلام انا عملت مربع النص ، وطريقة جلب اسم الملف ، فقط لتسهيل العمل ، انا افهم من سؤالك بأنك تريد ان توضع اسم ومسار الملف في الكود مباشرة (وإلا كيف نعرف اي ملف نشتغل علي!!) هذا هو الكود للطباعة: Private Sub cmdPrintLandscape_Click() Dim objWord As Object Set objWord = CreateObject("Word.Application") objWord.Documents.Open ("C:\Temp\abc.doc") objWord.Visible = False 'True '<== ** Look at the code below objWord.PrintOut ' wait for the printout to finish, then close Word Do While objWord.BackgroundPrintingStatus > 0 'pause 5 seconds untill the document is printed PauseTime = 5 ' Set duration. Start = Timer ' Set start time. Do While Timer < Start + PauseTime DoEvents ' Yield to other processes. Loop Loop objWord.Documents.Close Save = False objWord.Quit Set objWord = Nothing End Sub وتشغيل برنامج exe Private Sub cmd_run_Click() On Error Resume Next Shell "C:\windows\Notepad.exe", 1 End Sub جعفر
-
زيادة مبلغ إيقاف الخصم الشهري الى مبلغ القرض
jjafferr replied to كريمو2's topic in قسم الأكسيس Access
شكرا لك على هذه الاجابات بعد حوالي ساعة من الان ابدأ العمل إن شاء الله الفكرة هي: نبني جدول جديد اسمه tbl_Loans ، هذا الجدول نسجل فيه القروض ، بكل انواعها ، بحيث عند عمل القرض في النموذج Cridi (او اي نوع آخر من القروض) ، فتلقائيا يعمل 10 سجلات (يعتمد على نوع القرض) ، ولما يسدد قرض الشهر ، فقيمة التسديد تظهر في حقل المبلغ المدفوع (وهنا ميزة اخرى لهذا الحقل ، وهو اذا شاء الموظف ان يسدد اي مبلغ آخر ، فندخله المبلغ هنا) ، وبالنسبة لأشهر الاعفاء ، فسيكون سجل اسم الشهر موجودا ، ولكن بدون مبلغ الاقتطاع الشهري ، مع وجود ملاحظة بان الشهر معفي ، وعلى هذا الاساس ، فحساب المبالغ المطلوب اقتطاعها ، ستكون من هذا الجدول ، وحساب المبالغ المتبقية وووو ، طبعا هذا التغيير ، سيجعلك تغير في بعض النماذج الاخرى ، لقراءة المبالغ الحقيقة (وحسابها في اي وقت شئت) وليست مبالغ إفتراضية فهل نتوكل على الله بالعمل علي هذه الطريقة؟ جعفر -
بالعكس ، العائلة بتكون مجتمعة مع بعض بالطريقه هاي واعتذاري لك ، ولأبومحمد ، لأني ما انزلت مرفقكم ، فما اعرف اللي فيه جعفر
-
زيادة مبلغ إيقاف الخصم الشهري الى مبلغ القرض
jjafferr replied to كريمو2's topic in قسم الأكسيس Access
السلام عليكم اخي كريمو سؤال لوسمحت: هل البرنامج يقوم بعمل آخر غير عملية السلف؟ جعفر -
تغير البيانات بناءاً على القائمة المنسدلة
jjafferr replied to الحياه ممر's topic in قسم الأكسيس Access
أختي هذا مثال لطريقة العمل ، لنفس الغرض الذي تريديه ، ما لك شغل في بقية البرنامج ، خذي حاجتك منه جعفر -
تغير البيانات بناءاً على القائمة المنسدلة
jjafferr replied to الحياه ممر's topic in قسم الأكسيس Access
وعليكم السلام هذا مثال: http://www.officena.net/ib/index.php?showtopic=59606&p=382425 جعفر -
تحسس الحروف الصغيرة والكبيرة في صلاحية المستخدمين
jjafferr replied to وسيم الحمادة's topic in قسم الأكسيس Access
وعليكم السلام ورحمة الله وبركاته حيا الله من سألنا سؤال غير عن كل يوم الاكسس لا يفرق بين الحروف الكبيرة UpperCase/Ucase و LowerCase/LCase ، فلهذا السبب يجب ان نحل المسألة بطريقة اخرى. هناك أكثر من طريقة لعمل المطلوب: 1. قراءة رقم كل حرف (انا احتفظ بالصورة الاولى ascii table في الرابط التالي ، وهي جدا مفيدة للمبرمج): http://www.asciitable.com/ من الجدول ، قيمة A = 65 ، بينما قيمة a = 97 جرب هذا الكود: msgbox asc("A") msgbox asc("a") ففي هذه الحالة ، يجب ان نقارن قيم الاحرف بين القيمة في النموذج والتي في الجدول ومادمنا في سياق ascii table ، فترى اننا في بعض الاوقات في الكود ، عندما نريد استخدام الرمز " وقد يكون من الصعب استخدامه مباشرة ، فاننا نستخدم (chr(34 2. طريقة نستخدم الامر StrComp وهو يقوم بمقارنة جملتين ، ولكن علينا التاكد باننا نقارن vbBinaryCompare ، مثل: Comp_User = StrComp(rst!username, Me.username, vbBinaryCompare) فاذا كانت النتيجة تساوي صفر ، فمعناه ان الجملتين متشابهتين هذا كود برنامجك للمقارنة: Private Sub login_Click() If trycount > 2 Then MsgBox " من حُسن إسلام المرء تركه ما لا يعنيه ", vbOKOnly + vbMsgBoxRight + vbInformation, "تحذير " MsgBox " سيتم إغلاق البرنامج الآن ،،، يجب مراجعة المسؤول ", vbOKOnly + vbMsgBoxRight + vbInformation, "تحذير !" DoCmd.Quit End If Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Select * From users") rst.MoveLast: rst.MoveFirst RC = rst.RecordCount For i = 1 To RC If rst!depart = 1 Then Comp_User = StrComp(rst!username, Me.username, vbBinaryCompare) Comp_Pass = StrComp(rst!txtpassword, Me.txtpassword, vbBinaryCompare) If Comp_User = 0 And Comp_Pass = 0 Then MsgBox "مرحباً بك " & Me.username DoCmd.OpenForm "ادارة الجوازات", acNormal DoCmd.SelectObject acForm, "login2" Me.Visible = False Exit Sub End If End If rst.MoveNext Next i MsgBox "تاكد من صحة اسم المستخدم وكلمة المرور" trycount = trycount + 1 End Sub وانا عملت المقارنة للحقلين username و txtpassword جعفر 59.اظهار كلمة المرور.accdb.zip -
وعليكم السلام أخي علي للأسف سؤالك غير واضح رجاء تعمل اكثر من مثال في الاكسل او الوورد (مثلا الرقم التعريفي 107 ، فيه رقمين ، كيف تريدنا نتعامل معاهم) ، ورجاء اعطاء ادق التفاصيل ، حتى نعرف المطلوب بالضبط جعفر
-
وعليكم السلام علشان تحصل على: انت محتاج الى استعلام تحديث : والاستعلام: UPDATE Families SET Families.FileNumber = Left([FileNumber],1) & "0" & Right([FileNumber],3); والاستعلام فيه "0" ، ويعني صفر واحد ، تقدر تزيد الاصفار مثل ما تريد ، مثل "00000" جعفر
-
وعليكم السلام شوف كيف عملناه في برنامجنا السابق: http://www.officena.net/ib/index.php?s=9665ba43203e1be265350f9ce98f3c97&showtopic=60710 لكل حقل if خاص بيها جعفر