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

ابو جودي

أوفيسنا
  • Posts

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

  • Days Won

    202

كل منشورات العضو ابو جودي

  1. اولا بارفو شاطر والله انك بتحاول وتعافر وتشغل دماغك صدقنى المعلومة والفكرة اللى بتتعب وتدوخ فيها وتحصلها بصعوبة علشان تروح من مخك هتروح بصعوبة برضو اما اللى بيجى سهل بيروح اسهل ما بيجى انا اسف جدا جدا جدا لحضرتك والله كنت تعبان والعلاج بتاعى مش موجود سامحنى ع التأخير بس فعلا الموضوع اكبر منى الحمد لله رب العالمين اه نسيت اقول لك خليك كريم وبطل بخل لما تكون كاتب سؤال طالما وصلت للاجابة بتاعته بفضل الله تضع الاجابة بالاكواد وبالمرفق علشان الكل يتعلم وعدد النوايا مساعدة للغير وعلم ينتفع به ونسأل الله تعالى القبول
  2. يا عم حرام عليك انت عامل ايه انت كل ما تلاقى موضوع بيتكلم عن التفقيط او تحويل الارقام لـ تيكست تضيف اكواده وخلاص ؟؟؟
  3. اولا ياريت مرفق للكود اللى بتشتغل بيه ثانيا ممكن التوضيح هل تريد 150.320 ان تحصل على النتيجة الصحيحة فقط يعنى انت عاوز النتيجة = مائة وخمسون دينار فقط لاغير
  4. اتفضل Dim sql As DAO.Recordset Dim strAmount As String Dim Amount As Double Dim i As Integer Dim exists As Boolean Dim rsCheck As DAO.Recordset Set sql = CurrentDb.OpenRecordset("G2", dbOpenDynaset) Amount = Round(Forms![f1]![المبلغ] / Forms![f1]![NO], 2) strAmount = NoToTxt(Amount, "دينار", "فلس") ' Check if records already exist for the same invoice number For i = 0 To Forms![f1]![NO] - 1 exists = False Set rsCheck = CurrentDb.OpenRecordset("SELECT * FROM G2 WHERE [رقم] = " & Forms![f1]!X & " AND [التاريخ] = #" & Format(DateAdd("m", i, Forms![f1]![Date]), "yyyy/mm/dd") & "#", dbOpenDynaset) If Not rsCheck.EOF Then exists = True End If rsCheck.Close If Not exists Then With sql .AddNew ![رقم] = Forms![f1]!X ![التاريخ] = DateAdd("m", i, Forms![f1]![Date]) ![المبلغ] = Round(Forms![f1]![المبلغ] / Forms![f1]![NO], 2) ![المبلغ كتابه] = strAmount ![القسط] = "لم يتم الدفع" .Update End With End If Next i sql.Close Forms("f1").Requery
  5. على اساس ان السطر ده مش موجود ؟؟ لا والله فقط انا مريض ولكن ما ينفعش انت تنزل هدية وانا ما ارد عليك لا ولازم اعبى مكتبتى انا التانى اوماااااااااااال
  6. الاستاذ الجليل صاحب المكتبة العامرة @Moosak انت مبدع وعبقرى ما شاء الله تبارك الله تسلم ايدك اسأل الله أن يديم عليكم الصحة والعافية وأن يحفظكم من كل سوء ومكروه ويبارك فيكم وفي أرزاقكم ويسهل لكم اموركم وان يحسن لكم القضاء ويبعد عنكم الشقاء ولا يمر عليكم يوم إلا وأنتم في نعمة وصحة وعافية اللهم آمين يارب العالمين 🤲
  7. بصراحة لا اتذكر السبب تحديدا ولتأكدى من التجربة اكثر من مرة والحصول على نقس النتيجة وقتها اعتقدت انها مشكلة وقصور فى الاكسس
  8. سبحان الله مع انو جربتها ولكن لا اعرف لماذا لم تعمل وممكن تنفيذ السيناريو المطلوب بالشكل التالى بوضع الكود الاتى فى وحدة نمطية عامة لو اردنا استدعاء الكود اكثر من مرة وفى اكثر من مكان Const TargetTableName As String = "tblDataB" Const SourceTableName As String = "tblData" Sub CopyTableWithOverwrite() ' Check if the destination table already exists and delete it If TableExists(TargetTableName) Then DoCmd.DeleteObject acTable, TargetTableName End If ' Copy the source table to the target table DoCmd.CopyObject , TargetTableName, acTable, SourceTableName End Sub ' Helper function to check if a table exists Function TableExists(tableName As String) As Boolean Dim db As DAO.Database Dim tdf As DAO.TableDef On Error Resume Next Set db = CurrentDb Set tdf = db.TableDefs(tableName) TableExists = (Err.Number = 0) On Error GoTo 0 Set tdf = Nothing Set db = Nothing End Function على ان يكون الاستدعاء فقط بالشكل التالى على زر الامر او وفق اهوائك ورغباتك فى الحدث والوقت المناسبين ' Call the CopyTableWithOverwrite subroutine to perform the table copy CopyTableWithOverwrite
  9. طيب هو الموضوع عنوانه : تصميم برنامج لسنتر بلاي ستيشن يعنى لا يوجد اسئلة ينتظر وضع اجابات لها اذا لابد ومن الاولى ان نبدأ بالتحليل النظرى ثم التحليل المنطقى ثم وضع الية العمل والسيناريو وفقا للتحليل ثم بدأ البناء ليكون على اساس سليم وصحيح وبدء البناؤ يبدأ ببناؤ الجداول الصحيح اولا وليس بالحسابات والنماذج ثم الجداول
  10. بدون زعل لو الموضوع بالشكل ده بس حرام يتعمل لع قاعدة وتشغل له جهاز حاسب الى مخصوص كراسة وقلم وعيش حياتك اسهل اه والله زيمئولك كده بالنسبة لكل جهاز دى انسخ بس الاكواد ولصق لكل زر امر مع تغيير اسماء العناصر والحمد لله ان انا مش فاضى لان لو الموضوع كده بس انا كنت ممكن يجيلى شلل لان مبدئيا انا كنت اضع للقاعدة من 4 الى 6 جداول ووجع قلب وكتابة اكود المطلوب ده لعب عيال وتم تحقيقه خلاص
  11. شوف يا سيد فوكش انا فعلا والله برد وشغال فى حجات تخص عملى تقريبا مضغوط قليلا والموضوع ده عاوز له روقان لو عاوز الفكرة اللى بتدور فى مخيلتى نظريا ارجع لموضوع الجداول بتاعك بتاع انشاء الجدول الديناميكى فى جزء يخص خضائص الحقل عند انشاء الجدول الجديد ده شق الاجابة الثانى والمطلوب لتحقيق اجابة السؤال الشق الاول للوصول لتلك المرحلة عمل دالة لتمرير اسم الجدول الاساسى االيها بتقوم بعمل دوران على الحقول لمعرفة وتيديل الاتى فى مصفوفة مثلا اسم الحقل نوع الحقل وصف الحقل تسمية الحقل ويتم تمرير البسانات دى للكود بتاعك اللى اتكلمنا عنه فى الشق الاول لفة رخمة وعاوزة روقان بجد
  12. لو ركزت شوية فى كلامى بدون نقاش انت جرب وشوف علشان تتأكد
  13. بعد اذن استاذى الجليل ومعلمى القدير و والدى الحبيب الاستاذ @ابوخليل حياكم الله وبياكم الموضوع به تحد كبير فعلا على استحياء دعنى اوضح لك الامور لتتضح الرؤية من نقاط ضعف الاكسس انه لا يقوم بعمل نسخ الجدول بخصائص الحقول بداخله ولكن يتم ذلك بهيكل الجدول فقط وبيانات الحقول يعنى ابه الكلام دة ببساطة سوف اشرح على الصور الاتية الجزء المأطر بالازرق والذى يحمل العنوان Description ( Optional ) والذى يتم فيه كتابة وصف لكل حقل والجزء المأطر بالاسفل باللون البنفسجى وهو الـ Caption لكل حقل هذان يعدان من خصائص الحقول داخل الجدول عند عمل حذف للجدول الثانوى ونسخ الجدول الاساسى لا يأتى الجدول الجديد وليد عملية الاستنساخ بهذه الخصائص لاعداد الحقول فى الجدول الاساسى ولكن ولكن ولكن والله اعلم اعتقد قد يكون لها حل برمجى وانا ان شاء الله اعمل على ذلك
  14. الاستاذ @Foksh تحياتى وتسلم ايدك تمام حلوه الحسابات وحلوة الدنيا مافيش كلام لكن اين الاساس ؟؟؟ اين جداول الحسابات التى توضح الربح اليومى وكيف نحصل على حسابات الربح الشهرى والسنوى واين جدول المدفوعات واين جدول المشتريات لادراة رأس المال بطريقة سليمة وامنة وان كان هناك اكثر من جهاز ولكل جهاز قيمة سعرية مختلفة عن الاخر اين واين واين .... واين واين واين واترككم لبنات افكاركم وعندما يتثنى لى الوقت المناسب لن ابخل لا بالوقت ولا بالجهد تحياتى
  15. فضلا وكرما حفاظا على قوانين المنتدى ياريت فتح موضوع جديد بخصوص هذا الطلب
  16. باش مهندسة @hanan_ms برافو تسلم ايدك
  17. هذه هى النتيجة المؤكده و هو الرد الطبيعى من مجرد طالب علم يتكبر بغرور وجهل احسنت
  18. الاجابة الاصح والافضل اولا : كود الوحدة النمطية العامة تم اعادة هيكلة الكود وتعديله للتعامل مع النواتان بالطريقة الصحيحة على Option Compare Database Option Explicit #If VBA7 Or Win64 Then Private Declare PtrSafe Function CallNextHookEx Lib "user32" (ByVal hHook As LongPtr, ByVal ncode As LongPtr, ByVal wParam As LongPtr, lParam As Any) As LongPtr Private Declare PtrSafe Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As LongPtr Private Declare PtrSafe Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As LongPtr, ByVal lpfn As LongPtr, ByVal hmod As LongPtr, ByVal dwThreadId As LongPtr) As LongPtr Private Declare PtrSafe Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As LongPtr) As LongPtr Private Declare PtrSafe Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" (ByVal hDlg As LongPtr, ByVal nIDDlgItem As LongPtr, ByVal wMsg As LongPtr, ByVal wParam As LongPtr, ByVal lParam As LongPtr) As LongPtr Private Declare PtrSafe Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As LongPtr, ByVal lpClassName As String, ByVal nMaxCount As LongPtr) As LongPtr Private Declare PtrSafe Function GetCurrentThreadId Lib "kernel32" () As LongPtr #Else Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook as long, ByVal ncode as long, ByVal wParam as long, lParam As Any) as long Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) as long Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA"(ByVal idHook As LongPtr, ByVal lpfn As LongPtr, ByVal hmod As LongPtr, ByVal dwThreadId As LongPtr) As LongPtr Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook as long) as long Private Declare Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" (ByVal hDlg as long, ByVal nIDDlgItem as long, ByVal wMsg as long, ByVal wParam as long, ByVal lParam as long) as long Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd as long, ByVal lpClassName As String, ByVal nMaxCount as long) as long Private Declare Function GetCurrentThreadId Lib "kernel32" () as long #End If 'Constants to be used in our API functions Private Const EM_SETPASSWORDCHAR = &HCC Private Const WH_CBT = 5 Private Const HCBT_ACTIVATE = 5 Private Const HC_ACTION = 0 #If VBA7 Or Win64 Then Private hHook As LongPtr #Else Private hHook As Long #End If Public Function NewProc(ByVal lngCode As LongPtr, ByVal wParam As LongPtr, ByVal lParam As LongPtr) As LongPtr Dim RetVal Dim strClassName As String Dim lngBuffer As LongPtr If lngCode < HC_ACTION Then NewProc = CallNextHookEx(hHook, lngCode, wParam, lParam) Exit Function End If strClassName = String$(256, " ") lngBuffer = 255 If lngCode = HCBT_ACTIVATE Then RetVal = GetClassName(wParam, strClassName, lngBuffer) If Left$(strClassName, RetVal) = "#32770" Then SendDlgItemMessage wParam, &H1324, EM_SETPASSWORDCHAR, Asc("*"), &H0 End If End If CallNextHookEx hHook, lngCode, wParam, lParam End Function Public Function InputBoxDK(Prompt, Optional Title, Optional Default, Optional XPos, Optional YPos, Optional HelpFile, Optional Context) As String On Error GoTo ExitProperly Dim lngModHwnd As LongPtr Dim lngThreadID As LongPtr lngThreadID = GetCurrentThreadId lngModHwnd = GetModuleHandle(vbNullString) hHook = SetWindowsHookEx(WH_CBT, AddressOf NewProc, lngModHwnd, lngThreadID) InputBoxDK = InputBox(Prompt, Title, Default, XPos, YPos, HelpFile, Context) UnhookWindowsHookEx hHook ExitProperly: UnhookWindowsHookEx hHook End Function ثانيا الكود داخل النموذج المستهدف والذى تريد التعامل معه لابد ان يكون الكود على طريقة كبار المعلمين والمحترفين فى حدث ( فتح النموذج ) وليس حدث التحميل Private Sub Form_Open(Cancel As Integer) ' Exit if this is a new record Dim MyPass As String Dim TargetFormName As String ' Replace "TargetFormName" with the actual form name you want to open If Len(TargetFormName & "") = 0 Then TargetFormName = Me.Name ' Prompt user for the password MyPass = InputBoxDK("To open this form, you need to know the correct password to proceed with the opening process", "Confirm Opening a Secured Form") ' Check if the entered password is correct If MyPass = "123" Then If Len(TargetFormName & "") = 0 Then TargetFormName = Me.Name DoCmd.OpenForm TargetFormName ElseIf Len(MyPass & "") = 0 Then MsgBox "Form opening process canceled", vbInformation ' Display a message if the operation is canceled Cancel = True ' Cancel the form opening Else MsgBox "Incorrect password", vbExclamation ' Display a message if the password is incorrect Cancel = True ' Cancel the form opening End If End Sub واخيـرا: المرفق الصحيح ليكون مرجعا للدارسين وطلاب العلم test (3).accdb
  19. طيب للعلم وللدارسين والباحثين مستقبلا الحل الذى تم التأشير عليه كأفضل إجابة عاجز وغير مجدى مع النواة 64 نظراً لقصور أو إهمال أو عجز المطور عن إعادة هيكلة الكود لتعديله ليتوافق مع كل الأنوية والذى يقع فريستها العاجزين ومن اجل ذلك عرضت طريقتى ومرفقى الذى لا يعتمد على دوال تتطلب التحويل تسهيلا وابتعاد عن مشاكل الدوال
  20. شوف يا سيدى افتح التقرير مباشرة وافتح النموذج :frmSecretData مباشرة المفروض ان دول تم تأمينهم عند القتح مباشرة لو تخطى المستخدم قتحهم من النموذج الرئيسي بطلب كلمة المرور وهنا المرونة كلمة المرور تستطيع تغيرها عن الموجودة فى الوضع الطبيعى للفتح من النموذج الرئيسي وبعد ذلك قم بفتح النموذج والتقرير من النموذج الرئيسى وفق لكلمة المرور والموضحة على كل زر امر فى النموذج الرئيس
  21. هلا والله هلا هلا و 100 مليون هلا حياكم الله وبياكم لا ننتظر مقابلا او جزاء من احد او شكورا فى هذا المنتدى هى لله ونرجو من الله تعالى القبول ده كده كده فى اى وقت اهلا بيك 🤝 يلا توكل على الله تعالى وسوف تجد كل الدعم قدر الامكان من اساتذتنا العظماء الكرام واخواننا اما وبما اننى اقل طويلب علم فى هذا الصرح الرائع الشامخ سوف اجتهد لابحث فى مسألتكم واتعلم معكم وطلاب العلم ونتشارك المعرفة
  22. البنى ادم ده طماع قوى يا اخى عاوز كل شئ كامل متكامل والكمال لله وحدة انت عندك حق فعلا بس لو المبرمج غلط يرجع يعدل الدنيا سهله خيغير التاجات بانه يعلم على ازرار كل مجموهة دفعة واحدة وتغير التاج لها بقيمة الـ TabIndex الجديدة للزر الرئيسي لهذه المجموعة انا اللى يهمنى المرونة فى الاستدعاء والسهولة فى التعامل مع اى قاعدة اخرى لتنقيذ نفس السيناريو المطروح ياريت اذا عند حضرتك اى افكار بديلة تطرحها وياريت ايضا اذا اى اخ كريم او استاذ جليل عندة فكرة لهذه المشكلة يطرح لنا الافكار لتفادى هذه المشكلة
×
×
  • اضف...

Important Information