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

Foksh

الخبراء
  • Posts

    2,722
  • تاريخ الانضمام

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

  • Days Won

    100

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

  1. 1 ساعه مضت, Abdelaziz Osman said:

    فماذا افعل  ارجوا المساعدة

     

    مشاركة مع الأساتذة ،

    في حدث بعد التحديث لمربع النص middledot ، استخدم الكود التالي وهو تلقائياً سيقوم باضافة "." بعد التحديث بعد 3 حروف ، او تغيير القيمة حسب حاجتك :-

    Private Sub middledot_AfterUpdate()
        Dim txt As String
        txt = Nz(Me.middledot.Value, "")
        If Len(txt) = 0 Then Exit Sub
        txt = Replace(txt, ".", "")
        If Len(txt) > 3 Then
            Me.middledot.Value = Left(txt, 3) & "." & Mid(txt, 4)
        End If
        Exit Sub
    End Sub

     

    أما عند نسخك سجلات أكثر من 1 على سبيل المثال ، فهذا الاكود في حدث عند التحميل سيقوم بإضاة "." للقيم في الحقل نفسه التي لا تحتوي على "." أساساً .

    Private Sub Form_Load()
        Dim db As DAO.Database
        Set db = CurrentDb()
        db.Execute "UPDATE Dot " & _
                   "SET middledot = Left(Replace(middledot,'.',''), 3) & '.' & " & _
                   "Mid(Replace(middledot,'.',''), 4) " & _
                   "WHERE middledot IS NOT NULL " & _
                   "AND Len(middledot) > 3 " & _
                   "AND Mid(middledot, 4, 1) <> '.'", dbFailOnError
        Set db = Nothing
        Exit Sub
    End Sub

    وها يضمن عدم اضافة "." للسجلات التي تحتوي أساساً على "." بعد الحرف الثالث ..

     

    dot.accdb

     

     

     

    • Like 1
    • Thanks 1
  2. 40 دقائق مضت, ahmedha said:

    شكراً للرد تمام واذا غيرت النوع من ترقيم تلقائي الى رقم ومربوط معه علاقات هل تتاثر العلاقات ام لا ؟ 

    أهلاً وسهلاً بك أخي الكريم ، وبما أنك منتسب جديد ، فمن واجبي لفت انتباهك الى عدة نقاط ، منها :-

    1.حاول الإبتعاد عن التسميات العربية للحقول والجداول والنماذج والعناصر والمكونات لقاعدة البيانات ( الاستعلامات - التقارير ... إلخ ) .
    2. حاول أن لا تستخدم أسماء من مقطعين وإن اضطررت استخدم إشارة Under Score " _ " للفصل بين المقاطع بدلاً من استخدام المسافة .
    3. ابتعد عن التسميات الني تبدأ برموز وحروف خاصة أو أرقام .
    4. أيضاً لا تقم باستخدام مسميات محجوزة لآكسيس ، وللتوضيح أكثر تابع هذا الموضوع لأستاذنا @ابوخليل من هنا .
    5. تذكر ان اختيار افضل إجابة - ( كما فعلت في اختيارك لمشاركتك كأفضل إجابة ) - يعني انك وجدت الحل وأن هذا الموضوع قد تم اغلاقه .

     

    أما بالنسبة لسؤالك ، فلن تستطيع تغيير نوع الحقل ما لم تقم أولاً بإلغاء العلاقة بين الحقول المرتبطة ( بين الجدولين ) !!

     

    • Thanks 1
  3. بناءً على ما فهمته منك ، هذه فكرتي البسيطة ,,


    أولاً في الكومبوبوكس الأول "مربع_تحرير_وسرد4099" ، استخدم الحدث التالي بعد التحديث :-

    Private Sub مربع_تحرير_وسرد4099_AfterUpdate()
    Me.PNAME = Me.PNAME & Me.مربع_تحرير_وسرد4099
    End Sub

     

    وفي الليست بوكس "nname" ، استخدم الحدث التالي عند النقر المزدوج (على سبيل المثال أو أي حدث تريده) :-

    Private Sub nname_DblClick(Cancel As Integer)
    Me.PNAME = Me.PNAME & Me.nname
    End Sub

     

     

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

    2025.zip

  4. للأسف في حقل الترقيم التلقائي ، لا يمكنك اظهار القيمة ما لم تقم بتحرير أو اضافة اي قيمة في اي حقل (مربع نصي ) ، لذا بدلاً من حقل الترقيم التلقائي في الجدول ، استخدم الدالة DMax لإضافة ترقيم في الحقل ، مع ضرورة تغيير نوع الحقل من ترقيم تلقائي الى حقل رقمي .

     

     

    هذا والله أعلم ن ما لم يكن هناك معلومة غير هذه .

  5. 1 ساعه مضت, Mohamed Abo Elala said:

    و أرجو لو ممكن أفهم جات ازاي اكون في غاية الامتنان 

     

    شرح مبسط لما تم تعديله :-

    1. قمت بتعديل الكود لتعيين TempVars!UserLevelTemp بشكل ديناميكي بناءً على UserLevel الخاص بالمستخدم الحالي 
    2. 
    تعديل الاستعلام في النموذج الفرعي frmq1 ليتعامل مع القيم المتغيرة في TempVars!UserLevelTemp 

     

    الخطوة 1 : في النموذج الرئيسي frmSearch ، قمت بتعديل الكود لتعيين TempVars!UserLevelTemp بشكل ديناميكي كما في الكود التالي بعد التعديل :-

    Private Sub أمر1_Click()
    Dim UserLevelTemp As Variant
    UserLevelTemp = DLookup("[UserLevel]", "tbluser", "[UserNam]='" & Me.txtuser & "'")
    TempVars!UserLevelTemp = UserLevelTemp
    DoCmd.OpenForm "frmSearch"
    End Sub

    هنا يتم تعيين TempVars!UserLevelTemp مباشرة من قيمة UserLevel الخاصة بالمستخدم الحالي ، سواء كانت تحتوي على قيمة واحدة (مثل 2) أو قيم متعددة (مثل 1, 2) .

     

    الخطوة 2 : تعديل الاستعلام في النموذج الفرعي frmq1 ليصبح :-

    SELECT tblEmp.*, tblEmp.EmpLevel
    FROM tblEmp
    WHERE 
        InStr(TempVars!UserLevelTemp, tblEmp.EmpLevel) > 0;

    شرح الاستعلام :-

    الدالة InStr : تبحث عن وجود EmpLevel داخل TempVars!UserLevelTemp 

    إذا كانت النتيجة أكبر من 0 ، فهذا يعني أن EmpLevel موجود ضمن TempVars!UserLevelTemp

    على سبيل المثال:

    إذا كان TempVars!UserLevelTemp = "1, 2" و EmpLevel = 1 ، فإن InStr ستعيد 1 (لأن 1 موجود في "1, 2")

    إذا كان TempVars!UserLevelTemp = "2" و EmpLevel = 1 ، فإن InStr ستعيد 0 (لأن 1 غير موجود في "2") ... وهكذا 

     

    اتمنى ان يكون الشرح وافي لما تم تعديله وتطبيقه :smile: .

    • Like 1
  6. 27 دقائق مضت, ابو عارف said:

    خطاء رسالة تشير كمحاولة تعطيل عنصر من حدث عنصر آخر  لان هنا أمر تنفيذ تعطيل في حدث بعد تحديث عنصر من عناصر صفحة  و بعد تحديث هذا عنصر لا يكون تركيز فيه

    لا يمكنك قفل عنصر وهو قيد التركيز ، حتى لو من أي حدث ، ويجب عليك نقل التركيز لعنصر آخر لتنفيذ القفل أو عدم التمكين عليه

  7. تأكد من أن اسم السيرفر و رقم المنفذ صحيحين عند الاتصال ، جرب استبدال اسم السيرفر بـ 127.0.0.1 على سبيل المثال :-

    Server=127.0.0.1;Database=YourDB;User Id=YourUser;Password=YourPass;

     

    أيضاً على حد علمي

    SQL Server يستخدم المنفذ 1433 بشكل افتراضي ، لذا يجب السماح به في Windows Firewall
    جرب الأمر التالي في CMD كمسؤول :-

    netsh advfirewall firewall add rule name="SQL Server" dir=in action=allow protocol=TCP localport=1433

     

    هذا على حد علمي والله أعلم ..

  8. 44 دقائق مضت, Mohamed Abo Elala said:

    عندي حقل قيم متعدده و البيانات اللي فيه بيانات رقمية 

    ازاي اخزن القيم اللي فية في متغير من نوع temp!var

    وعليكم السلام ورحمة الله وبركاته ، أخي @Mohamed Abo Elala ،

    هلا ارفقت مثال على طلبك ليتم التطبيق عليه ,,
    هناك فكرة علها تفيدك ولكن بعد ارفاقك للملف :smile: .

    • Like 1
  9. أشكرك أستاذ @أبوبسمله على مرورك العطر ، وبارك الله بك على دعائكم ، ولكم من الدعاء أضعاف مضاعفة  .

    شرح الأداة إن شاء الله قريباً :smile: .

    في 1‏/2‏/2025 at 00:59, أبوبسمله said:

    ولى طلب صغير آخر فى الشرح بالصور ركز ع الاماكن اللى بتاخد سكرين لها حتى يكون الكلام والصوره واضحه لانى بصراحه تعبت وانا بتتبع الشرح بعضها مش ظاهر اوى بالنسبه لى معلش ان كنت بتقل عليك فالجزئيه دى

     

    فيما سبق كانت الصورة المرفقة لشرح الخطوات كما هي من المصدر حتى يتعرف من ليس له خبرة كافية أن يستدل على ما هو مطلوب من خطوات ، وقد تم تطبيق فلترة ضبابية في الصور على باقي الأجزاء التي ليس لها داعي في شرحنا . ولاحقاً في شرح الأدوات المستخدمة سيكون الشرح عبارة عن أكواد ولن تحتاج التركيز على أماكن محددة في الشرح بإذن الله 🤗 .

    • Thanks 1
×
×
  • اضف...

Important Information