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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

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

  1. وعليكم السلام أخي كرار من متابعتي لردودك في المنتدى ، كان يجب علي ان افهم انك جربت تغيير الكود المطلوب واصطدمت بهذه الرسالة ، وتوقفت عندها : وافضل طريقة للتغلب عليها ، ان ترجع الكرة الى ملعبي السبب في حصولك هذه الرسالة ، هو ان لديك معايير 3 في الاستعلام sh11 والذي يعتمد عليه الاستعلام sh . طيب ، اذا الاستعلام sh11 يستطيع ان يقرأ المعايير من النموذج ee ، فلماذا لا يستطيع الكود ان يقرأه!! والجواب ان الاكسس عبارة عن اكثر من برنامج مرتبطه ببعضها ، فمنها الـ jet والذي الان يسمى Ace من الاصدار 2007 ، وهو مسئول عن الاستعلامات وبقية امور الاكسس ، ومنها الاكسس شخصيا ، وكود VBA جزء منه ، والبرنامجين ، صحيح انهم مرتبطين ، ولكن هناك بعض الامور التي لا يتفاهمون عليها مباشرة ، بل يجب عمل وسيط بينهم ، وحل هذه الرسالة هي احد الاشياء اللي محتاجة وسيط كود اصطياد الخطأ ، في الكود المرفق ، هو حلقة الوصل ، واخذ مني الوقت الطويل لتضبيطه ليتلائم مع برمامجك ، فاعتذر عن التأخر على الرد عليك Private Sub cmd_Combine_Click() On Error GoTo err_cmd_Combine_Click 'delete the old data mySQL = "Delete * From tbl_PP" CurrentDb.Execute (mySQL) Dim rstpp As DAO.Recordset Dim rst As DAO.Recordset Dim strSql As String Set rstpp = CurrentDb.OpenRecordset("Select * From tbl_PP") '1 'j Set rst = CurrentDb.OpenRecordset("Select * From sh Order By tash") 'j2 Set rst = CurrentDb.OpenRecordset("Select * From tb_sh Order By [تاريخ الوصل]") strSql = "Select * From sh Order By [تاريخ الوصل]" Set rst = CurrentDb.OpenRecordset(strSql) rst.MoveLast: rst.MoveFirst RC = rst.RecordCount 'add all the records For i = 1 To RC rstpp.AddNew 'j rstpp!iDate = rst!tash 'j rstpp!Purchase = rst!mbsh rstpp!iDate = rst![تاريخ الوصل] rstpp!Purchase = rst!mb rstpp.Update rst.MoveNext Next i '2 'j Set rst = CurrentDb.OpenRecordset("Select * From ts Order By tats") 'j2 Set rst = CurrentDb.OpenRecordset("Select * From tb_ts Order By [تاريخ]") strSql = "Select * From ts Order By [تاريخ]" Set rst = CurrentDb.OpenRecordset(strSql) rst.MoveLast: rst.MoveFirst RC = rst.RecordCount 'we should check if the date is available, then we should use it For i = 1 To RC 'j rstpp.FindFirst "iDate=#" & rst!tats & "#" rstpp.FindFirst "iDate=#" & rst![تاريخ] & "#" If rstpp.NoMatch Then rstpp.AddNew 'j rstpp!iDate = rst!tats 'j rstpp!Payment = rst!mbts rstpp!iDate = rst![تاريخ] rstpp!Payment = rst!mblk rstpp.Update Else rstpp.Edit 'rstpp!iDate = rst!tats 'j rstpp!Payment = rst!mbts rstpp!Payment = rst!mblk rstpp.Update End If rst.MoveNext Next i rstpp.Close: Set rstpp = Nothing rst.Close: Set rst = Nothing DoCmd.OpenTable "tbl_pp" Exit Sub err_cmd_Combine_Click: If Err.Number = 3061 Then 'too few parameters, expected 1 or more 'this error occurs when trying to run a query which needs its parameters from a Form, 'the Form should be open with the parameter, then this code take the values properly Dim qdf As QueryDef Dim prm As Parameter 'Set qdf = CurrentDb.QueryDefs("strSql") Set qdf = CurrentDb.CreateQueryDef("NewQueryDef", strSql) For Each prm In qdf.Parameters prm.Value = Eval(prm.Name) Next prm Set rst = qdf.OpenRecordset(dbOpenDynaset) DoCmd.DeleteObject acQuery, "NewQueryDef" Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub جعفر 231.1.New .accdb.zip
  2. وعليكم السلام أخي محمد الاكسس يأخذ هذه التضبيطات من الكمبيوتر ، فتأكد انك مستخدم Metric بدلا عن US في الخانة رقم 5 من الصورة جعفر
  3. جزيت ووفيت ، ولا اطلب اكثر من هذا ، فجزاك الله خيرا ، ووالديك دنيا وآخرة ان شاء الله جعفر
  4. انا اعتذر منك أخوي على عدم تجربة المرفق حاليا ، فانا بين مجموعة من الاسئلة واحاول اوفق وقتي في حلها ، وان شاء الله اشوف مرفقك واخبرك رأيي فيه والعذر عند كرام الناس مقبول جعفر
  5. يا رجال ، كنت احسبك بتطلب مني اعمل لك كبسة دجاج او لحم ، وكنت بخبصها , وخلها على الله غالي والطلب رخيص (بس مو كل مرة تسافر وتيجي بفكرة جديدة) الاستعلام صار: . نقول فيه: 1. اذا الوحدة النمطية حقّت الاسم F_Name فاضية ، 2. استعمل قيم الحقل name من الاستعلام ، 3. وإلا ، فاستعمل قيمة F_Name() من الوحدة النمطية. الكود: len(F_Name() & '')=0 في الاستعلام (واما اذا كان في الكود العادي للنماذج ، تغير ' وتخليه " : len(F_Name() & "")=0 بدل عمليتين ، وانا دائما استعمله في برامجي ، والعمليتين: if isnull(F_Name) والثانية if F_Name="" والكود في نموذج الاسم اصبح: Private Sub Form_Close() 'close name as nothing f_n = "" End Sub Private Sub Form_Load() 'initilize name as nothing f_n = "" End Sub Private Sub print_AfterUpdate() 'if selected, assign the name to f_n, otherwise don't 'so f_n will only have the last value selected, NO multiple selections If Me!print = -1 Then f_n = Me!name Else f_n = "" End If End Sub والوحدة النمطية: Option Compare Database Public d_F As Date Public d_T As Date Public f_n As String ' Function d_From() d_From = d_F End Function Function d_To() d_To = d_T End Function Function F_Name() F_Name = f_n End Function 279.1.مثال استعلام.accdb.zip
  6. الحمدلله قوانين المنتدى لا تسمح باكثر من سؤال واحد في الموضوع ، فاعمل سؤال جديد ، وان شاء الله تلقى الرد فيه جعفر
  7. يا فنان انت ، سهلت علي الموضوع كنت اريد اقول لك تعملها ، لكني استحيت ، ولأن عندنا مثل يقول: اكلت الثور وما باقي غير الذيل ، يعني ما نقدر ناكله ليش؟؟ مو انا سحبت لك بيانات اكثر من المطلوبة ، والسبب هو علشان تقدر تستخدم هذه الحقول الزائدة في عملية الفرز والتصفية (مثل الفصل والسنة الدراسية) ، والتي تستطيع لاحقا ان تتبع عمل الطالب لعدة سنوات ، مثلا ايش رايك ، موافق على هالكلام ، وإلا حاب تجرب طعم الذيل جعفر
  8. حيا الله الاستاذ عفوا على الخطأ ، رجاء جرب هذا الملف ثم نتكلم عن الباقي جعفر 275.1.ImportDegrees.accdb.zip
  9. وعليكم السلام جوابي هنا على الجزء الثاني من سؤالك ، على الرابط التالي: http://www.officena.net/ib/topic/61730-كيفية-ترقيم-القيد-بعد-حذف-القيد/#comment-398739 جعفر
  10. حياك الله نعم تستطيع بنفس الطريقة ان تغير الاستعلام الى استعلام حذف ، ولكن انتبه ، فالاستعلام عندك مربوط بجدولين وليس جدول واحد جعفر
  11. وعليكم السلام أخي ابورحيل ، في المرة القادمة ياريت تخبرنا بالضبط وين المشكلة ، لأن الحل يكون اسرع على كل حال ، فالمشكلة عند تجربتي لبرنامجك لم تقتصر على رسالة طلب ID ، وانما المشكلة كانت في رفض الاكسس قبول المعلومة اصلا ، لأنها تتعارض مع تضبيطات الجداول. نرجع الى الرسالة: لو نظرت في الصورة الاولى اللي ارفقتها انا ، من الاستعلام UP ، سترى انك طلبت ان يأخذ الاستعلام قيمة ID من النموذج EMP1 ، وعلشان يأخذ الاستعلام هذه القيمة من النموذج EMP1 ، فالنموذج EMP1 يجب ان يكون مفتوح اما اذا ان اردت ان تأخذ قيمته من نموذج آخر ، فقم بتغيير اسم النموذج في الاستعلام جعفر
  12. حياك الله وعلى راسي بس لو تعرف ، ترى القائمين على هذا الصرح والمنتدى العظيم ، هم اللي شرفوني بهذا الوسام وهذه التسمية ، بينما انا لا املك اي شهادة في الكمبيوتر ولا حتى شهادة الرخصة الدولية لقيادة الحاسب الآلي ICDL في الرابط التالي كان في سؤال شبيه ، ولكن لطباعة التقرير ، وتم حله بطريقة اخرى كذلك: http://www.officena.net/ib/topic/64830-مشكلة-طباعة-مع-النموذج-الفرعي/?do=findComment&comment=421820 جعفر
  13. وعليكم السلام ورحمة الله وبركاته 1. هذا الكلام صحيح 2. وهذا كذلك ، ولكن عندي بديل: في النموذج mmm ، اعمل حدث بعد التحديث للحقلين d1 و d2: Private Sub d1_AfterUpdate() d_F = Me.d1 End Sub Private Sub d2_AfterUpdate() d_T = Me.d2 End Sub ثم نعمل الوحدة النمطية: Option Compare Database Public d_F As Date Public d_T As Date ' Function d_From() d_From = d_F End Function Function d_To() d_To = d_T End Function وعليه نجعل الاستعلام يأخذ القيم من الوحدة النمطية بدلا عن النموذج مباشرة (لاحظ ان لدينا وحدتين نمطيتين ، لذلك نأخذ القيم من الاثنين): وصلى الله وبارك جعفر 279.مثال استعلام.accdb.zip
  14. وعليكم السلام تفضل 1. 2. 3. 4. جعفر 278.mouwazaf11.accdb.zip
  15. السلام عليكم اذا كنت لازلت تريد المساعدة في هذا الموضوع ، رجاء تشرح لي وبالتفصيل الممل عن كيفية استخدامك للبرنامج، ورجاء تعمل صورة لصفحة الكود وترفقها اللي سطرها يكون باللون الاصفر ، علشان اعرف وين الكود يتوقف. جعفر
  16. الحمدلله كنت في الزيارة جرب المرفق لوسمحت رحم الله والديك أخي سعيد ، انت وفرت علي اكثر من نصف الطريق جعفر 231.1.New .accdb.zip
  17. السلام عليكم لاحظت تكرار بعض البيانات ، فاليك النسخة المعدلة 275.1.ImportDegrees.accdb.zip
  18. السلام عليكم شباب في الرابط التالي http://www.officena.net/ib/topic/61847-تعديل-على-كود-حفظ-مكان-الصورة/?do=findComment&comment=399928 استعملت الكود التالي: Dim Image_Path As String '1 Image_Path = Application.currentProject.Path '2 Image_Path = Image_Path & "\photo\" 'if the photo Dir dose not exist, creat it If Dir(Image_Path, vbDirectory) = "" Then MkDir Image_Path End If '3 Image_Path = Image_Path & "\" & [ID] & "\" 'if the [id] Dir dose not exist, creat it If Dir(Image_Path, vbDirectory) = "" Then MkDir Image_Path End If وهنا قبل ان أنشأ المجلد الجديد ، يتأكد الكود بوجوده ، فان لم يكن موجودأ ، فانه يستحدثه ، وإن كان موجودا لا يفعل شئ (طبعا لم اكن اريد المستخدم ان يرى اي رسالة هنا) ، وتلاحظ ان عمل المجلدات هو بالتسلسل ، ومن خلال نفس مجلد البرنامج ، هكذا: -1- مجلد البرنامج (الموجود ، لذلك لم اقم بعمل شئ له) ، -2- مجلد الصور photo (واذا لم يكن موجودا ، فسيستحدثه البرنامج) ، والذي هو بداخل مجلد البرنامج ، ومجلد الصور photo هذا سيُستحدث مرة واحدة فقط ، -3- مجلد ID (واذا لم يكن موجودا ، فسيستحدثه البرنامج) ، والذي هو بداخل مجلد الصور photo ، وهناك عدة مجلدات بحسب قيمة ID ، داخل مجلد الصور photo. جعفر
  19. تقدر تضغط بالفأرة اليمين على الزر ابو 3 نقاط في حدث على النقر ، ثم اختار الاختيار الثالث code builder جعفر
  20. حيا الله من يانا وهذه طريقة اخرى ، اذا كانت ملفاتك تنزلها من موقع النور ، التابع لوزارة التعليم في المملكة العربية السعودية جعفر 275.1.ImportDegrees.accdb.zip
  21. انا آسف أخي حسين ، فا لاقتراح الوحيد المتبقى عندي هو ان تعمل تقرير جدولي مرة اخرى ، بحيث تستطيع ان ترى جميع الحقول فيه. جعفر
  22. وعليكم السلام أخي حسين الكود والطريقة صحيحة ، ولكني عدلت على التقرير قليلا ، فما ادري اذا بيصلح الوضع ملئت الجدول ببعض البيانات . وشغلت التقرير يدويا . والنتيجة . هذا معناه ان التقرير يشتغل بصورة صحيحة ، ويمكن طباعته مباشرة بكل البيانات مرة واحدة!! جرب المرفق واخبرني جعفر 272.2.BARCODE22.accdb.zip
×
×
  • اضف...

Important Information