-
Posts
9903 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
404
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
Private Sub Form_BeforeUpdate(Cancel As Integer) Dim ctl As Access.Control Dim jLock As Integer Dim jItems As String, Style, Response jLock = 0 jItems = "" 'Don't go through New Records If Me.NewRecord = False Then 'go through Form controls For Each ctl In Me.Controls 'only Textboxes If ctl.ControlType = acTextBox Then ctl.SetFocus 'check if the value has been changed If Val(Nz(ctl.Text, "")) <> Val(Nz(ctl.OldValue, "")) Then jLock = 1 jItems = "The Field: " & ctl.Name & vbCrLf & _ "The OLD value : " & Nz(ctl.Text, "") & vbCrLf & _ "The New value : " & ctl.OldValue & vbCrLf & _ "------------------------------------" & vbCrLf & jItems End If 'Nz End If 'ControlType Next 'the confirmation If jLock = 1 Then jItems = jItems & vbCrLf & vbCrLf & _ "Do you want to Accept Changes?" Style = vbYesNo + vbCritical + vbDefaultButton2 Response = MsgBox(jItems, Style, Title, Help, Ctxt) If Response = vbYes Then DoCmd.Save Else Cancel = True Me.Undo End If End If 'jLock End If 'NewRecord Set ctl = Nothing End Sub
-
اي سطر؟ وإلا اقول لك ، واللي يرحم والديك ، بدل الكر والفر ، ارفق هذه الجزئية من البرنامج مع شوية بيانات ، واخبرني طريقة الحصول على هذا الخطأ. جعفر
-
هلا وغلا بس انا شايف ان اخوي شفان يطالع الموضوع ، واذا وُجد الماء بطل التيمم جعفر
-
أخي كريمو الظاهر انك مو راضي عني ولا توضيح عن المطلوب ، وكيف الحساب ووووو ، واقارنه مع اي حقل او احسبه من اي حقل ، او تاريخ !! جعفر
-
وعليكم السلام تفضل ضع الكود في حدث النموذج "قبل التحديث": Private Sub Form_BeforeUpdate(Cancel As Integer) Dim ctl As Access.Control dim jLock as integer dim jItems as string, x, Style, Response jLock = 0 jItems = "" 'Don't go through New Records If Me.NewRecord = False Then 'go through Form controls For Each ctl In Me.Controls 'only Textboxes If ctl.ControlType = acTextBox Then ctl.SetFocus x = Nz(ctl.Text, "") 'check if the value has been changed If Val(x) <> Val(ctl.OldValue) Then jLock = 1 jItems = "The Field: " & ctl.Name & vbCrLf & _ "The OLD value : " & Nz(ctl.Text, "") & vbCrLf & _ "The New value : " & ctl.OldValue & vbCrLf & _ "------------------------------------" & vbCrLf & jItems End If 'Nz End If 'ControlType Next 'the confirmation If jLock = 1 Then jItems = jItems & vbCrLf & vbCrLf & _ "Do you want to Accept Changes?" Style = vbYesNo + vbCritical + vbDefaultButton2 Response = MsgBox(jItems, Style, Title, Help, Ctxt) If Response = vbYes Then DoCmd.Save Else Cancel = True Me.Undo End If End If 'jLock End If 'NewRecord End Sub جعفر
-
أخي كريمو انا كنت امزح ، فأعتذر منك اي حقل يجب ان انظر اليه ، وما النتائج التي يجب ان تكون ، وفي اي تاريخ !! انا ما عندي ادنى فكرة !! جعفر
-
أخي كريمو انت تعرف اني احتاج دليل وشرح للمرفق ، فكل اللي اقدر اقوله عن المرفق: 1. شكله جميل ، 2. ما احب النماذج المنبثقة ، ودائما اغيرها الى عادية ، 3. وما احب On Timer ، لأنه يجعل الكمبيوتر يبذل جهد ، اللي ممكن استغلاله لشئ افضل ، ويتعبني في الكود جعفر
-
وعليكم السلام تفضل ضع الكود في حدث النموذج "قبل التحديث": Private Sub Form_BeforeUpdate(Cancel As Integer) Dim ctl As Access.Control jLock = 0 jItems = "" 'Don't go through New Records If Me.NewRecord = False Then 'go through Form controls For Each ctl In Me.Controls 'only Textboxes If ctl.ControlType = acTextBox Then ctl.SetFocus x = Nz(ctl.Text, "") 'check if the value has been changed If Val(x) <> Val(ctl.OldValue) Then jLock = 1 jItems = "The Field: " & ctl.Name & vbCrLf & _ "The OLD value : " & Nz(ctl.Text, "") & vbCrLf & _ "The New value : " & ctl.OldValue & vbCrLf & _ "------------------------------------" & vbCrLf & jItems End If 'Nz End If 'ControlType Next 'the confirmation If jLock = 1 Then jItems = jItems & vbCrLf & vbCrLf & _ "Do you want to Accept Changes?" Style = vbYesNo + vbCritical + vbDefaultButton2 Response = MsgBox(jItems, Style, Title, Help, Ctxt) If Response = vbYes Then DoCmd.Save Else Cancel = True Me.Undo End If End If 'jLock End If 'NewRecord End Sub جعفر
-
مساعدة فى عمل اختيار متعدد فى نموذج فرعي
jjafferr replied to MOH_SHERIF's topic in قسم الأكسيس Access
عفوا كنت اعتقد انه تم التوضيح في الاجابة شو المطلوب الآن؟ جعفر -
السبب في مشكلة المعادلة هي انك كنت تأخذ النتيجة وتضربها في الاشهر ، بينما اذا استعملت المعادلة الاصلية ، فستكون النتائج صحيحة ، انظر هذا العمل لثلاث سنوات: جعفر
-
وعليكم السلام نعم المفروض تستطيع عمل هذا ، ولكن يجب ان يكون عندك بقية الجداول و الحقول ، ثم استخدم معالج التقارير ، واعمل مجموعات لكل حقل ، او لكل مجموعة ، ويعطيك المعالج الاختيار في طريقة العرض التي طلبتها ، وبقليل من المحاولات ستصل للمطلوب ان شاء الله جعفر
-
وعليكم السلام أخي كريمو لماذا نستعمل هذه المعادلة ؟ اذا كانت وظيفته تعطيه اجازة معينة عند توظيفة ، مثلا 30 يوم في السنة ، ثم سنويا تريد تضيف يوم على الـ 30 يوم ، فالمعادلة ستكون سهلة هل مفهومي للسؤال صحيح؟ جعفر
-
السلام عليكم اخي رضا ، ما قادر اختار شئ من حقل كود التصنيف ، يعطيني رسالة خطأ ، رجاء اعطنا برنامج يعمل حاول تضع هذا الكود وشوف اذا يعمل Private Sub كود_التصنيف_AfterUpdate() On Error GoTo err_Handler Dim rst As DAO.Recordset Set rst = Me.RecordsetClone rst.MoveLast: rst.MoveFirst If Me.NewRecord Then rst.MovePrevious A = rst![رقم امر الصرف] rst.MoveNext Me.[رقم امر الصرف] = A End If Exit_Handler: rst.Close: Set rst = Nothing Exit Sub err_Handler: If Err.Number = 3021 Then Resume Exit_Handler Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub جعفر
-
سخ ملف pdf من مجلد في السيرفر الى موقع جديد في السيرفر
jjafferr replied to بن شجاع الدين's topic in قسم الأكسيس Access
وعليكم السلام المشكلة في امر فتح الملفات: Application.FollowHyperlink strFilePath ويمكنك اتباع احد هذه الطرق لإستبداله بأمر آخر: http://allenbrowne.com/func-GoHyperlink.html http://access.mvps.org/access/api/api0018.htm http://access.mvps.org/access/api/api0004.htm http://www.utteraccess.com/wiki/index.php/Opening_Files_From_Access جعفر -
تشغيل برنامج الاكسس في اي مجلد ، وبدون رسائل الأمان
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
وعليكم السلام اخوي كاسر كل الموجود اعلاه لا علاقة له بكيفية فتح البرنامج ، فاقترح عليك زيارة الرابط التالي: هنا اوضحت كيف اجعل برامجي تشتغل ، عن طريق الماكرو autoexec ، وتعبئ الشاشة ، ولا استعمل النماذج المنبثقة إلا نادرا حيا الله اخوي أنس جعفر -
شاشة انتظار تعتمد على الوقت الذي يستغرقه فتح التقرير
jjafferr replied to كوماندير's topic in قسم الأكسيس Access
السلام عليكم مع الاعتذار لك ، ولكن لا ارى اي علاقة بين النموذج الذي يتم فتحه لمدة 1000 ملي ثانية = ثانية واحدة ، وبين فتح التقرير !! جعفر -
السلام عليكم اضطررت عمل جدول مؤقت للموضوع ، وهناك طريقتين وضعتهم لك: 1. جدول مؤقت tbl_Balance في قاعدة البيانات ، بحيث يتم حذف البيانات القديمة منه ، ثم ادخال البيانات الجديدة اليه ، ونستخدم الاستعلام qry_Balance للتقرير ، وانا شخصيا لا احبذ وجود جدول مؤقت داخل قاعدة البيانات ، لأنه يجعل حجم البرنامج يكبر ، الى ان بين كل فترة واخرى تضغط على زر الاصلاح Compact and Repair ، 2. جدول مؤقت خارج البرنامج (في مجلد Temp الوندوز) ، وكل ماله علاقة بهذه الطريقة يحمل رقم2 ، والتقرير2 يأخذ مصدره من هذا الجدول المؤقت ، ولا يستخدم الاستعلام qry_Balance. جعفر 597.2.Test2.accdb.zip
-
وعليكم السلام اولا ، ارفق لك تغيير جدا طفيف ، وهو لتوقيف الخطأ اذا لم يكن هناك سجلات ، ثانيا ، المعادلة التي تفضلت بها غير عن المعادلة التي ارفقتها انا ، فما ادري اذا انت عملت تغيير آخر كذلك ّّ والافضل انك ترفق برنامجك الذي اعطاك الخطأ. Option Compare Database Public B As Long Public x() Public B2() Function Bal(ID, C, D) On Error GoTo err_Bal 'C = Cash 'D = Depo 'Do this for entry to the Function If B = 0 Then 'asign a Zero value to x(), 'we will need this so that the Function will NOT repeat 'going over the old records over and over due to scrolling the Query up and down Dim rst As DAo.Recordset Set rst = CurrentDb.OpenRecordset("SELECT * FROM Qry_Cust_Deno_Depo WHERE [Receipt Date]=" & DateFormat([Forms]![Search]![MyDate])) rst.MoveLast: rst.MoveFirst RC = rst.RecordCount ReDim x(RC) ReDim B2(RC) For i = 1 To RC x(rst![Receipt Number]) = 0 rst.MoveNext Next i rst.Close: Set rst = Nothing End If If x(ID) = 0 Then '1st entry asigns values C = Replace(C, "-", 0) D = Replace(D, "-", 0) B = C + B - D Bal = B x(ID) = 1 B2(ID) = B Else 'for further visits, just take the already asigned value Bal = B2(ID) End If Exit_Bal: Exit Function err_Bal: If Err.Number = 3021 Then Resume Exit_Bal Else MsgBox Err.Number & vbCrLf & Err.Description End If End Function Function DateFormat(varDate As Variant) As String 'Purpose: Return a delimited string in the date format used natively by JET SQL. 'Argument: A date/time value. 'Note: Returns just the date format if the argument has no time component, ' or a date/time format if it does. 'Author: Allen Browne. allen@allenbrowne.com, June 2006. ' 'calling the Function: DateFormat(The_Date_Field) 'a = dlookup("[some field]","some table","[id]=" & me.id & " And DateFormat(The_Date_Field)") ' If IsDate(varDate) Then If DateValue(varDate) = varDate Then DateFormat = Format$(varDate, "\#mm\/dd\/yyyy\#") Else DateFormat = Format$(varDate, "\#mm\/dd\/yyyy hh\:nn\:ss\#") End If End If End Function جعفر 597.1.Test2.accdb.zip
-
شكرا على تنبيهي على هذا الخطأ هناك تغييرين في البرنامج ، 1. في الاستعلام ، فارسلنا رقم الوصل ايضا الى الوحدة النمطية ، 2. وهذه الوحدة النمطية الجديدة: Option Compare Database Public B As Long Public x() Public B2() Function Bal(ID, C, D) 'C = Cash 'D = Depo 'Do this for entry to the Function If B = 0 Then 'asign a Zero value to x(), 'we will need this so that the Function will NOT repeat 'going over the old records over and over due to scrolling the Query up and down Dim rst As DAo.Recordset Set rst = CurrentDb.OpenRecordset("SELECT * FROM Qry_Cust_Deno_Depo WHERE [Receipt Date]=#" & [Forms]![Search]![MyDate] & "#") rst.MoveLast: rst.MoveFirst RC = rst.RecordCount ReDim x(RC) ReDim B2(RC) For i = 1 To RC x(rst![Receipt Number]) = 0 rst.MoveNext Next i rst.Close: Set rst = Nothing End If If x(ID) = 0 Then '1st entry asigns values C = Replace(C, "-", 0) D = Replace(D, "-", 0) B = C + B - D Bal = B x(ID) = 1 B2(ID) = B Else 'for further visits, just take the already asigned value Bal = B2(ID) End If End Function جعفر 597.1.Test2.accdb.zip
-
وهذه روابط تساعد في الموضوع: جعفر
-
السلام عليكم الوقت كان متأخر ، وحطيت لك كلمتين بدون شرح ، فأعتذر منك ضع الكود على حدث النقر على الزر: نفترض اسماء الحقول رقم المورد: No = 0292 من رقم: From = 02920501 الى رقم: To = 02920509 مقارنة الاربعة ارقام الاولى من اليسار left(me.From,4) = 0292 left(me.To,4) = 0292 if left(me.From,4) <> left(me.To,4) or _ left(me.From,4) <> me.No or _ left(me.To,4) <> me.No then msgbox "Numbers Don't match" end if جعفر
-
وعليكم السلام يمكن شئ من هذا يصلح: if left(me.From,4) <> left(me.To,4) or _ left(me.From,4) <> me.No or _ left(me.To,4) <> me.No then msgbox "Numbers Don't match" end if جعفر
-
مثالك الاخير هو الذي شرح لنا المطلوب 1. نعمل استعلاملنتائج الجدولين Customer و Denomination ، واستعلام آخر لنتائج الجدولين Customer و Deposit ، ولغرض الخطوة التالية (استعلام توحيد) ، فيجب ان تكون عدد الحقول نفسها في الاستعلامين ، وبنفس الترتيب: . ونتائجهم هي كما نريد: . ثم نحول وضع الاستعلامين الى SQL ، ثم نعمل استعلام توحيد ، وننسخ SQL الاستعلام الاول الى استعلام التوحيد ، ثم جملة Union All ثم ننسخ SQL الاستعلام الثاني: . ونتيجة الاستعلام: . الآن نعمل استعلام جديد ، ومصدره استعلام التوحيد اعلاه ، ويجب استعمال زر النموذج لتشغيل الاستعلام ، كما ان الاستعلام سيأخذ التاريخ من النموذج كذلك ، والاستعلام ينادي الوحدة النمطية Bal ، والتي سيأخذ نتائجه منها: . وكود زر فتح الاستعلام هو (لاحظ انه نريد ان نبدأ متغير الجمع B من الصفر) : Private Sub cmd_qry_Cust_Deno_Depo_Click() B = 0 DoCmd.OpenQuery "qry_Balance" End Sub . وهذه نتيجة الاستعلام: . وهذه هي الوحدة النمطية: Public B As Long Function Bal(C, D) 'C = Cash 'D = Depo C = Replace(C, "-", 0) D = Replace(D, "-", 0) B = C + B - D Bal = B End Function . الباقي الذي تريده ، يجب ان تعمله في التقرير جعفر 597.Test.accdb.zip