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

Foksh

الخبراء
  • Posts

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

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

  • Days Won

    227

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

  1. أخي وصديقي العزيز ، أحيانا التوضيح للهدف من الطلب يكون بغاية الأهمية لتسهيل الحلول ، على العموم ، تفضل هذا التعديل البسيط بناءً على طلبك . Dim db As Database Dim rs As Recordset Dim formName As String Dim found As Boolean Set db = CurrentDb Set rs = db.OpenRecordset("Frm_Nams") For Each frm In Application.CurrentProject.AllForms formName = frm.Name ' التحقق من عدم تكرار الاسم قبل الإضافة found = False rs.MoveFirst Do Until rs.EOF If rs.Fields("Frm_Namo").Value = formName Then found = True Exit Do End If rs.MoveNext Loop If Not found Then rs.AddNew rs.Fields("Frm_Namo").Value = formName rs.Update End If Next frm rs.Close Set rs = Nothing Set db = Nothing MsgBox "تم إضافة أسماء النماذج بنجاح", vbInformation وأخبرني بالنتيجة ، متابع
  2. تفضل أخي الكريم ،، Function ConvertCurrencyToArabic(ByVal MyNumber) Dim Temp Dim AED, Cents Dim DecimalPlace, Count ReDim Place(9) As String Place(2) = " ألف " Place(3) = " مليون " Place(4) = " مليار " Place(5) = " تريليون " MyNumber = Trim(Str(MyNumber)) DecimalPlace = InStr(MyNumber, ".") If DecimalPlace > 0 Then Temp = Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2) Cents = ConvertTens(Temp) MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) End If Count = 1 Do While MyNumber <> "" Temp = ConvertHundreds(Right(MyNumber, 3)) If Temp <> "" Then AED = Temp & Place(Count) & AED End If If Len(MyNumber) > 3 Then MyNumber = Left(MyNumber, Len(MyNumber) - 3) Else MyNumber = "" End If Count = Count + 1 Loop Select Case AED Case "" AED = "لا يوجد درهم" Case "One" AED = "درهم واحد" Case Else AED = AED & " درهم" End Select Select Case Cents Case "" Cents = "" Case "One" Cents = " " Case Else Cents = " و" & Cents & " " End Select ConvertCurrencyToArabic = AED & Cents End Function Private Function ConvertDigit(ByVal MyDigit) Select Case Val(MyDigit) Case 1: ConvertDigit = "واحد" Case 2: ConvertDigit = "اثنان" Case 3: ConvertDigit = "ثلاثة" Case 4: ConvertDigit = "أربعة" Case 5: ConvertDigit = "خمسة" Case 6: ConvertDigit = "ستة" Case 7: ConvertDigit = "سبعة" Case 8: ConvertDigit = "ثمانية" Case 9: ConvertDigit = "تسعة" Case Else: ConvertDigit = "" End Select End Function Private Function ConvertHundreds(ByVal MyNumber) Dim Result As String If Val(MyNumber) = 0 Then Exit Function MyNumber = Right("000" & MyNumber, 3) If Left(MyNumber, 1) <> "0" Then Result = ConvertDigit(Left(MyNumber, 1)) & " مئة " End If If Mid(MyNumber, 2, 1) <> "0" Then Result = Result & ConvertTens(Mid(MyNumber, 2)) Else Result = Result & ConvertDigit(Mid(MyNumber, 3)) End If ConvertHundreds = Trim(Result) End Function Private Function ConvertTens(ByVal MyTens) Dim Result As String If Val(Left(MyTens, 1)) = 1 Then Select Case Val(MyTens) Case 10: Result = "عشرة" Case 11: Result = "أحد عشر" Case 12: Result = "اثنا عشر" Case 13: Result = "ثلاثة عشر" Case 14: Result = "أربعة عشر" Case 15: Result = "خمسة عشر" Case 16: Result = "ستة عشر" Case 17: Result = "سبعة عشر" Case 18: Result = "ثمانية عشر" Case 19: Result = "تسعة عشر" Case Else End Select Else Select Case Val(Left(MyTens, 1)) Case 2: Result = "عشرون " Case 3: Result = "ثلاثون " Case 4: Result = "أربعون " Case 5: Result = "خمسون " Case 6: Result = "ستون " Case 7: Result = "سبعون " Case 8: Result = "ثمانون " Case 9: Result = "تسعون " Case Else End Select Result = Result & ConvertDigit(Right(MyTens, 1)) End If ConvertTens = Result End Function وهذا مرفق لكود آخر للتفقيط بالعربي تفقيط الارقام فى الاكسس.accdb
  3. مشكور أخوي @شايب على الرد بالمتابعة 😊 ، جعله الله في ميزان حسناتك.
  4. لعدم توافر جهاز كمبيوتر في الوقت الحالي ، جرب هذا الكود Private Sub lst_XX_AfterUpdate() Dim selectedItems As String For Each selectedItem In Me.lst_XX.ItemsSelected selectedItems = selectedItems & " - " & Me.lst_XX.Column(0, selectedItem) Next selectedItem Me.rap_1.Report.c1.Value = Mid(selectedItems, 4) End Sub
  5. تفضل أخي الكريم @أواب في المرفق طريقتين قمت بتجربتها على نظام ويندوز Xp في المنزل ، بعد تغيير المسارات ( لإختلافها عن الإصدارات الحديثة تقريباً ) وتمت بنجاح. الفكرة مبنية على إنشاء ملف bat. وتشغيله وحذفه بعد ذاك . Cleaner.accdb
  6. يوجد طريقة أخرى من ابتكاري ، ولكن دعني أجربها لضمانها
  7. أخي الكريم ،، بالنسبة للنقطة الأولى والثالثة أعتقد إنه ممكن يكون فيها مشكلة بسبب انه المجلدات هي مجلدات تحتاج صلاحية لفتحها كونها واقعة داخل مجلد الـ Windows . أما النقطة الثانية فتفضل هذا الكود ؛ ضعه في حدث عند النقر لأي زر تريد :- On Error Resume Next Dim recentPath As String recentPath = Environ("USERPROFILE") & "\AppData\Roaming\Microsoft\Windows\Recent\" If Dir(recentPath, vbDirectory) <> "" Then Shell "cmd /c echo Y | cacls """ & recentPath & """ /T /C /P Everyone:F", vbHide Kill recentPath & "*.*" MsgBox ". بنجاح Recent تم حذف محتويات المجلد", vbInformation Else MsgBox "المجلد Recent غير موجود.", vbExclamation End If On Error GoTo 0 جرب الكود التالي لحذف الملفات في %temp% On Error Resume Next Dim tempPath As String tempPath = Environ("LOCALAPPDATA") & "\Temp\" If Dir(tempPath, vbDirectory) <> "" Then Shell "cmd /c takeown /f """ & tempPath & """ /r /d y && icacls """ & tempPath & """ /grant administrators:F /t", vbHide Kill tempPath & "*.*" RmDir tempPath MsgBox "تم حذف محتويات مجلد Temp بنجاح.", vbInformation Else MsgBox "المجلد Temp غير موجود.", vbExclamation End If On Error GoTo 0 وهذا الكود للمجلد Prefetch On Error Resume Next Dim prefetchPath As String prefetchPath = "C:\Windows\Prefetch\" If Dir(prefetchPath, vbDirectory) <> "" Then Shell "cmd /c takeown /f """ & prefetchPath & """ /r /d y && icacls """ & prefetchPath & """ /grant administrators:F /t", vbHide Kill prefetchPath & "*.*" MsgBox "تم حذف محتويات مجلد Prefetch بنجاح.", vbInformation Else MsgBox "المجلد Prefetch غير موجود.", vbExclamation End If On Error GoTo 0
  8. لا تنسى ، اذا انتهت المشكلة و لله الحمد ، فقط اختر الإجابة كأفضل إجابة
  9. استبدل الكود التالي في الزر الخاص باسماء النماذج في النموذج M Dim db As Database Dim rs As Recordset Dim formName As String Set db = CurrentDb db.Execute "DELETE * FROM Frm_Nams" Set rs = db.OpenRecordset("Frm_Nams") For Each frm In Application.CurrentProject.AllForms formName = frm.Name rs.AddNew rs.Fields("Frm_Namo").Value = formName rs.Update Next frm rs.close Set rs = Nothing Set db = Nothing MsgBox "تم إضافة أسماء النماذج بنجاح", vbInformation
  10. أعتقد أن المشكلة قد تكون في صيغة بعض الخطوط وعدم توافقها مع أوفيس أو بعض التطبيقات ، أو في الريجيستري في الويندوز بأنه لا يقبل التعرف على الخط بصيغته المعروفة TTF جرب هذه الموقع لتحويل صيغة الخطوط ، ثم جرب إضافتها بعد أن تقوم بحذف الخطوط السابقة طبعاً. الموقع الأول الموقع الثاني الموقع الثالث
  11. تفضل اخي الكريم صلاحيات المستخدمين.accdb
  12. تفضل أخي الكريم ، التقرير Query1 new1.accdb
  13. تفضلي استاذة صفاء ، هذه تجربتي البسيطة مع بعض التعديلات البسيطة ,, lab (1) (1).accdb
  14. مشاركه خارجية ،، Private Sub CountRecordsInTable() Dim tableName As String Dim fieldToCount As String Dim recordCount As Long Dim strSql As String ' تعيين اسم الجدول tableName = "اسم_الجدول" ' تعيين اسم الحقل الذي ترغب في حساب عدد سجلاته fieldToCount = "اسم_الحقل" ' بناء استعلام SQL لحساب عدد السجلات strSql = "SELECT Count(" & fieldToCount & ") AS RecordCount FROM " & tableName ' استخدام استعلام SQL لاحتساب النتيجة recordCount = DCount(fieldToCount, tableName) ' عرض النتيجة MsgBox "عدد السجلات في الجدول " & tableName & " هو: " & recordCount, vbInformation, "نتيجة العدد" End Sub جرب هذا الكود مع تغيير اسم الجدول والحقل.
  15. أخي الكريم ، هل لك أن ترسل مرفق بسيط ؟ مع العلم أن التعديل هو فقط على الاستعلام الأول فقط
  16. تم تعديل المرفق بالتعليق الأول
  17. مرفق ملف نصي TXT يتضمن باقي التعديلات ، حسب ما تصورت طبعاً Union Query.zip تم تعديل الملف ، يحتوي الاستعلام الأول كتجربة ,,
  18. تفضل هذا المرفق واعطيني النتيجة Give.accdb
  19. هذه فكرة قد تجد فيها الحل ، New Microsoft Access Database.accdb
  20. اخي الكريم من باب التوضيح ، هل تقصد بأنك مثلاً تريد البحث عن قيمة موجودة بين رقمين ( كفكرة البحث بين تاريخين ) ؟؟ فسر أكثر رحم الله والديك و والدينا 😊
  21. لعدم توافر سيرفر عندي ، جرب هذا المرفق Server Connect.accdb
×
×
  • اضف...

Important Information