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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

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

  1. وعليكم السلام جرب هاي الكود ، طبعا بعدما تغير اسماء الحقول Private Sub Form_Error(DataErr As Integer, Response As Integer) 'MsgBox DataErr & vbCrLf & Screen.ActiveControl.Name & vbCrLf & _ Screen.ActiveControl.ControlType & vbCrLf & Screen.ActiveControl.Format If DataErr = 2113 And Screen.ActiveControl.Name = "iDate" Then Response = acDataErrContinue MsgBox "Date" ElseIf DataErr = 2113 And Screen.ActiveControl.Name = "icode" Then Response = acDataErrContinue MsgBox "Code" End If End Sub جعفر
  2. المعذرة تفضل Option Compare Database Dim strcriteria As String ' Private Sub dfgh_AfterUpdate() Call searchCriteria End Sub Private Sub Form_Load() Call searchCriteria End Sub Private Sub n1_AfterUpdate() Call searchCriteria End Sub Private Sub n2_AfterUpdate() Call searchCriteria End Sub Private Sub qwer_AfterUpdate() Call searchCriteria End Sub Function searchCriteria() Dim task As String strcriteria = "" If Not IsNull(Me.dfgh) Then strcriteria = strcriteria & " And " strcriteria = strcriteria & " [اسم المشتري] = '" & Me.dfgh & "' " End If If Not IsNull(Me.qwer) Then strcriteria = strcriteria & " And " strcriteria = strcriteria & " [نوع البيع] = '" & Me.qwer & "' " End If If Not IsNull(Me.n1) And Not IsNull(Me.n2) Then strcriteria = strcriteria & " And " strcriteria = strcriteria & "Format([تاريخ الفاتورة],'yyyymmdd') Between " & Format(Me.n1, "yyyymmdd") & " And " & Format(Me.n2, "yyyymmdd") End If If Left(strcriteria, 5) = " And " Then strcriteria = " Where " & Mid(strcriteria, 6) End If 'Debug.Print strcriteria task = "Select * from [راس الفاتورة]" & strcriteria Me.مساعد_تصفية_فواتير_البيع.Form.RecordSource = task Me.مساعد_تصفية_فواتير_البيع.Form.Requery End Function Private Sub اغلاق_Click() DoCmd.Close acForm, "تصفية فواتير البيع" DoCmd.OpenForm "المركزي", acNormal End Sub Private Sub أمر10_Click() Me.dfgh = Null Me.qwer = Null Me.n1 = Null Me.n2 = Null Call searchCriteria End Sub Private Sub أمر11_Click() strcriteria = Replace(strcriteria, " Where ", "") 'DoCmd.OpenReport "تصفية البيع", acViewPreview, , strcriteria DoCmd.OpenReport "تصفية البيع", acViewNormal, , strcriteria End Sub جعفر 870..accdb.zip
  3. وعليكم السلام واهلا وسهلا بم في المنتدى تفضل: Option Compare Database Dim strcriteria As String ' Private Sub dfgh_AfterUpdate() Call searchCriteria strcriteria = "" End Sub Private Sub Form_Load() Call searchCriteria strcriteria = "" End Sub Private Sub n1_AfterUpdate() Call searchCriteria End Sub Private Sub n2_AfterUpdate() Call searchCriteria strcriteria = "" End Sub Private Sub qwer_AfterUpdate() Call searchCriteria strcriteria = "" End Sub Function searchCriteria() Dim task As String If Not IsNull(Me.dfgh) Then strcriteria = " And " strcriteria = strcriteria & " [اسم المشتري] = '" & Me.dfgh & "' " End If If Not IsNull(Me.qwer) Then strcriteria = strcriteria & " And " strcriteria = strcriteria & " [نوع البيع] = '" & Me.qwer & "' " End If If Not IsNull(Me.n1) And Not IsNull(Me.n2) Then strcriteria = strcriteria & " And " strcriteria = strcriteria & "Format([تاريخ الفاتورة],'yyyymmdd') Between " & Format(Me.n1, "yyyymmdd") & " And " & Format(Me.n2, "yyyymmdd") End If If Left(strcriteria, 5) = " And " Then strcriteria = " Where " & Mid(strcriteria, 6) End If 'Debug.Print strcriteria task = "Select * from [راس الفاتورة]" & strcriteria Me.مساعد_تصفية_فواتير_البيع.Form.RecordSource = task Me.مساعد_تصفية_فواتير_البيع.Form.Requery End Function Private Sub اغلاق_Click() DoCmd.Close acForm, "تصفية فواتير البيع" DoCmd.OpenForm "المركزي", acNormal End Sub Private Sub أمر10_Click() Me.dfgh = Null Me.qwer = Null Me.n1 = Null Me.n2 = Null Call searchCriteria End Sub Private Sub أمر11_Click() Call searchCriteria DoCmd.OpenReport "تصفية البيع", acViewNormal, , strcriteria strcriteria = "" End Sub جعفر 870.بيع.accdb.zip
  4. وعليكم السلام الكود سيصبح Private Sub a_AfterUpdate() Call Compare_a_b End Sub Private Sub b_AfterUpdate() Call Compare_a_b End Sub Private Sub Compare_a_b() If Len(Me.a & "") <> 0 And Len(Me.b & "") <> 0 Then If Me.a > 2000 And Me.b < 5000 Then Me.c = 2 ElseIf Me.a > 5000 And Me.b < 10000 Then Me.c = 3 Else Me.c = "" End If Else Me.c = "" End If End Sub جعفر 867.11.mdb.zip
  5. وعليكم السلام انا جمعت لك السؤالين معا ، لأن الاجابة ستكون متكامله جعفر لوسمحت تأخذ البيانات من برنامجك لتلميذ واحد ، وتعمل على الاكسل الطريقة التي تريدنا نعملها في الاكسس. محتاج هذا المثال لمعرفة المطلوب بالضبط.
  6. وعليكم السلام ولأنك ما اعطيتنا مثال ، فعملت جميع انواع الجمع جعفر 864.جمع تراكمي.mdb.zip
  7. وعليكم السلام بالنسبة الى التقرير ، فإعدادات الاكسس تحتوي على مسافات (فراغات من اليمين واليسار) ، . وفي تصميم التقرير ، عرض التقرير يعتمد على حجم الورقة التي قمت بإختيارها ، وفي حالتك A4 ، ولكن الطابعة تحتاج ان تسحب الورقة من جميع الجهات (الاعلى والاسفل واليمين واليسار) عن طريق بكرات (وحجم هذه البكرات تختلف بإختلاف الطابعات) ، لذلك ، عند اختيارك الطابعة ، افتح خيارات الطباعة (كما هي في الصوره في الاسفل) ، واجعل المسافة = 0 ، ثم اخرج من التقرير بعد حفظه ، ثم ادخل في هذه الخيارات مرة اخرى ، وستجد المسافات الحقيقية لطابعتك ، والتي لا يمكن ان تقلل منها ، . عليه ، تصبح المساحة المتوفرة لك لوضع حقولك لطباعتها في صفحة واحدة = عرض الورقة (مثلا A4 = 8.27 بوصة) - المسافات التي تحتاجها الطابعة (اليمين + اليسار = 0.25 + 0.25 كما في حالتي في الصورة اعلاه) = 7.77 بوصة. اذا عملت هذا ، فالمساحة المتوفرة لك لكل تقاريرك على هذه الطابعة لن تتغير (حتى على اي كمبيوتر آخر). هذا معناه ان التقرير اصبح به خراب/عطب ، والافضل لك عمل/صنع التقرير من جديد ، فلا تعرف اي من كائناته فيها العطب. جعفر
  8. الظاهر عندك شيء آخر في البرنامج يمنع هذا ، لذلك لازم ترفق لي البرنامج بالكامل اذا اردت النظر فيه ، ولكن مثل قلت انت ، مادام البرنامج اشتغل تمام ، فمافي داعي لكل هذا جعفر
  9. وعليكم السلام اضف في المعيار: <> الاسم جعفر
  10. وعليكم السلام تريد جمع تراكمي لأي: 1. اسم؟ او 2. حقل؟ اذا ممكن تعطينا مثال عن الجواب الذي تريده من برنامجك. جعفر
  11. ابو ياسين انا ما اتكلم عن متغيرات الكود ، فخليك معاي لو سمحت: 1. انسخ الكود اعلاه ، 2. اعمل رد على هذه المشاركة ، 3. في قائمة التحكم بتنسيق الكلمات في نافذة المشاركة (انظر الصورة في الاسفل): 4. انقر على الاداة في الدائرة الحمراء ، 5. بتطلع لك نافذة ، 6. الصق فيها الكود ، وانقر على زر موافق ، 7. احفظ المشاركة. رجاء اعمل الخطوات مثل ما اخبرتك ، علشان تنسيق الكود يطلع صح جعفر
  12. السلام عليكم اخوي ابو ياسين في الرابط التالي ، اخبرتك عن الطريقة الصحيحة في وضع الكود في مشاركات المنتدى ، وجعل الكود سهل القراءة ، فطريقتك هي (كما هو الحال في الكود الذي وضعته في مشاركتك اعلاه) : DoCmd.RunSQL "UPDATE حركات SET حركات.البيان = Format([Forms].[Search]![snddate],""""""دخل يوم """"dddd ""), حركات.[نوع السند] = "" دخـل"",.حركات = ""الخزينه"" " & vbCrLf & _"WHERE (((حركات.[تاريخ الحركة])=[Forms].[Search]![snddate]));" بينما لو اتبعت تعليماتي في الرابط: . لكان كودك هكذا: DoCmd.RunSQL "UPDATE حركات SET حركات.البيان = Format([Forms].[Search]![snddate],""""""دخل يوم """"dddd ""), حركات.[نوع السند] = "" دخـل"",.حركات = ""الخزينه"" " & vbCrLf & _ "WHERE (((حركات.[تاريخ الحركة])=[Forms].[Search]![snddate]));" . فأي الطريقتين ستستخدم في وضع الكود في مشاركتك التالية جعفر
  13. وعليكم السلام إحترافياً ، الامر On Error Resume Next يجب استخدامه في حالات خاصة وضيقة جداً (طبعا حالتك كانت خاصه علشان تحصل على الجواب السريع) ، لأن الامر يوقف جميع رسائل الخطأ ، والتي بعضها ضروري لمعرفة ماهية الخطأ ، ومن ثم معالجته. قمت بالتعديل على الملف المرفق ، والذي يصطاد الخطأ (وفي حالتنا ، البرنامج اخبرنا بأن رقم الخطأ هو 53): Private Sub cmd_Remove3_Click() On Error GoTo err_cmd_Remove3_Click .... .... 'delete the temp cvs file Kill nFile_Name Exit_cmd_Remove3_Click: Exit Sub err_cmd_Remove3_Click: If Err.Number = 53 Then 'file not found Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub . وتم تحديث الملف في المشاركة السابقة جعفر
  14. اصلحت المرفق السابق
  15. اها دقيقة الكود الجديد اصبح Private Sub cmd_Remove3_Click() On Error GoTo err_cmd_Remove3_Click Dim TextLine, File_Name, File_ext, Folder_Name, nFile_Name File_Name = Dir(Me.txtPath) 'the file name only File_ext = Mid(File_Name, InStrRev(File_Name, ".") + 1) 'the file extension Folder_Name = Replace(Me.txtPath, File_Name, "") 'the folder name 'a temp csv file to transfer to it the correct lines nFile_Name = Folder_Name & Mid(File_Name, 1, Len(File_Name) - Len(File_ext) - 1) & "_2." & File_ext 'open both Input and Output files Open Me.txtPath For Input As #1 Open nFile_Name For Output As #2 i = 0 Do While Not EOF(1) ' Loop until end of file. Line Input #1, TextLine ' Read line into variable. i = i + 1 'skip the 1st 3 lines, and write the rest If i >= 4 Then Print #2, TextLine End If Loop Close #1 Close #2 Kill Replace(Me.txtPath, ".csv", ".xls") 'now we have a csv file correctly saved, 'convert it to xls Dim objXLApp As Object Dim wBook As Object Set objXLApp = CreateObject("Excel.Application") Set wBook = objXLApp.Workbooks.Open(nFile_Name, Format:=6, Delimiter:=",") wBook.SaveAs Replace(Me.txtPath, ".csv", ".xls"), FileFormat:=xlExcel8 wBook.Close 'False objXLApp.Quit Set wBook = Nothing Set objXLApp = Nothing 'delete the temp cvs file Kill nFile_Name Exit_cmd_Remove3_Click: Exit Sub err_cmd_Remove3_Click: If Err.Number = 53 Then 'file not found Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub جعفر 862.298.Remove_3_Lines_csv.mdb.zip
  16. المرفق ما فيه رساله اصلا
  17. الكود لا يتحقق ، وزيادة الخير ، خيرين ، يصير عنده 4 اصفار زيادة القصد من هذا الكود هو ان يقوم به المبرمج يدويا ، مرة واحدة فقط ، وبدون كود اما اذا كان في يد المستخدم ، فممكن نجعل المعيار: Len([Phone])=6 . جعفر
  18. السلام عليكم اخي عبدالله الطريقة اللي انا اعمل عليها في معظم برامجي ، اني اضع خلفية البرنامج BE ، وجميع المجلدات ، مع بعض ، مثلا: و . بهذه الطريقة ، 1. اذا اردت تغيير مكان البرنامج ، او نقله الى سيرفر ، او الى هارد دسك اسرع SSD مثلا ، فكل اللي اعمله هو ، مجرد نقل المجلد رقم 1 الى المكان الجديد ، وهذا الرابط فيه مثال على هذه الطريقة . 2. في الرابط ، فيه وحدة نمطية ، احفظها في برنامج FE ، . هذه الوحدة النمطية تنظر الى مكان/مسار وجود الجداول ، يعني ممكن البرنامج لا يكون مجزأ ، ويمكن يكون مجزأ الى FE و BE ، وتخبرنا الوحدة النمطية عن مكان وجودها (الجداول) ، ونناديها هكذا: msgbox BE_or_FE ، ولما نعرف مكان وجود BE ، فإننا نستخدم هذا المسار ، لمعرفة مسار جميع المجلدات الموجودة معه في نفس المجلد (طبعا هذا اذا عملت مثل طريقتي) ، ولهذا السبب ، فجداولي لا تحتوي على حقل مسار الصورة ، لأن المسار دائما ثابت والوصول اليه هو عن طريق مكان وجود برنامج BE ، فإذا اردت ان اقرأ الصورة ، هكذا (حسب الصوره اعلاه) حسب الصورة على اليمين me.Pic.Picture = Images_Location & "\Personnel_Images\Employee_Pictures\" & me.Employee_ID & ".jpg" وحسب الصورة على اليسار me.Pic.Picture = Images_Location & "\Images\Employee_Pictures\" & me.Employee_ID & ".jpg" . وطبعا تحفظ الصورة على نفس المسار اعلاه ، و الوحدة Image_Location تأخذ قيمتها من مكان وجود BE وهي من الوحدة BE_or_FE Function Images_Location() 'If we want the Backend Folder Images_Location = BE_or_FE & "\archive" 'or we can assign any location we want 'Images_Location = "\\Server01\Images\archive" End Function . ودائما عندك الاختيار ان تجعل مجلد الصور في مكان مختلف عن مكان وجود قاعدة البيانات ، لذلك تستطيع ان تكتب المسار في نفس الوحدة Image_Location ، وتقرأ الصور او تحفظهم بنفس الكود بعاليه. جعفر
  19. اخي rooz ، واخي alwazeer شكرا على ابداء آرائكم ، ولننتقل للسؤال التالي جعفر
  20. ومثل ما قال اخي الوزير ، وضغطت على الزر ، وطلع لي هذا الكود '------------------------------------------------------------ ' Combo3_AfterUpdate ' '------------------------------------------------------------ Private Sub Combo3_AfterUpdate() On Error GoTo Combo3_AfterUpdate_Err DoCmd.SearchForRecord , "", acFirst, "[رقم الموظف] = " & Str(Nz(Screen.ActiveControl, 0)) Combo3_AfterUpdate_Exit: Exit Sub Combo3_AfterUpdate_Err: MsgBox Error$ Resume Combo3_AfterUpdate_Exit End Sub جعفر
  21. هممم هذا اللي انت طالبه من زمان طيب ارفق لي قاعدة بيانات مصغرة ، وانا احاول اعمل موضوع خاص به ان شاء الله جعفر
  22. السلام عليكم اليك هذا المرفق الجديد : . طبعا بعد ما تدخل وووو وتصبح صفحة الادخال امامك ، 1. رجاء ادخال البيانات في صفحة الموقع يدويا ، وادخل بيانات في كل حقول الصفحة ، سواء كنت محتاج تدخلها او لا ، ولكن لا تخل نفس المعلومة مرتين (يعني اذا الاسم جعفر واسم الجد جعفر ، غيّر اسم الجد الى جعفر ، ونفس الشيء بالنسبة الى الارقام والاختيارات ، لا تدخل نفس الرقم مرتين) ، وياريت تعمل صورة من الصفحة ScreenShot . ثم انقر على زر "استيراد البيانات من صفحة الانترنت" ، واعطها شوية ثواني ، ثم افتح الجدول tbl_Retrieve ، واللي فيه حقلين Field_ID و Field_Value ، فإذا شفت البيانات التي ادخلتها في حقول صفحة الموقع ، شفتها موجودة في حقل Field_Value ، فهذا معناه ممكن التحكم في الصفحة ، وسنتعامل مع ارقام تسلسل الحقول في الصفحة بدل اسمائها ، 2. الخطوة التالية ، اريدك تضغط على الزر "ارسال البيانات الى صفحة الانترنت" (بس قبل ان تعمل هذا ، اريدك تكون اخذت صورة من الصفحة ScreenShot) ، فإذا الصفحة تتقبل ان نرسل لها بيانات ، بتشوف حقول الصفحة فيها ارقام مسلسلة ، وكذلك اريدك تأخذ صورة من الصفحة ScreenShot. 3. اريدك ترسل لي قاعدة البيانات اللي فيها بيانات حقول الموقع ، و صورة الصفحات ScreenShot اللي اخذتها (طبعا تقدر تحذف المعلومات الحساسة منها) ------------------------------ اما اذا قمت في عمل الخطوة رقم 1 والخطوة رقم 2 ، ومافي نتائج مثل ما اخبرتك ، فما بإمكاني عمل اي شيء زيادة !! جعفر 852.123.WebImport.mdb.zip
  23. السلام عليكم الكود الجديد سيغلق الاكسل ، ويقوم بحذف الملف رقم 2 بدل هذا الكود 'make reference to Microsoft Excel xx.x object Library Dim wBook As workbook Set wBook = Workbooks.Open(nFile_Name, Format:=6, Delimiter:=",") wBook.SaveAs Replace(Me.txtPath, ".csv", ".xls"), FileFormat:=xlExcel8 wBook.Close False استخدم هذا 'now we have a csv file correctly saved, 'convert it to xls Dim objXLApp As Object Dim wBook As Object Set objXLApp = CreateObject("Excel.Application") Set wBook = objXLApp.Workbooks.Open(nFile_Name, Format:=6, Delimiter:=",") wBook.SaveAs Replace(Me.txtPath, ".csv", ".xls"), FileFormat:=xlExcel8 wBook.Close 'False objXLApp.Quit Set wBook = Nothing Set objXLApp = Nothing جعفر 862.298.Remove_3_Lines_csv.mdb.zip
  24. حيا الله اخوي ابو خليل هاي يحتاج لها تجربة ، لأني من بحثي ، ما لقيت جواب لها جعفر
×
×
  • اضف...

Important Information