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

ابو جودي

أوفيسنا
  • Posts

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

  • Days Won

    202

ابو جودي last won the day on مارس 30

ابو جودي had the most liked content!

السمعه بالموقع

5162 Excellent

عن العضو ابو جودي

  • تاريخ الميلاد 02/28/1982

البيانات الشخصية

  • Gender (Ar)
    ذكر
  • Job Title
    عبد الله
  • البلد
    مصــ♥ـــــر
  • الإهتمامات
     رضا الله هو كل غايتى

وسائل التواصل

  • MSN
    eg_82@hotmail.com , eg_82@outlook.com , eg-82@hotmail.com , eg-82@outlook.com
  • Website URL
    www.officena.net/ib/forum/89-قسم-الأكسيس-access/

اخر الزوار

21256 زياره للملف الشخصي
  1. مشاركة مع اساتذتى الكرام واحبابى اليك هذه الاكواد Public Function CalculateTimeDifference(startDate As Variant, endDate As Variant) As String On Error GoTo ErrorHandler Dim totalSeconds As Double Dim days As Long Dim hours As Long Dim minutes As Long Dim seconds As Long ' التحقق من أن التاريخين ليسا فارغين وهما صالحان If IsNull(startDate) Or IsNull(endDate) Then CalculateTimeDifference = "أحد التواريخ فارغ" Exit Function ElseIf Not IsDate(startDate) Or Not IsDate(endDate) Then CalculateTimeDifference = "أحد التواريخ غير صالح" Exit Function End If ' تحويل التاريخين إلى نوع Date Dim start As Date Dim endD As Date start = CDate(startDate) endD = CDate(endDate) ' حساب الفرق بالثواني totalSeconds = DateDiff("s", start, endD) ' التحقق من القيمة السالبة If totalSeconds < 0 Then CalculateTimeDifference = "تاريخ النهاية يجب أن يكون بعد تاريخ البداية" Exit Function End If ' تحويل الثواني إلى أيام days = Int(totalSeconds / 86400) ' 86400 = عدد ثواني اليوم totalSeconds = totalSeconds - (days * 86400) ' تحويل الثواني إلى ساعات hours = Int(totalSeconds / 3600) ' 3600 = عدد ثواني الساعة totalSeconds = totalSeconds - (hours * 3600) ' تحويل الثواني إلى دقائق minutes = Int(totalSeconds / 60) ' الثواني المتبقية seconds = totalSeconds - (minutes * 60) ' إرجاع النتيجة كنص CalculateTimeDifference = days & " أيام, " & hours & " ساعات, " & minutes & " دقائق, " & seconds & " ثواني" Exit Function ErrorHandler: CalculateTimeDifference = "حدث خطأ: " & Err.Description End Function Public Function CalculateTimeParts(startDate As Variant, endDate As Variant, part As String) As Long On Error GoTo ErrorHandler Dim years As Long Dim months As Long Dim days As Long Dim hours As Long Dim minutes As Long Dim seconds As Long Dim tempDate As Date ' التحقق من أن التاريخين ليسا فارغين If IsNull(startDate) Or IsNull(endDate) Then CalculateTimeParts = 0 Exit Function End If ' التحقق من ترتيب التواريخ If startDate > endDate Then CalculateTimeParts = 0 Exit Function End If ' البدء بحساب الفرقات الزمنية tempDate = startDate ' حساب الفرق في السنوات years = DateDiff("yyyy", tempDate, endDate) tempDate = DateAdd("yyyy", years, tempDate) ' حساب الفرق في الأشهر months = DateDiff("m", tempDate, endDate) tempDate = DateAdd("m", months, tempDate) ' التأكد من عدم وجود قيم سالبة بعد التعديلات If tempDate > endDate Then months = months - 1 tempDate = DateAdd("m", -1, tempDate) End If ' حساب الفرق في الأيام days = DateDiff("d", tempDate, endDate) tempDate = DateAdd("d", days, tempDate) ' حساب الفرق في الساعات hours = DateDiff("h", tempDate, endDate) tempDate = DateAdd("h", hours, tempDate) ' حساب الفرق في الدقائق minutes = DateDiff("n", tempDate, endDate) tempDate = DateAdd("n", minutes, tempDate) ' حساب الفرق في الثواني seconds = DateDiff("s", tempDate, endDate) ' التأكد من عدم وجود قيم سالبة نهائياً If months < 0 Then months = 0 If days < 0 Then days = 0 If hours < 0 Then hours = 0 If minutes < 0 Then minutes = 0 If seconds < 0 Then seconds = 0 ' إرجاع الجزء المطلوب Select Case part Case "Years": CalculateTimeParts = years Case "Months": CalculateTimeParts = months Case "Days": CalculateTimeParts = days Case "Hours": CalculateTimeParts = hours Case "Minutes": CalculateTimeParts = minutes Case "Seconds": CalculateTimeParts = seconds Case Else: CalculateTimeParts = 0 End Select Exit Function ErrorHandler: CalculateTimeParts = 0 End Function الاستعلام الاول والمعتمد على الإجراء : CalculateTimeDifference SELECT Tbl_IN_OUT.ID, Tbl_IN_OUT.Nname, Tbl_IN_OUT.Start_Day, Tbl_IN_OUT.End_Day, CalculateTimeDifference([Start_Day], [End_Day]) AS Sub_Time FROM Tbl_IN_OUT; الاستعلام الثانى والمعتمد على الإجراء : CalculateTimeParts SELECT Tbl_IN_OUT.ID, Tbl_IN_OUT.Nname, Tbl_IN_OUT.Start_Day, Tbl_IN_OUT.End_Day, CalculateTimeParts([Start_Day], [End_Day], "Years") AS Years_Diff, CalculateTimeParts([Start_Day], [End_Day], "Months") AS Months_Diff, CalculateTimeParts([Start_Day], [End_Day], "Days") AS Days_Diff, CalculateTimeParts([Start_Day], [End_Day], "Hours") AS Hours_Diff, CalculateTimeParts([Start_Day], [End_Day], "Minutes") AS Minutes_Diff, CalculateTimeParts([Start_Day], [End_Day], "Seconds") AS Seconds_Diff FROM Tbl_IN_OUT;
  2. الكلام مش مفهوم وبصراحة قواعد البيانات اللى بتكوووووون زحمه زياده عن الللازم ما باحاول حتى افتحها لانها هتعمل لى صداع وانا معنديش استعداد ولا وقت للتحليل وسط هذا الزحام الشديد وانا نوهت ووضحت هذه النقطه من قبل
  3. انت صح وانا بس خليت الكود اكثر مرونه ليعمل مع كل انواع الحقول نص او رقم او تاريخ
  4. استبدل كود الموديول بالكود التالى Public Function Horizontal(tabelle As String, Feld1 As String, Feld2 As String, valFeld1 As Variant) As String Dim DB As DAO.Database Dim rs As DAO.Recordset Dim fieldType As Integer Dim sqlWhere As String Dim first As Boolean ' تعيين قاعدة البيانات الحالية Set DB = CurrentDb ' استرجاع نوع الحقل Feld1 fieldType = DB.TableDefs(tabelle).Fields(Feld1).Type ' تنسيق القيمة بناءً على نوع الحقل Select Case fieldType Case dbText, dbMemo, dbChar ' النصوص: وضع القيمة بين علامات اقتباس مفردة مع معالجة علامات الاقتباس الداخلية sqlWhere = "[" & Feld1 & "]='" & Replace(valFeld1, "'", "''") & "'" Case dbDate, dbTime, dbTimeStamp ' التواريخ: وضع القيمة بين علامات # مع تنسيق التاريخ sqlWhere = "[" & Feld1 & "]=#" & Format(valFeld1, "yyyy-mm-dd hh:nn:ss") & "#" Case dbInteger, dbLong, dbSingle, dbDouble, dbCurrency, dbDecimal ' الأرقام: إدراج القيمة مباشرة sqlWhere = "[" & Feld1 & "]=" & valFeld1 Case Else ' معالجة الأنواع غير المدعومة MsgBox "نوع البيانات غير مدعوم للحقل: " & Feld1, vbExclamation Exit Function End Select ' إنشاء وتنفيذ استعلام SQL Set rs = DB.OpenRecordset("SELECT DISTINCT [" & Feld2 & "] FROM [" & tabelle & "] WHERE " & sqlWhere & " ORDER BY [" & Feld2 & "] DESC") ' تهيئة متغير للسجل الأول first = True ' معالجة السجلات المسترجعة Do While Not rs.EOF If first Then Horizontal = rs(Feld2) ' القيمة الأولى first = False Else Horizontal = Horizontal & vbCrLf & rs(Feld2) ' إضافة القيم التالية مع فاصل سطر End If rs.MoveNext Loop ' تحرير الموارد rs.Close Set rs = Nothing Set DB = Nothing End Function
  5. شوف يا فؤش خطر بالى كتابة الكود بالشكل التالى فى وحده نمطية عامة ' تعداد لتحديد نوع العنصر Public Enum fileType ftAccessDB = 1 ' قاعدة بيانات Access ftExcel = 2 ' ملف Excel ftWord = 3 ' ملف Word ftText = 4 ' ملف نصي ftFolder = 5 ' مجلد ftDrive = 6 ' قسم (Drive) ftAnyFile = 7 ' أي ملف End Enum ' تعداد لتحديد نوع المعلومات المطلوبة Public Enum infoType itPathOnly = 1 ' جلب المسار فقط itSizeOnly = 2 ' جلب الحجم فقط itPathAndSize = 3 ' جلب المسار والحجم itFileNameOnly = 4 ' جلب اسم الملف فقط itFileExtension = 5 ' جلب امتداد الملف فقط itFileNameAndExt = 6 ' جلب اسم الملف مع الامتداد itCreationDate = 7 ' جلب تاريخ الإنشاء itModifiedDate = 8 ' جلب تاريخ التعديل itFileCount = 9 ' جلب عدد الملفات (لمجلد) itFreeSpace = 10 ' جلب المساحة الحرة (لقسم) itTotalSpace = 11 ' جلب المساحة الإجمالية (لقسم) itDriveType = 12 ' جلب نوع القسم itParentPath = 13 ' جلب المسار الأصلي End Enum ' تعداد لتحديد الامتدادات Public Enum FileExtension feAccessDB = 1 ' *.accdb;*.mdb feExcel = 2 ' *.xlsx;*.xls feWord = 3 ' *.docx;*.doc feText = 4 ' *.txt feAnyFile = 7 ' *.* End Enum ' دالة مساعدة للحصول على وصف وامتداد بناءً على FileType Private Function GetFileFilter(fileType As fileType) As Variant Dim description As String Dim extension As String Select Case fileType Case ftAccessDB description = "قواعد بيانات Access" extension = "*.accdb;*.mdb" Case ftExcel description = "ملفات Excel" extension = "*.xlsx;*.xls" Case ftWord description = "ملفات Word" extension = "*.docx;*.doc" Case ftText description = "ملفات نصية" extension = "*.txt" Case ftAnyFile description = "كل الملفات" extension = "*.*" Case Else description = vbNullString extension = vbNullString End Select GetFileFilter = Array(description, extension) End Function ' دالة رئيسية للحصول على معلومات العنصر Public Function GetFileInfo(Optional inputPath As String = vbNullString, _ Optional txtPath As TextBox = Nothing, _ Optional txtSize As TextBox = Nothing, _ Optional txtName As TextBox = Nothing, _ Optional txtExt As TextBox = Nothing, _ Optional txtExtra As TextBox = Nothing, _ Optional fileType As fileType = ftAccessDB, _ Optional infoType As infoType = itPathAndSize, _ Optional decimalPlaces As Integer = 2) As String On Error GoTo ErrorHandler Dim fso As Object Dim shellApp As Object Dim dbPath As String Dim totalSize As Double Dim fileName As String Dim fileExt As String Dim formatStr As String ' إعداد تنسيق الحجم formatStr = "0." & String(decimalPlaces, "0") ' إنشاء كائن FileSystemObject Set fso = CreateObject("Scripting.FileSystemObject") ' التحقق من المسار المدخل مباشرة فقط If Len(Trim(inputPath)) > 0 Then dbPath = inputPath Else ' إذا لم يتم تمرير inputPath، افتح المستعرض دائمًا Set shellApp = CreateObject("Shell.Application") Select Case fileType Case ftFolder Dim folder As Object Set folder = shellApp.BrowseForFolder(0, "اختر مجلدًا", 0) If Not folder Is Nothing Then dbPath = folder.Self.path Else GetFileInfo = "لم يتم اختيار مجلد" Exit Function End If Case ftDrive Dim driveFolder As Object Set driveFolder = shellApp.BrowseForFolder(0, "اختر قسمًا", 0, 17) ' 17 = ssfDRIVES If Not driveFolder Is Nothing Then dbPath = driveFolder.Self.path If Right(dbPath, 1) <> "\" Then dbPath = dbPath & "\" Else GetFileInfo = "لم يتم اختيار قسم" Exit Function End If Case Else ' ملفات Dim fd As Object Set fd = Application.fileDialog(3) ' 3 = msoFileDialogFilePicker With fd .Title = "اختر ملفًا" .Filters.Clear Dim filter As Variant filter = GetFileFilter(fileType) If Len(filter(0)) > 0 Then .Filters.Add filter(0), filter(1) End If .AllowMultiSelect = False If .Show = -1 Then dbPath = .SelectedItems(1) Else GetFileInfo = "لم يتم اختيار ملف" Exit Function End If End With End Select End If ' التحقق من وجود العنصر If Not fso.FileExists(dbPath) And Not fso.FolderExists(dbPath) And Not fso.DriveExists(dbPath) Then GetFileInfo = "العنصر غير موجود" Exit Function End If ' استخراج المعلومات بناءً على infoType Select Case infoType Case itPathOnly If Not txtPath Is Nothing Then txtPath.Value = dbPath GetFileInfo = dbPath Case itSizeOnly totalSize = GetSize(fso, dbPath, fileType) Dim sizeStr As String sizeStr = FormatSize(totalSize, formatStr) If Not txtSize Is Nothing Then txtSize.Value = sizeStr GetFileInfo = sizeStr Case itPathAndSize totalSize = GetSize(fso, dbPath, fileType) sizeStr = FormatSize(totalSize, formatStr) If Not txtPath Is Nothing Then txtPath.Value = dbPath If Not txtSize Is Nothing Then txtSize.Value = sizeStr GetFileInfo = dbPath & " - " & sizeStr Case itFileNameOnly If fso.FileExists(dbPath) Then fileName = fso.GetBaseName(dbPath) If Not txtName Is Nothing Then txtName.Value = fileName GetFileInfo = fileName Else GetFileInfo = "المسار ليس ملفًا" End If Case itFileExtension If fso.FileExists(dbPath) Then fileExt = fso.GetExtensionName(dbPath) If Not txtExt Is Nothing Then txtExt.Value = fileExt GetFileInfo = fileExt Else GetFileInfo = "المسار ليس ملفًا" End If Case itFileNameAndExt If fso.FileExists(dbPath) Then fileName = fso.GetFileName(dbPath) If Not txtName Is Nothing Then txtName.Value = fileName GetFileInfo = fileName Else GetFileInfo = "المسار ليس ملفًا" End If Case itCreationDate If fso.FileExists(dbPath) Then GetFileInfo = fso.GetFile(dbPath).DateCreated ElseIf fso.FolderExists(dbPath) Then GetFileInfo = fso.GetFolder(dbPath).DateCreated ElseIf fso.DriveExists(dbPath) Then GetFileInfo = "غير متاح للأقسام" End If If Not txtExtra Is Nothing Then txtExtra.Value = GetFileInfo Case itModifiedDate If fso.FileExists(dbPath) Then GetFileInfo = fso.GetFile(dbPath).DateLastModified ElseIf fso.FolderExists(dbPath) Then GetFileInfo = fso.GetFolder(dbPath).DateLastModified ElseIf fso.DriveExists(dbPath) Then GetFileInfo = "غير متاح للأقسام" End If If Not txtExtra Is Nothing Then txtExtra.Value = GetFileInfo Case itFileCount If fso.FolderExists(dbPath) Then GetFileInfo = CStr(fso.GetFolder(dbPath).files.Count) If Not txtExtra Is Nothing Then txtExtra.Value = GetFileInfo Else GetFileInfo = "المسار ليس مجلدًا" End If Case itFreeSpace If fso.DriveExists(dbPath) Then totalSize = fso.GetDrive(fso.GetDriveName(dbPath)).FreeSpace sizeStr = FormatSize(totalSize, formatStr) If Not txtSize Is Nothing Then txtSize.Value = sizeStr GetFileInfo = sizeStr Else GetFileInfo = "المسار ليس قسمًا" End If Case itTotalSpace If fso.DriveExists(dbPath) Then totalSize = fso.GetDrive(fso.GetDriveName(dbPath)).totalSize sizeStr = FormatSize(totalSize, formatStr) If Not txtSize Is Nothing Then txtSize.Value = sizeStr GetFileInfo = sizeStr Else GetFileInfo = "المسار ليس قسمًا" End If Case itDriveType If fso.DriveExists(dbPath) Then Select Case fso.GetDrive(fso.GetDriveName(dbPath)).FileSystem Case "FAT", "FAT32", "NTFS", "exFAT" GetFileInfo = fso.GetDrive(fso.GetDriveName(dbPath)).FileSystem Case Else GetFileInfo = "غير معروف" End Select If Not txtExtra Is Nothing Then txtExtra.Value = GetFileInfo Else GetFileInfo = "المسار ليس قسمًا" End If Case itParentPath If fso.FileExists(dbPath) Then GetFileInfo = fso.GetParentFolderName(dbPath) ElseIf fso.FolderExists(dbPath) Then GetFileInfo = fso.GetParentFolderName(dbPath) ElseIf fso.DriveExists(dbPath) Then GetFileInfo = "لا يوجد مسار أصلي للقسم" End If If Not txtPath Is Nothing Then txtPath.Value = GetFileInfo End Select Exit Function ErrorHandler: GetFileInfo = "حدث خطأ (" & Err.Number & "): " & Err.description If Not fso Is Nothing Then Set fso = Nothing If Not shellApp Is Nothing Then Set shellApp = Nothing End Function ' دالة مساعدة لحساب الحجم Private Function GetSize(fso As Object, path As String, fileType As fileType) As Double Select Case fileType Case ftAccessDB, ftExcel, ftWord, ftText, ftAnyFile If fso.FileExists(path) Then GetSize = fso.GetFile(path).size End If Case ftFolder If fso.FolderExists(path) Then GetSize = GetFolderSize(fso.GetFolder(path)) End If Case ftDrive If fso.DriveExists(path) Then With fso.GetDrive(fso.GetDriveName(path)) GetSize = .totalSize - .FreeSpace End With End If End Select End Function ' دالة مساعدة لتنسيق الحجم Private Function FormatSize(size As Double, formatStr As String) As String If size < 1024 Then FormatSize = Format(size, formatStr) & " بايت" ElseIf size < 1024 ^ 2 Then FormatSize = Format(size / 1024, formatStr) & " كيلوبايت" ElseIf size < 1024 ^ 3 Then FormatSize = Format(size / (1024 ^ 2), formatStr) & " ميجابايت" Else FormatSize = Format(size / (1024 ^ 3), formatStr) & " جيجابايت" End If End Function ' دالة مساعدة لحساب حجم المجلد Private Function GetFolderSize(fld As Object) As Double On Error Resume Next Dim subFld As Object Dim file As Object Dim totalSize As Double For Each file In fld.files totalSize = totalSize + file.size Next file For Each subFld In fld.SubFolders totalSize = totalSize + GetFolderSize(subFld) Next subFld GetFolderSize = totalSize End Function
  6. طيب لاحظت عند النقر على زر الامر الخاص باختيار قاعدة البيانات انه يتم فتح مستعرض الملفات مرتين واختيار القاعدة مرتين مش غريبه دى
  7. اسف لم انتبه لوجود كلمة مستمر وللاسف حسب فهمى لا يمكن عمل ذلك مع النماذج المستمرة والله اعلم
  8. رائع جدا جدا الحل السابق فى ابسط صوره الحل التالى اكثر تقدما المميزات تعداد للالوان يمكن اضافة الالوان التى تريدها مستقبلا تعداد للخصائص يمكن اضافة الخصائص التى تريدها " خلفية مربع النص , او لون الخط المستخدم " كود الوحده النمطيه Option Compare Database Option Explicit Public Enum FlashColors FlashWhite = 16777215 ' الأبيض - White (vbWhite) FlashBlack = 0 ' الأسود - Black (vbBlack) FlashRed = 255 ' الأحمر - Red (vbRed) FlashGreen = 65280 ' الأخضر - Green (vbGreen) FlashBlue = 16711680 ' الأزرق - Blue (vbBlue) FlashYellow = 65535 ' الأصفر - Yellow (vbYellow) FlashMagenta = 16711935 ' الماجنتا - Magenta (vbMagenta) FlashCyan = 16776960 ' السماوي - Cyan (vbCyan) FlashOrange = 42495 ' البرتقالي - Orange (RGB: 255, 165, 0) FlashPurple = 8388736 ' البنفسجي - Purple (RGB: 128, 0, 128) FlashPink = 13353215 ' الوردي - Pink (RGB: 255, 192, 203) FlashLime = 65280 ' الليموني - Lime (RGB: 0, 255, 0) FlashTeal = 32896 ' البترولي - Teal (RGB: 0, 128, 128) FlashViolet = 15631086 ' الفيوليت - Violet (RGB: 238, 130, 238) FlashBrown = 2763429 ' البني - Brown (RGB: 165, 42, 42) FlashGold = 55295 ' الذهبي - Gold (RGB: 255, 215, 0) FlashSilver = 12632256 ' الفضي - Silver (RGB: 192, 192, 192) FlashGray = 8421504 ' الرمادي - Gray (RGB: 128, 128, 128) FlashDarkRed = 139 ' الأحمر الداكن - Dark Red (RGB: 139, 0, 0) FlashDarkGreen = 25600 ' الأخضر الداكن - Dark Green (RGB: 0, 100, 0) FlashDarkBlue = 9109504 ' الأزرق الداكن - Dark Blue (RGB: 0, 0, 139) FlashOlive = 32896 ' الزيتوني - Olive (RGB: 128, 128, 0) FlashMaroon = 128 ' المارون - Maroon (RGB: 128, 0, 0) FlashNavy = 8388608 ' الكحلي - Navy (RGB: 0, 0, 128) FlashTurquoise = 13757312 ' التركواز - Turquoise (RGB: 64, 224, 208) FlashIndigo = 8519755 ' النيلي - Indigo (RGB: 75, 0, 130) FlashCoral = 5275647 ' المرجاني - Coral (RGB: 255, 127, 80) FlashSalmon = 7504122 ' السلموني - Salmon (RGB: 250, 128, 114) FlashBeige = 14480885 ' البيج - Beige (RGB: 245, 245, 220) FlashLavender = 16443110 ' الخزامى - Lavender (RGB: 230, 230, 250) End Enum ' تعداد لتحديد نوع الوميض: لون النص أو لون الخلفية Public Enum flashType FlashForeColor = 0 ' الوميض على لون النص - ForeColor FlashBackColor = 1 ' الوميض على لون الخلفية - BackColor End Enum ' دالة لجعل مربع النص يومض بلونين محددين بناءً على شرط معين ' txtBox: مربع النص الذي سيتم تطبيق الوميض عليه ' condition: الشرط الذي يحدد ما إذا كان الوميض سيتم تفعيله أم لا ' color1: اللون الأول للوميض (اختياري، الافتراضي هو FlashYellow) ' color2: اللون الثاني للوميض (اختياري، الافتراضي هو FlashRed) ' flashType: نوع الوميض (لون النص أو الخلفية، اختياري، الافتراضي هو FlashForeColor) Public Sub FlashTextBox(txtBox As TextBox, condition As Boolean, Optional color1 As FlashColors = FlashYellow, Optional color2 As FlashColors = FlashRed, Optional flashType As flashType = FlashForeColor) ' متغير ثابت لتتبع حالة الوميض (يتغير بين True وFalse) Static isFlashing As Boolean ' التحقق من تحقق الشرط If condition Then ' تحديد ما إذا كان الوميض سيطبق على لون النص أو الخلفية بناءً على flashType If flashType = FlashForeColor Then ' الوميض على لون النص If isFlashing Then txtBox.ForeColor = color1 ' تعيين اللون الأول للنص Else txtBox.ForeColor = color2 ' تعيين اللون الثاني للنص End If Else ' الوميض على لون الخلفية If isFlashing Then txtBox.BackColor = color1 ' تعيين اللون الأول للخلفية Else txtBox.BackColor = color2 ' تعيين اللون الثاني للخلفية End If End If ' عكس حالة الوميض للتبديل في المرة القادمة isFlashing = Not isFlashing ' تحديث الشاشة لعرض التغيير فوراً Application.Echo True Else ' إذا لم يتحقق الشرط، إعادة الإعدادات إلى الافتراضية If flashType = FlashForeColor Then txtBox.ForeColor = FlashBlack ' لون النص الأسود كافتراضي Else txtBox.BackColor = FlashWhite ' لون الخلفية الأبيض كافتراضي End If End If End Sub الاستدعاء ' استدعاء الدالة العامة للوميض ' txtValue هو اسم مربع النص الذي يحتوي على القيمة (مثل 5) ' txtFlash هو اسم مربع النص الذي سيمضي FlashTextBox Me.txtFlash, (Me.txtValue = "5"), FlashGold, FlashBlue ------------------------------------------------------- أو لتغير خلفية مربع النص FlashTextBox Me.txtFlash, (Me.txtValue = "5"), FlashMagenta, FlashWhite, FlashBackColor ------------------------------------------------------- أو لتغير لون الخط وهو الافتراضى كما بالكود FlashTextBox Me.txtFlash, (Me.txtValue = "5"), FlashMagenta, FlashWhite أو FlashTextBox Me.txtFlash, (Me.txtValue = "5"), FlashMagenta, FlashWhite, FlashForeColor
  9. اتفضل يا سيدى كود الوحده النمطيه Public Sub FlashTextBox(txtBox As TextBox, condition As Boolean, Optional color1 As Long = vbYellow, Optional color2 As Long = vbRed) ' تعريف متغير للتحكم في الوميض Static isFlashing As Boolean If condition Then ' إذا تحقق الشرط (القيمة = 5)، يتم الوميض بين اللونين If isFlashing Then txtBox.BackColor = color1 ' اللون الأول (الأصفر افتراضيًا) Else txtBox.BackColor = color2 ' اللون الثاني (الأحمر افتراضيًا) End If isFlashing = Not isFlashing ' إعادة تشغيل المؤقت لاستمرار الوميض Application.Echo True Else ' إذا لم يتحقق الشرط، يظل النص ثابتًا بلون افتراضي txtBox.BackColor = vbWhite ' اللون الافتراضي End If End Sub كود الاستدعاء داخل النموذج Private Sub Form_Current() ' استدعاء الدالة العامة للوميض ' txtValue هو اسم مربع النص الذي يحتوي على القيمة (مثل 5) ' txtFlash هو اسم مربع النص الذي سيمضي FlashTextBox Me.txtFlash, (Me.txtValue = "5"), vbYellow, vbRed End Sub Private Sub Form_Timer() ' استدعاء الدالة العامة مرة أخرى لتحديث الوميض FlashTextBox Me.txtFlash, (Me.txtValue = "5"), vbYellow, vbRed End Sub يمكن تغيير الالوان كما تريد مثلا مثل Private Sub Form_Current() ' استدعاء الدالة العامة للوميض ' txtValue هو اسم مربع النص الذي يحتوي على القيمة (مثل 5) ' txtFlash هو اسم مربع النص الذي سيمضي FlashTextBox Me.txtFlash, (Me.txtValue = "5"), vbGreen, vbBlue End Sub Private Sub Form_Timer() ' استدعاء الدالة العامة مرة أخرى لتحديث الوميض FlashTextBox Me.txtFlash, (Me.txtValue = "5"), vbGreen, vbBlue End Sub او FlashTextBox Me.txtFlash, (Me.txtValue = "5") او FlashTextBox Me.txtFlash, (Me.txtValue = "5"), RGB(0, 255, 0), RGB(0, 0, 255) طبعا مع ضبط سرعة عداد الوقت كما يناسب رغباتك يا افندم طبعا انا خليتك تمرر القيمه مع الاستدعاء للمرونه علشان تنفع مع اى قيم كمان وميض (1).accdb
  10. اضف بيانات حتى وان كانت وهميه مع الاستعلام المناسب لبياناتك والذى سوف يكون مصدر للتقرير حتى نتمكن من مساعدتك انت لم تقدم اى شئ واى اجابه لن تصلح مع هذا الغمووووووووووض طالما تبخل على نفسك بتقديم البيانات اللازمة لن تجد الا التجاهل للاسف بسبب عدم الفهم انا عن نفسي مش فاهم اى شئ
  11. طيب اليكم المرفق الاخيـــــــــــــــــــر المميزات : الاعتماد الكامل على الرقم القومى دوال منفصلة لسهولة استدعائها فى استعلام من خلال الرقم القومى يتم استخراج الجنس/النوع استخراج مكان الميلاد استخراج تاريخ الميلاد حساب العمر بالسنوات حساب العمر بالأشهر حساب العمر بالأيام بناء على حقل تاريخ الميلاد المستخرج من الرقم القومى يتم عمل التالى حساب تاريخ التقاعد حساب سن التقاعد السنوات المتبقيه للتقاعد الاشهر المتبقيه للتقاعد الايام المتبقيه للتقاعد افتح الاستعلام فى القاعده والذى يحمل الاسم : qryAllInfoFromNationalID المرونة المطلقه فقط عند نقل الوحدات النمطية الى اى قاعدة بيانات عمل استعلام وفقط تغير اسم الحقل الخاص بالرقم القومى تبعا للمسمى الموجود فى الجدول الخاص بكم والملون هنا باللون الاحمر BirthDateFromNationalID: GetBirthDateFromNationalID([Emp_NationalID]) وباقى حقول الاستعلام جميعا تعتمد على هذا الحقل لذلك يتم نقلها كما هى ولكن ولكن ولكن لا تغير اسم الحقل : BirthDateFromNationalID لان هذا الاسم تعتمد باقى وكل الحقول الاخرى عليه اعتقد بهذا المرفق يكون الموضوع قتل بحثا وتم عمل كل ما يمكن فيه ويمكن وبكل سهولة ومرونة الان استخدام الحقول المناسبه حسب الحاجه داخل التقارير او النماذج بكل بساطه تم اضافة : نموذج : frmAllInfoFromNationalID تقريــر : rptAllInfoFromNationalID مصدر بيانات كل منهما الاستعلام : qryAllInfoFromNationalID اما النموذج : frmEmployees مصدر بياناته هو الجدول مباشرة الان القاعده كاملة و متكاملة مع تحقيق أقصى درجات المرونه المطلقة والحصول على كل البيانات الممكنه من خلال الرقم القومى مباشره سن التقاعد (8).accdb
×
×
  • اضف...

Important Information