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

Foksh

أوفيسنا
  • Posts

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

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

  • Days Won

    181

مشاركات المكتوبه بواسطه Foksh

  1. 9 ساعات مضت, RAIANESAMI said:

    نرجوا منكم كيف اضافة سجلات  موجودة في جدول T1   الى جدول آخر T2

     

    تفضل أخي الكريم / ملفك بعد التعديل وتوسيع النطاق في العمل .

    وأرجو منك الإهتمام بمواضيعك وأغلاق ما يستحق الإغلاق إشعاراً للقارئ بأن الموضوع قد تم حله والإجابة عليه . فتفاعلك يعكس فكرك :fff: .

    UnMatched123.zip

    • Thanks 1
  2. 2 دقائق مضت, ابوخليل said:

    ولكن ليس الهدف اظهار وحذف .. الهدف ان تظهر  عن طريق متغير ان امكن .. هذا كل شيء

    امممم .. دعني أسلك نقاشاً كنت قد تطرقت له برؤوس أقلم في موضوع حماية الجداول على ما اعتقد ....

    نفذت سابقاً فكرة تقوم بالخطوات التالية من الفتح الى الاغلاق ..

    1. عند فتح قاعدة البيانات وفي نموذج البداية Frm_Start سيقوم هذا النموذج أولاً بحذف لقاعدة بيانات خلفية وهمية ( قاعدة بيانات تحميل نفس أسماء الجداول ولكن بدون سجلات ) .
    2. يتم الاتصال بقاعدة البيانات الخلفية الحقيقية والمحمية بكلمة مرور ( كالمعتاد ) ثم يعمل المشروع بكل تفاصيله .
    3. عند الإغلاق ، وقبل الخروج من قاعدة البيانات ، يتم اعادة استخراج ملف قاعدة البيانات الخلفية ( الوهمية التي قلنا انها لا تحتوي سجلات ) ثم يقوم بإعادة ربطها بدلاً من قاعدة البيانات الخلفية الحقيقية ( الحالية التي تحتوي سجلات ) . وبذلك تم تأمين السجلات والإغلاق .

    ليس مقصدي الانتقال للحماية ( فلا أدري ما يجول بذهنك معلمي أبو خليل ) ، لكن مقصدي هو الآلية والفكرة التي تدور حولها اسئلتك قد تساعد في الإنتاج الذي ترجوه 😅 

  3. 3 دقائق مضت, ابوخليل said:

    انا عالجت هذه المشكلة .. جعلت الارسال يتم مرة واحدة عند اقلاع البرنامج .. والبرنامج بكل مكوناته سيرتبط بالصورة مباشرة ولا حاجة للارسال

     

    كنت قد أجلت الفكرة هذه حتى استوضح منك فكرة الرابط الوهمي 😅

  4. مهو علشان أعرف أفكر وانا بفطر، شجعنا بالهدف المنشود لنحدد الوسيلة التي سنسير بها 😉 .

    على العموم ، بالنسبة للمطلوب الأول هذه وجهة نظري بالتعديل :-

    Function RelinkIsIco() As String
        Dim rs As DAO.Recordset
        Dim rst As DAO.Recordset2
        Dim strFilePath As String
        
        Set rs = CurrentDb.OpenRecordset("SELECT progIcon FROM tblEnDc")
        
        If Not rs.EOF Then
            Set rst = rs.Fields("progIcon").Value
            If Not rst.EOF Then
                strFilePath = CurrentProject.Path & "\" & rst.Fields("FileName").Value
                If Dir(strFilePath) <> "" Then Kill strFilePath
                rst.Fields("FileData").SaveToFile strFilePath
                RelinkIsIco = strFilePath
            End If
            rst.Close: Set rst = Nothing
        End If
        
        rs.Close: Set rs = Nothing
    End Function

     

    مطلوب المسار الوهمي بعتمد تنفيذ فكرته على ماهية حاجتك له وغايتك وهدفك منه .

    • Like 1
  5. 22 دقائق مضت, ابوخليل said:

    هل يمكن عمل متغير يحمل رابطا أو مسارا وهميا بدلا من المسار الصريح  ؟ 

    أو متغيرين .. واحد يحمل رابط وهمي والآخر يحمل اسم الملف ؟

    الهدف والغاية ، فالغاية تبرر الوسيلة 😁

  6. 29 دقائق مضت, ابوخليل said:

    السلام عليكم

    وعليكم السلام ورحمة الله وبركاته..

    بالنظر الى الدالة ولهذا السطر تحديداً:-

    ImagePath = rs!progIcon.Value

    سيتم التعامل مع المسار على انه نص وليس كحقل مرفقات .

     

    لم أطّلع على الملف ، أتابع من الجوال حالياً.

    • Like 1
  7. اخي الكريم ، انت الآن تنتقل الى موضوع جديد ، لذا راجياً منك إغلاق هذا الموضوع لتحقيقه المطلبين الأولين ، وافتح موضوع جديد بهذا الطلب ، بحيث يكون عنوانه مثلاً:-

    إضافة السجلات الغير موجودة من جدول الى جدول آخر

    • Like 1
  8. 2 ساعات مضت, RAIANESAMI said:

    بعد استخراج التغيرات كيف انقل البيانات  الجديدة من جدول T1 الى جدولT2

     

    تم التعديل بحيث يظهر لك رسالة بتحديث قيم الجدول الثاني ( الثابت ) بقيم الجدول الأول ( المتغير ) .

    جربه وأخبرنا بالنتيجة .

     

     

    UnMatched123.mdb

  9. 3 ساعات مضت, طاهر اوفيسنا said:
    Me.da5.Caption = Format(rs!Date_Marj, "yyyy/mm/dd") & " بـ" & name1 & "  تحت رقم :  " & rs!N_Act_Marj

    استبدل الجملة السابقة ، بالجملة التالية :-

    Me.da5.Caption = Format(rs!Date_Marj, "yyyy/mm/dd") & " بـ" & _
                    PartOfName(name1, 1) & " " & PartOfName(name1, 2) & _
                    "  تحت رقم :  " & rs!N_Act_Marj

     

    بشرط أن تكون قد قمت بنقل المديول في الملف الأول الذي تم حل مشكلتك من خلال الاستعلام .

  10. السلام عليكم اخي الكريم محمد mahmouddarweesh ..

    بداية نرحب بك في عالم اوفيسنا الإلكتروني المتواضع . ونرجو ان تجد ما تبحث عنه دوماً بحيث :-

    1. اختيار عنوان مناسب يوضح مضمون المشكلة .
    2. ان يكون في الموضوع الواحد طلب واحد فقط ، بحيث تتدرج في الطلبات واحداً تلو الآخر في كل موضوع .
    3. الشرح الوافي للمطلوب فهماً وتوضيحاً ..
    4. للإستعجال في طلبك استخدم كلمة "للرفع" / "Up"

    وأهلاً وسهلاً بك مرة أخرى :wub:

  11. في 29‏/11‏/2025 at 20:51, Bshar said:

    اخفاء وحماية السجلات

    اعتذر عن التأخير .. تفضل هذا الملف المرفق ، حيث يحتوي الدالة البسيطة :-

     

    Public Sub SetTableHiddenState(ByVal strTableName As String, ByVal hide As Boolean)
    
        On Error GoTo ErrHandler
    
        Dim db As DAO.Database
        Dim tdf As DAO.TableDef
    
        Set db = CurrentDb
        db.TableDefs.Refresh
    
        Dim t As DAO.TableDef
        Dim found As Boolean: found = False
        For Each t In db.TableDefs
            If t.Name = strTableName Then
                found = True
                Exit For
            End If
        Next t
        If Not found Then
            MsgBox "حدثت مشكلة أثناء تأمين المكونات", vbExclamation + vbMsgBoxRight, ""
            Exit Sub
        End If
        Set tdf = db.TableDefs(strTableName)
        If hide = True Then
            tdf.Attributes = tdf.Attributes Or dbSystemObject Or dbHiddenObject
        Else
            tdf.Attributes = tdf.Attributes And Not (dbSystemObject Or dbHiddenObject)
        End If
        Application.RefreshDatabaseWindow
        Exit Sub
    ErrHandler:
        MsgBox "حدث خطأ أثناء تأمين مكونات البرنامج" & Err.Description, vbCritical + vbMsgBoxRight, "خطأ"
    End Sub

    * الدالة جزء من مشروع سابق .

     

    الملف المرفق :-

    Hide TBL.accdb

    • Thanks 1
  12. 31 دقائق مضت, طاهر اوفيسنا said:

    السلام عليكم

    وعليكم السلام ورحمة الله وبركاته ..

    تم تعديل المديول ليصبح :-

    Option Compare Database
    Option Explicit
    
    Function PartOfName(InName As String, NumberOfPart As Byte) As String
        Dim parts() As String
        Dim tempName As String
        Dim i As Integer
        Dim currentIndex As Integer
        Dim normalizedParts() As String
        Dim j As Integer
        
        tempName = Trim(InName)
        PartOfName = ""
        If tempName = "" Then Exit Function
        
        tempName = Replace(tempName, " -", " - ")
        tempName = Replace(tempName, "- ", " - ")
        tempName = Replace(tempName, "  ", " ")
        
        parts = Split(tempName, " - ")
        
        currentIndex = 0
        ReDim normalizedParts(0 To 0)
        
        For i = 0 To UBound(parts)
            If Trim(parts(i)) <> "" Then
                normalizedParts(currentIndex) = Trim(parts(i))
                If i < UBound(parts) Then
                    ReDim Preserve normalizedParts(0 To currentIndex + 1)
                    currentIndex = currentIndex + 1
                End If
            End If
        Next i
        
        If UBound(normalizedParts) > 0 Then
            If NumberOfPart - 1 <= UBound(normalizedParts) Then
                PartOfName = Trim(normalizedParts(NumberOfPart - 1))
            End If
        Else
            Dim words() As String
            words = Split(tempName, " ")
            If NumberOfPart - 1 <= UBound(words) Then
                PartOfName = Trim(words(NumberOfPart - 1))
            End If
        End If
    End Function
    
    Function NoSpaces(InName As String) As String
        Dim NewName As String
        Dim i As Integer
        Dim TheStr As String
        Dim ThePrevStr As String
        
        InName = Trim(InName)
        For i = 1 To Len(InName)
            TheStr = Mid(InName, i, 1)
            If TheStr = " " And ThePrevStr = " " Then TheStr = ""
            If TheStr <> "" Then ThePrevStr = TheStr
            NewName = NewName & TheStr
        Next
        NoSpaces = NewName
    End Function

     

    وتم تعديل الإستعلام ليصبح :-

    SELECT Table1.Name, PartOfName([Name],1) AS Firstname, PartOfName([Name],2) AS Secondname, PartOfName([Name],3) AS Thirdname, PartOfName([Name],4) AS Forthname, PartOfName([Name],5) AS SubFamily, PartOfName([Name],6) AS Family, [SubFamily] & " " & [Family] AS Familyname
    FROM Table1
    WITH OWNERACCESS OPTION;

     

    ملفك بعد التعديل :-

     

    فصل ماقبل المطة.zip

    • Like 1
  13. 3 ساعات مضت, عبد اللطيف سلوم said:

    السلام عليكم

     

    وعليكم السلام ورحمة الله وبركاته ..

    استخدم في حدث في الحالي الكود التالي :-

        If Me.NewRecord Then
            Me.AllowAdditions = True
            Me.AllowEdits = True
            Me.AllowDeletions = True
        Else
            Me.AllowEdits = False
            Me.AllowDeletions = False
        End If

     

    وفي حدث بعد الإضافة للنموذج الحدث التالي :-

    Private Sub Form_AfterInsert()
        Me.AllowEdits = False
        Me.AllowDeletions = False
    End Sub

     

    ملفك بعد التطبيق :-

     

     

     

    123452025.zip

    • Like 1
  14. 2 دقائق مضت, Debug Ace said:

    الدالة لا تغير وقت النظام الحقيقي في الكمبيوتر 

    الدالة محاكاة اختبار لمنطق الورديات بتغيير الوقت الحالي بشكل مؤقت لاختبار سلوك النظام في أوقات مختلفة دون انتظار مرور الوقت الحقيقي

    تمام ، وبما أنك تحاكي اختبار لمنطق الورديات .. فإن اسناد قيمة إلى دالة مدمجة في اكسيس مثل Time بحد ذاته غير منطقي ( وجهة نظري طبعاً ) . وبالتالي فإن الحل الأفضل هو جعل الدوال تستقبل الوقت كـ باراميتر ، أو إنشاء دالة وسيطة تعيد الوقت الحالي .

     

    واعتذر إن جررت الحديث خارج محتوى الموضوع :fff:

×
×
  • اضف...

Important Information