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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

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

  1. السلام عليكم 🙂 واذا ما كنت تريد تحفظ قيمة num3 في الجدول ، فيمكنك ان تكتب في اعدادات حقل num3 ، في مصدر بياناته (السطر الثاني بعد الاسم) ، وبدون اي كود : =[Bam] جعفر
  2. شكرا جزيلا 🙂 جعفر
  3. سبحان الله ـ رُب ضارة ، نافعة !! طبعا انت قصدك Dim rst1, rst2 As ADODB.Recordset, rst3 As DAO.Recordset . انا اعرف انه ممكن ان نستعمل المعرف Variant للرقم او النص ، ولكن الذي لم اكن اعرفه انه ممكن استعمال Variant مع Recordset !! وبما انني استعملت الكود التالي ، واعطاني الاجابة الصحيحة : Dim rst1, rst2 As DAO.Recordset هذا يجعلني اقارن Variant بالـ Object في : Dim xlApp As Object 'Excel.Application Dim xlWB As Object 'Excel.Workbook فإذا استعملنا Variant او Object ، فالكود يكون صحيح ، ونحصل على اجابة صحيحة ، ولكننا لا نستطيع الاستفادة من Intellisense الكود في اعطائنا تكملة للكود (عند كتابة . او مسافة) 🙂 هذه معلومة جديدة لي ، شكرا اخوي الهاوي 🙂 جعفر
  4. تفضل 🙂 هذا لملف واحد 🙂 Dim ImportFileName As String, myField As String Dim rst1 As DAO.Recordset, rst2 As DAO.Recordset Dim i As Long, j As Long ImportFileName = Me.txtPath CurrentDb.Execute ("Delete * From Table1") CurrentDb.Execute ("Delete * From Temp4") DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "Temp4", ImportFileName, False Set rst2 = CurrentDb.OpenRecordset("Select * From Table1") 'there are 2 columns per sheet: F2 and F8 For j = 2 To 8 Step 6 myField = "F" & j Set rst1 = CurrentDb.OpenRecordset("Select " & myField & " From Temp4 Where " & myField & " Is Not Null") rst2.AddNew Do Until rst1.EOF i = i + 1 If i = 1 Then rst2![Academic Year] = rst1(myField) ElseIf i = 2 Then rst2![Academic Num] = Mid(rst1(myField), InStrRev(rst1(myField), " ") + 1) ElseIf i = 3 Then rst2![StName] = rst1(myField) ElseIf i = 4 Then rst2![F1] = rst1(myField) ElseIf i = 5 Then rst2![Subjects] = rst1(myField) i = 0 rst2.Update rst2.AddNew End If rst1.MoveNext Loop Next j rst1.Close: Set rst1 = Nothing rst2.Close: Set rst2 = Nothing MsgBox "تم استيراد البيانات بنجاح" والى ان انت تعمل التغيير ، مثل برامجك الماضية ، في اختيار ملف او اختيار الكل ، آخذ قيلوله 🙂 جعفر 1206.Posters.zip
  5. وعليكم السلام 🙂 لا تنسى ان حقل تاريخ الميلاد عندك هو رقم وليس تاريخ ، فعلى هذا الاساس ، رجاء اعطينا مثال ، شو اللي عندك ، وكيف تريد ان تكون النتيجة 🙂 جعفر
  6. سؤال: هل انت الذي يتحكم في شكل ومكونات ملف الاكسل اللي تنزله ، او الموقع يُنزله بهذه الطريقة ؟ جعفر
  7. السلام عليكم 🙂 اذا كتبت رد ، وبعدها وخلال 5 دقائق كتبت رد آخر ، فالمنتدى يقوم بدمج المشاركة الجديدة في المشاركة السابقة ، هذا زين ، ولكن المشكلة تكمن في اننا لا نحصل على اشعار بأنه هناك مشاركة جديدة ، وهذا اللي صار مع مشاركتك ، الآن فقط شفتها !! ونفس الشيء ، اذا كتبت رد ، وبعدين قمت بالتعديل عليه (قبل ان يكون هناك مشاركة اخرى) ، فكذلك ما نحصل على اشعار !! جعفر
  8. همم ، وانا وقعت في هذا الخطأ ، يمكن لأني كنت دايخ😁 شكرا لك اخي الهاوي 🙂 جعفر
  9. على العموم ، انا مجهز البخور ، فالجماعة جاهزين معاي 😁
  10. انا ما اعرف الطريقة اللي تجيك الملفات ، فأنا اريد اعرف كيف تجيك ، علشان اعطيك الحل الامثل 🙂 جعفر
  11. شو السالفة !! اشوف متفقين عليّ 😁 لا تكونوا متراهنين ، وتنتظرون تشوفون من بيفوز !! انا آسف ، ما ممكن اتابع ، إلا بأن اشوف ملف التلاميذ كلهم ، وإلا فمافيه فائدة 🙂 جعفر
  12. وعليكم السلام 🙂 IIf([name]="A" or [name]="B",500,700) جعفر
  13. يا ريت ترفق لنا مثال حتى نستفيد 🙂 جعفر
  14. اخي الفاضل ابوماجد ، علشان نقدر نساعدك ، لازم تكون دقيق في سوالك ، وتعطينا امثلة على المشكلة ، او حتى صور من نوافذ البرنامج 🙂 جعفر
  15. احنا ما تفقنا يا استاذ فايز ان الصورة فيها الجزء المفيد فقط ، حتى نقدر نشوف الخطأ وين 🙂 لا يمكن استيراد البيانات بالطريقة السابقة ، لهذا السبب وجب علينا ان نمشي بها سطر بسطر : Dim ImportFileName As String Dim rst1, rst2 As DAO.Recordset Dim i As Long ImportFileName = Me.txtPath CurrentDb.Execute ("Delete * From Table1") CurrentDb.Execute ("Delete * From Temp4") DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "Temp4", ImportFileName, False Set rst1 = CurrentDb.OpenRecordset("Select F2 From Temp4 Where F2 Is Not Null") Set rst2 = CurrentDb.OpenRecordset("Select * From Table1") rst2.AddNew Do Until rst1.EOF i = i + 1 If i = 1 Then rst2![Academic Year] = rst1!F2 ElseIf i = 2 Then rst2![Academic Num] = Mid(rst1!F2, InStrRev(rst1!F2, " ") + 1) ElseIf i = 3 Then rst2![StName] = rst1!F2 ElseIf i = 4 Then rst2![F1] = rst1!F2 ElseIf i = 5 Then rst2![Subjects] = rst1!F2 End If rst1.MoveNext Loop rst2.Update rst1.Close: Set rst1 = Nothing rst2.Close: Set rst2 = Nothing MsgBox "تم استيراد البيانات بنجاح" 'F2 '1=1438-1439 '2=الرقم الأكاديمي 38002 '3=يوسف بن رضا بن حسن مصباح '4=المواد المسجلة في الفصل الدراسي الثاني 1440-1441 '5=رياضيات 4 الشعبة 5 - تربية صحية وبدنية الشعبة 5 - اللغة العربية 4 الشعبة 5 - إنجليزي 4 الشعبة 5 - أحياء 2 الشعبة 5 جعفر Posters.zip
  16. رجاء استعمال خاصية البحث في المنتدى 🙂 جعفر
  17. كلام الاستاذ صحيح ، ولكن : ممكن عمل التالي (انا اكتب واعرض الكود حاليا وبدون التأكد منه ، فرجاء التأكد) ، تقدر تعمل التالي : اسم التقرير rpt_1 ، واسم الحقل Text1 ، ومن زر فتح التقرير ، من النموذج : docmd.openreport "rpt_1", acviewPreview Reports!rpt_1!Text1 = "نحن نقوم بالتجربة على البطاقة رقم " & me.ID جعفر
  18. في الواقع المنتديات عالم بذاته ، وبالخصوص المنتديات العربية ، ومختلف عن عالمنا الذي نعيش فيه ، وشوي شوي بدأت اتاقلم عليه ، ومازلت احاول 🙂 فأهلا وسهلا بك في التأقلم في هذا العالم 🙂 جعفر
  19. الظاهر كلامي بالفعل يحتاج له توضيح 🙂 اخي الفاضل ، اما تصحيحك للكود ، فانا قلت فيه : اما السطر الثالث : 1. من الكود الذي وضعه صاحب الموضوع ، ومن سؤاله ، يتضح مدى معرفة صاحب الموضوع بالكود ، وبالفعل ، حدسي كان في محله ، وفي مشاركته الثانية اكد هذا الكلام 🙂 لهذا السبب ، ما اردت ان اعمل تغيير جوهري في الكود حتى يفهم التصحيح اللي انا عملته ، وما اردت ان اعمل اي تغيير خارج الكود كذلك حتى يفهم التصحيح اللي انا عملته 🙂 2. والسبب في كل هذا ، حتى السائل يفهم التعديل اللي انا عملته ، وما يضيع ، 3. اما اذا ما فهم التعديل ، فبالتالي بيضيع ، ومو هذا المطلوب بالشرح 🙂 وانا والاستاذ رمهان دائما في اخذ وعطاء في موضوع الكود ، فهو ماشاءالله محترف في التخزيل والاختصار (وهذا هو الاحتراف) ، بينما انا اشرح بخطوات اكثر (وليس هذا بالاحتراف) ، ولكن وجهة نظري هي ، ان السائل لن يفهم الكود المقتضب ، ولن يستطيع تعديله في المستقبل ، لهذا السبب اتعمد الكود الاطول (او يمكن لأني من المدرسة القديمة وما اخذت اي دروس في البرمجة !!) ، اذن الحمدلله ان فايروس كورونا منه فائدة ، وهو وجودك معانا ، فأهلا وسهلا بك اخي الفاضل معانا في كل وقت 🙂 اعضاء منتديات البرمجة العالميه بوجه عام ، متطوعين ، وما كلهم بنفس المستوى ، ولكن الهدف هنا مساعدة الآخرين ، ونرحب بوجود المحترفين ، ونرحب بوجودك معنا ، وهذا الميدان يا حميدان 🙂 جعفر
  20. ومن هذا الرابط تستطيع ان تنزل برنامج ، تستعيد به الجداول : جعفر
  21. وعليكم السلام اخوي صالح 🙂 هذه الخاصية موجودة في الاكسس فقط (مثل Lookup في الجدول) ، فيجب عليك ان تتعامل معهم بطريقة اخرى ، قبل ان تنتقل الى SQL Server 🙂 احد الطرق هي ان تجعل هذه القيم في جدول آخر ، وفي النموذج تعامله كنموذج فرعي 🙂 منقول ومترجم من: https://answers.microsoft.com/en-us/msoffice/forum/all/access-multivalue-field-convert-to-ms-sql/05e4ebe9-d919-44c6-bf76-efe47e0d5cae جعفر
  22. حياك الله 🙂 شكرا جزيلا على هذه الملاحظات ، وتفسير جميل 🙂 مثل ما تلاحظ اني عملت تغيير "كبير" في قص/دمج الكود ، ولكن جميع التغييرات واضحة ، وما حبيت ان اعمل التغيير اللي انت تفضلت به ، لأنه ليس من الكود ، والسائل ما بيفهم ، وبالتالي بيضيع ومو هذا المطلوب 🙂 جعفر
  23. وعليكم السلام اخي الفاضل 🙂 واهلا وسهلا بك في المنتدى 🙂 الخطأ عندك في السطر الاول ، حيث انه لما تنقر على كائن صح/خطأ ، فعلامة الصح قيمتها -1 ، وعلامة بدون صح قيمتها 0 ، فعليه يصبح الكود : If Me.dd = -1 Then ولكن ، ايش رأيك في هذ التنسيق ، بحيث بإستعمال TAB الكيبورد ننسق الكود ، فتصبح قراءة الكود سهله ، ونعرف كل مجموعة وين بدايتها ووين نهايتها : If Me.dd = -1 Then Dim t t = MsgBox("?? ??E ?E??I ?? ?UEE? ??? ?C?E C????C? ?? C??CE??E?", vbYesNo, "??? C????C? ?? C??CE??E") If t = vbYes Then DoCmd.SetWarnings False DoCmd.OpenQuery "C?E??C? ??? ?CE??E" Me.dd = 0 DoCmd.SetWarnings True ElseIf t = vbNo Then MsgBox "E? C?E?C?? ?? C????" End If ElseIf Me.dd = 0 Then Dim r r = MsgBox("?? ??E ?E??I ?? ?UEE? ??C?E C???? ???CE??E?", vbYesNo, "??U C????") If r = vbYes Then DoCmd.SetWarnings False DoCmd.OpenQuery "Q1" DoCmd.OpenQuery "Q2" Me.dd = 1 DoCmd.SetWarnings True ElseIf r = vbNo Then MsgBox "E? C?E?C?? ?? C???U" DoCmd.CancelEvent End If End If جعفر
  24. يا جماعة الخير 🙂 لو قرأتوا الموضوع كاملا ، وبرواقة ، وعلى فنجان شاي او قهوة ، لوجدتوا ان صاحب الموضوع جزاه الله خيرا ، قد ارفق نسخة مفتوحة المصدر في احد مشاركاته اللاحقة : . جعفر
×
×
  • اضف...

Important Information