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

Foksh

الخبراء
  • Posts

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

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

  • Days Won

    122

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

  1. وانت عمال تقوله خد راحتك 😂 اتفضل ،، اهو نسي يرفع الملف من الفرحة 😂😂😁 قال ينبسط قال ، يا حبيبي انا لما اشوف اسمع ببقى عامل زي العصفور اللي طاير من الفرحة 🤣
  2. جرب التعديل التالي :- Private Sub Cmd2_Click() Dim Msg, Style, Title, result Msg = "سيتم الآن حذف جدول الصف الثاني! ننصح بتصدير الصف الثاني إلى الثالث أولاً!!! هل ترغب في الاستمرار؟؟" Style = vbInformation + vbYesNo + vbMsgBoxRight Title = "تحذير - حذف جدول الصف الثاني" result = MsgBox(Msg, Style, Title) If result = vbYes Then DoCmd.SetWarnings False DoCmd.DeleteObject acTable, "tbl_student2" DoCmd.RunSQL "SELECT tbl_student.* INTO tbl_student2 FROM tbl_student;" Dim db As DAO.Database Dim tdfSource As DAO.TableDef Dim tdfDest As DAO.TableDef Dim fldSource As DAO.Field Dim fldDest As DAO.Field Set db = CurrentDb Set tdfSource = db.TableDefs("tbl_student") Set tdfDest = db.TableDefs("tbl_student2") For Each fldSource In tdfSource.Fields For Each fldDest In tdfDest.Fields If fldDest.Name = fldSource.Name Then fldDest.Properties("Caption").Value = fldSource.Properties("Caption").Value End If Next fldDest Next fldSource MsgBox "تم حذف جدول الصف الثاني وإحلال محتويات الصف الأول في جدول جديد باسم الصف الثاني", vbOKOnly + vbMsgBoxRight, "إعلام حذف" DoCmd.SetWarnings True ElseIf result = vbNo Then DoCmd.CancelEvent MsgBox "!!! لقد تم إيقاف عملية الحذف", vbOKOnly + vbMsgBoxRight, "إعلام توقف عن الحذف" End If End Sub
  3. Private Sub Cmd2_Click() DoCmd.SetWarnings False DoCmd.DeleteObject acTable, "tbl_student2" DoCmd.RunSQL "SELECT tbl_student.* INTO tbl_student2 FROM tbl_student;" DoCmd.SetWarnings True End Sub
  4. هههههههه بعد ما ذكره ولا قبل !!!!! نروح الشهر العقاري واتنازل لك فيه , بس انت حدد يوم
  5. للأسف ليس لدي إصدار أوفيس 2003 ، ولكن كتعديل جرب هذا الكود :- Private Sub Command0_Click() Dim db As DAO.Database Dim tblName As String Dim newTblName As String Dim tempTblName As String Dim tdf As DAO.TableDef tblName = "tbl_student" newTblName = "tbl_student2" tempTblName = "temp_" & newTblName Set db = CurrentDb On Error Resume Next Set tdf = db.TableDefs(tempTblName) If Not tdf Is Nothing Then db.TableDefs.Delete tempTblName End If Set tdf = Nothing On Error GoTo 0 DoCmd.CopyObject , tempTblName, acTable, tblName On Error Resume Next Set tdf = db.TableDefs(newTblName) If Not tdf Is Nothing Then db.TableDefs.Delete newTblName End If Set tdf = Nothing On Error GoTo 0 db.TableDefs(tempTblName).Name = newTblName Set db = Nothing MsgBox "Table " & newTblName & " has been successfully recreated from " & tblName, vbInformation End Sub
  6. وعليكم السلام ورحمة الله وبركاته ،، أخي الكريم أهلا وسهلاً بك في مجتمعنا المتواضع ، ونتمنى أن تجد الفائدة التي تبحث عنها . اسمح لي بتذكيرك لنقاط مهمة حتى تحصل على إجابة سريعة و واضحة :- أولاً أجعل العنوان يدل على المشكلة دون مقدمات .. ثانياً في الشرح بارك الله فيك لم تقصر جاهداً في التوضيح إلا أنك لم تذكر اسم النموذج أو التقرير ..... (تركت الأمر معلقاً ) ثالثاً ونصيحة حاول الابتعاد عن المسميات العربية للجداول والحقول والعناصر والكائنات لأنها تربكك في الأكواد والإستعلامات . بعد تجربة المرفق ، جرب اعمل تجميع في الإستعلام "استعلام الخطة العامة"
  7. نفس الكود في مرفق ، جربته ويعمل بكفاءة Copy TBL.accdb
  8. وعليكم السلام ورحمة الله وبركاته.. مشاركة مع الذكاء الاصطناعي ، جرب هذا الكود التالي Private Sub CommandButton_Click() Dim db As DAO.Database Dim tblName As String Dim newTblName As String ' Set table names tblName = "tbl_student" newTblName = "tbl_student2" ' Get the current database Set db = CurrentDb ' Delete the second table if it exists On Error Resume Next db.TableDefs.Delete newTblName On Error GoTo 0 ' Copy the first table to create the second table DoCmd.CopyObject , newTblName, acTable, tblName ' Clean up Set db = Nothing MsgBox "Table " & newTblName & " has been successfully recreated from " & tblName, vbInformation End Sub * لم يتم تجربة الكود لعدم تواجدي أمام جهاز الكمبيوتر 😁
  9. الآن نظرتي المتواضعة تتلخص في النقاط التالية :- 1. لم تذكر الباسوورد للمستخدم Admin ، وده خلاني أضطر أفتح قاعدة البيانات وأغيره من الجدول US 2. في نموذج تسجيل الدخول عجبتني فكرة إظهار كلمة المرور ، ولكن فرحتي ماكملتش لما اظهر الباسوورد وما عرفتش اخفيها مرة تانية 3. القائمة اللي على اليمين جميلة وفكرتها بسيطة جداً وخفيفة ما فيهاش ترميش ومن الكلام ده ,, بس لو عايز أخفي القائمة ما بتختفيش معاي و ضغطت في أي مكان في النموذج أو حتى على نفس الزرار يا فنااااااااااان
  10. وعليكم السلام ورحمة الله تعالى وبركاته.. الله يرحم والديك ويغفر لوالدك ، ويرفع قدره في جنات النعيم.. بداية اسمح لي بالتهنئة لأول مشروع لك 💐 سأقوم بالتجربة حال التفرغ قريباً جداً ، ولكن واضح أنه نتاج خبرة ما شاء الله جميلة جداً أبدعت يا فنان
  11. وعليكم السلام ورحمة الله وبركاته ،، أخي الكريم @Hazem Hussien ، ولأنك جديد معنا في أسرتنا الكبيرة ؛ أود لفت انتباهك إلى بعض النقاط الهامة كي لا يتم اغلاق موضوعك بسبب مخالفته لقوانين المنتدى . 1. أن يكون العنوان له دلالة على محتوى الموضوع 2. الشرح المفصل للطلب أو المشكلة التي تريد حلها .
  12. مشاركةً مع أستاذي ومعلمي الجليل عجبتني فكرة الكود العجيب الذي طرحه معلمي الفاضل @ابوخليل ، لدرجة إنه جعلني اتمعن في آليته .. فوجدت أنه يقوم بإغلاق المجلد الذي تم فتحه أولاً .!!. بمعنى آخر أنه لو فتحت أولاً مجلد على سطح المكتب اسمه "الحلبي" على سبيل المثال ويحتوي صور وملفات لا علاقة لها بآكسيس ، ثم فتحت المجلد الذي اسمه "اخفاء الفولدر" الذي يحتوي قاعدة البيانات التي بها الكود ، فإن الكود سيقوم بإغلاق المجلد "الحلبي" لأنه مفتوح أولاً . فتطرقت لتعديل الفكرة بحيث يتم اغلاق مسار محدد وهو مسار المجلد التي به قاعدة البيانات الحالية فقط ، ولا يتم اغلاق اي مجلدات أخرى :- نقوم أولاً بإنشاء الدالة التالية :- Sub CloserWindow(targetPath As String) Dim shellApp As Object Dim window As Object Dim folderPath As String Set shellApp = CreateObject("Shell.Application") For Each window In shellApp.Windows If InStr(1, window.FullName, "explorer.exe", vbTextCompare) > 0 Then On Error Resume Next folderPath = window.Document.Folder.Self.Path On Error GoTo 0 If folderPath = targetPath Then window.Quit End If End If Next window Set shellApp = Nothing End Sub ثم نستدعي الدالة من أي مكان وأي وظيفة كالآتي :- Dim targetPath As String targetPath = CurrentProject.Path CloserWindow targetPath حيث هنا تم تحديد المسار الذي نريد اغلاقه بشكل مباشر .
  13. سأقدم لك نصيحة أخوية أخي مازن ,, في العلاقات أحاول جاهداً جعل الحقول المفتاحية أو صاحبة الربط والعلاقات هي دائماً الحقول الرقمية ، لأنها أسها في الاستعلامات والأكواد وأخف في التعامل لتلافي الأخطاء اللغوية . سألقي نظرة ، ولكن تحملني حتى اجد وقتي ولكن ليس هذا اليوم
  14. أخي مازن اذا خبرتك في أكسيس قيد التطوير فلا مانع من السؤال دعني اقرب لك الصورة التي شرحتها انت في مثال بسيط .. على سبيل المثال انه عندك دفتر وتريد كتابة ملاحظة جديدة ، هل تفتح الدفتر على آخر أو أول صفحة فيها بيانات وملاحظات وتبدأ تحذف المكتوب واستبدال القديم ، أم تقوم أولاً بالذهاب الى صفحة جديدة ؟؟؟؟؟؟؟؟؟؟؟؟ إذا من السليم أن تجعل النموذج يذهب الى سجل جديد عند فتحه . تعقيباً على ما طرحه الأستاذ المشاكس @ابو جودي :- الأصل أن يكون الأساس ( الجداول ) ذات بنية سليمة كما تفضل سابقاً باشمهندس محمد . الخطأ اللي كان عندك ( لو أدنا استكمال تصميمك ) هو انك تحتار المنصب من الجدول الذي تحفظ فيه السجلات والتي من بينها حقل المنصب !!!!!!!!!! وهنا كانت فكرة جدول Tbl_Manaseb ليكون للمناصب جدول مستقل تقدر تعدل عليه بنموذج مستقل . وإت جئت لعين الصواب فالملف يحتاج إعادة تأهيل وبناء سليمين
  15. وعليكم السلام ورحمة الله وبركاته ,, هذا النمط من الجمل الشرطية يسمى توابع الجملة الشرطية المتداخلة . وفي حالتك تريد التحقق من شرطي مقارنة مختلفين وإرجاع قيمة معينة إذا تحقق أحدهما. IIf([ASNAF.UNIT]=[SAP.UNIT], "YYY", IIf([ASNAF.UNIT]=[SAP.[ADDITION UNIT]], "YYY", "NNN")) جرب وأخبرني بالنتيجة
  16. وعليكم السلام ورحمة الله وبركاته ، أرجو منك الإلتزام بقوانين المنتدى كي تحصل على النتيجة التي تريدها دون عنا و وقت طويل , أرجو إرفاق ملف مرفق ليتم العمل عليه وتطبيق الحلول عليه
  17. ومشاركةً مع أخي @ahmed draz ، اجعل كود الحدث بعد التحديث للقائمة cmb_TQ كما يلي ، لجلب التسمية التوضيحية للحقول من الجدول المختار من القائمة .. Private Sub cmb_TQ_AfterUpdate() Dim db As Database, td As TableDef Dim fld As Field Dim sql As String Dim captions As String Set db = CurrentDb Set td = db.TableDefs(Me.cmb_TQ.Value) sql = "SELECT data_tech.* FROM data_tech WHERE data_tech.a1 LIKE '" & Me.cmb_TQ.Value & "' ORDER BY a1" With Me.ListFields .ColumnCount = 1 .RowSourceType = "Value List" .RowSource = "" End With For Each fld In td.Fields If fld.Properties("Caption") <> "" Then captions = fld.Properties("Caption") Else captions = fld.Name End If Me.ListFields.AddItem captions Next fld Set db = Nothing Set td = Nothing End Sub هذا فيما يخص الطلب الأول طبعاً . ، وأعتقد الثاني أيضاً ولكن بطريقة الاختيار المتعدد .
  18. أخي الكريم ، اعتذر لتأخري في الرد لظرف طارئ . تم انشاء الجدول Tbl_Manaseb لإضافة المناصب التي تريدها حسب حاجتك .. وتعديل مصدر بيانات الكومبوبوكس "اسم المنصب" فقط
  19. أخي الكريم ،، تسلسل الأحداث لديك هل هو كالآتي ؟ اضافة جلسة أولاً ، ثم إضافة إجتماع ، ثم إضافة نشاط !!!!!!!
  20. وعليكم السلام ورحمة الله وبركاته أخي @مازن الحسيني ,, أعتقد أن فكرتك في تصميم جدل المنصب غير سليمة ,, فالأصل انشاء جدول خاص ومنفرد للمناصب ، وهذا ما قمت به في المرفق التالي المعدل ,, مثال.mdb
  21. وعليكم السلام ورحمة الله وبركاته ،، أخي الفاضل بالنسبة للنموذج Meetingfrm ، قم بإنشاء زر للحفظ مثلاً واجعل هذا السطر بداخله لتحديث القيمة في المربع نفسه كون مصدره الحقل في الجدول المستهدف jalsatbl ومن ثم سيتم الانتقال الى سجل جديد . Me.jalsadate.Value = Me.meetingdate.Value DoCmd.GoToRecord , , acNewRec قمت بنقل كود الدالة DlookUp من حدث عند النقر على الكومبوبوكس jals الى الحدث بعد التحديث ( وهو الأصح ) . بالنسبة لنموذج النشاطات Nashatatfrm ، فلم أفهم المغزى أو الفكرة لأني لست على دراية بآلية إدخال البيانات في ملفك ( من اين تبدأ وفيمن تنتهي ) .
  22. من خلال المواصفات التي قدمتها اعتقد انه لا يوجد مشكلة في المواصفات ، إلا بعد جوابك على السؤال التالي تختلف إجابتي .. هل في باقي المشاريع التي جربتها على جهازك يوجد بطئ في التعامل مع قاعدة البيانات ؟؟ بناءً عليه تأكد من تعريف كرت الشاشة إنه سليم . غير ذلك عليك التأكد من نسخة الأوفيس انها لا تحتوي على مشاكل أو جرب على إصدار آخر .
  23. هلا والله بالجمال والدلال سلمت يداك على هذه التحفة ،🤗، المثالين جميلين ، والثاني فكرته أجمل 😍
×
×
  • اضف...

Important Information