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

Shivan Rekany

الخبراء
  • Posts

    3,491
  • تاريخ الانضمام

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

  • Days Won

    152

Community Answers

  1. Shivan Rekany's post in كيفية حساب رصيد الصنف فى حالة عدم وجود حركة عليه was marked as the answer   
    مخزن سيد.rar
  2. Shivan Rekany's post in برنامج المواعيد بدلا من سنة , خمس سنوات was marked as the answer   
    استأذن من استاذ @kanory
    اذا تريد ان يكون يضاف 5 سنوات كل مرة بدل سنة واحدة اتفضل اليك هذا
     
    Private Sub أمر24_Click() On Error GoTo g: On Error Resume Next Dim i As Integer Dim X As Date Dim DATE_POST As Date Dim MyYear As Integer DoCmd.GoToRecord , , acNewRec For i = 0 To Forms![test1]![no] - 1 MyYear = i * 5 Me.serial = Forms![test1]![serial] Me.date1 = DateAdd("yyyy", MyYear, Forms![test1]![Date_M]) Me.no = DateAdd("D", i, Forms![test1]![no1]) DoCmd.GoToRecord , , acNext 'On Error Resume Next Next g: Exit Sub End Sub  
    test2000.mdb
  3. Shivan Rekany's post in التنسيق فى النماذج و الاستعلام was marked as the answer   
    عفوا ما عندي اي كتاب لكن في الاسفل بها روابط ممكن تستفيد منها
    https://support.office.com/ar-sa/article/الخاصية-تنسيق-نوع-البيانات-تاريخ-وقت-3251a423-3dd7-446e-be65-c7293eddbb43
    وهنا ايضا 
    https://support.office.com/ar-sa/article/تخصيص-تنسيقات-البيانات-في-Access-e48f2312-67f0-4921-aca0-15d36b7f9c3b
  4. Shivan Rekany's post in تكرار سجلات فى النموذج الفرعى was marked as the answer   
    اليك هذا
    Private Sub ÃãÑ21_Click() On Error Resume Next Dim AmirALDafia, RqmAlShik, Tarix, MyMonth AmirALDafia = Me.ÃãÑ_ÏÝÚ: RqmAlShik = Me.ÑÞã_Ôíß: Tarix = Me.today1: MyMonth = Me.month1 DoCmd.GoToRecord , , acNext Me.ÃãÑ_ÏÝÚ = AmirALDafia: Me.ÑÞã_Ôíß = RqmAlShik: Me.today1 = Tarix: Me.month1 = MyMonth End Sub  
    test5005.rar
  5. Shivan Rekany's post in مساعدة استخدام الكيبورد داخل النموذج was marked as the answer   
    وجزاك الله كل خير
    وللمنفعة اكثر اليك طريقة اخر
     
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Dim intShiftDown As Integer, intAltDown As Integer Dim intCtrlDown As Integer ' Use bit masks to determine which key was pressed. intShiftDown = (Shift And acShiftMask) > 0 intAltDown = (Shift And acAltMask) > 0 intCtrlDown = (Shift And acCtrlMask) > 0 ' Display message telling user which key was pressed. If KeyCode = vbKeyF1 And intShiftDown Then MsgBox "تم الضغط على مفتاح شيفت و ايف وان": KeyCode = 0 If KeyCode = vbKeyF1 And intAltDown Then MsgBox "تم الضغط علي مفتاح الت و ايف وان": KeyCode = 0 If KeyCode = vbKeyF1 And intCtrlDown Then MsgBox "تم الضغط على مفتاح كنترول و ايف وان": KeyCode = 0 End Sub  
  6. Shivan Rekany's post in حذف التاريخ مع التأثر على السجلات التالية was marked as the answer   
    اي
    جرب هذا
    docmd.setwarnings false
    test70 (1).rar
  7. Shivan Rekany's post in بحث نموذج من نموذج أخر was marked as the answer   
    ان شاء الله خلاص مافي المشاكل بعد
    اي الان ان شاء الله
    نعم والان صار كود في الحال للنموذج الى
     
    Private Sub Form_Current() On Error GoTo HandleErr Dim rs As Object If Not IsNull([PicFile]) Then [imgPicture].Picture = [PicFile] SysCmd acSysCmdSetStatus, "Image: '" & [PicFile] & "'." Set rs = Me.Recordset.Clone rs.FindFirst "[Name_b] = '" & Me![مربع_تحرير_وسرد96] & "'" If Not rs.EOF Then Me.Bookmark = rs.Bookmark Else [imgPicture].Picture = "" SysCmd acSysCmdClearStatus End If Exit Sub HandleErr: If Err = 2220 Then [imgPicture].Picture = "" SysCmd acSysCmdSetStatus, "Can't open image: '" & [PicFile] & "'" Set rs = Me.Recordset.Clone rs.FindFirst "[Name_b] = '" & Me![مربع_تحرير_وسرد96] & "'" If Not rs.EOF Then Me.Bookmark = rs.Bookmark Else MsgBox Err.Description, vbExclamation End If End Sub واليك ملفك بعد تعديل
    test50.rar
  8. Shivan Rekany's post in تأجيل التاريخ مع التأثر على السجلات التالية was marked as the answer   
    شوف اخي قصدي ان تكتب في اول الكود الزر ذاك الجملة
    واذا كم مرة بيعمل كانسل للنافذة ما يظهر اي رسالة
    والان انا جربت
    وايضان كود تابعك هم بنتهي الامر
    On Error Resume Next STR_TITLE = "ÔÇÔÉ ÇÖÇÝÉ ÇíÇã" STR_PROMPT = "ÃÏÎá ÚÏÏ ÇáÇíÇã ááÊÃÌíá" X = InputBox(STR_PROMPT, STR_TITLE) If X > 0 Then Me.TimerInterval = 1 End If  
  9. Shivan Rekany's post in تصفية البيانات فى النموذج الفرعى بناء على البحث فقط was marked as the answer   
    كون معي
    اولا حذفنا الارتباط تبعك
    وثانيا عملنا استعلام بهذا الشكل لنموذج فرعي
    وكتبنا كود بداخله لكي يتم عرض جميع الاسماء او يظهر اللي اللي في كومبوبوكس فقط
    شوف الصورة

    وشوف نموذج الفرعي 
    ذاك الاستعلام هو مصدر بياناته

    و عملنا استعلام داخلي لكومبوبوكس وبها حقلين حقل الاسم و حقل اي دي
    شوف الصورة

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

    و في حدث بعد تحديث لكومبوبوكس كتبنا كود اللي في صورة ادناه

    جزء الاول لكود بيبحث في نموذج رئيسي
    والجزء الثاني بيعمل ريكويري لنموذج فرعي
    مع تقدير
  10. Shivan Rekany's post in وضع كلمة مرور كشرط فى حدث عند الحذف was marked as the answer   
    السلام عليكم ورحمة الله
    اتفضل اخي اليك هذا الكود
    Private Sub BtnDelete_Click() If Me.NewRecord = True Then Exit Sub Dim MyPass, MyId MyPass = InputBox("للحذف السجل اكتب رقم سري الخاص بالحذف السجلات", "تأكيد الحذف") If MyPass = 9999 Then MyId = Me.ID DoCmd.SetWarnings False DoCmd.RunCommand acCmdSelectRecord DoCmd.RunCommand acCmdDeleteRecord DoCmd.SetWarnings True MsgBox "تم حذف السجل رقم " & " ( " & MyId & " ) " & "بنجاح" ElseIf Len(MyPass & "") = 0 Then MsgBox "تم الغاء العملية الحذف" Else MsgBox "خطأ في رقم سري الخاص لحذف السجلات" End If End Sub واليك ملف تطبيقي
     
    DeleteWithPassword.accdb
  11. Shivan Rekany's post in قائمة منسدلة معتمدة علي قائمة منسدلة أخري was marked as the answer   
    اتفضل
    طريقتين سوى
    فورم 1 بطريقتي السابقة بجدول واحد
    فورم 2 بجدولين
    مع تقدير
    قائمة منسدلة جديدة.rar
  12. Shivan Rekany's post in قائمة منسدلة معتمدة علي قائمة منسدلة أخري was marked as the answer   
    اتفضل
    طريقتين سوى
    فورم 1 بطريقتي السابقة بجدول واحد
    فورم 2 بجدولين
    مع تقدير
    قائمة منسدلة جديدة.rar
  13. Shivan Rekany's post in المساعده فى ايجاد كود لزر التنقل was marked as the answer   
    اتفتضل
    تم اضافة هذا الكود عند فتح النموذج
    Private Sub Form_Open(Cancel As Integer) If Me.اسم__المستخدم = 1 Then Me.Form.RecordSource = "ادخال البيانات" Else Me.Form.RecordSource = "SELECT [ادخال البيانات].ID, [ادخال البيانات].[اسم الموقع], [ادخال البيانات].الرخصة, [ادخال البيانات].النشاط, [ادخال البيانات].المنطقة, [ادخال البيانات].[حالة الموقع], [ادخال البيانات].[رقم الهاتف الارضى], [ادخال البيانات].[رقم الهاتف المتحرك], [ادخال البيانات].[اسم مسؤول الموقع], [ادخال البيانات].الايميل, [ادخال البيانات].العدد, [ادخال البيانات].[اسم المستخدم] FROM [ادخال البيانات] WHERE ((([ادخال البيانات].[اسم المستخدم])=[Forms]![ادخال بيانات المواقع]![اسم المستخدم]));" End If End Sub واليك قاعدتك بعد اضافة الكود
     
    mm.rar
  14. Shivan Rekany's post in مساعدة في اضافة على كود was marked as the answer   
    Dim Numbers if len(SText & "")=0 then GetNumbersOnly="" exit function end if For i = 1 To Len(SText) If IsNumeric(Mid(SText, i, 1)) and Mid(SText, i, 1) <> 0 Then Numbers = Numbers & Mid(SText, i, 1) End If Next GetNumbersOnly = Trim(Numbers) اتفضل تم اضافة هذا جزء فقط
    and Mid(SText, i, 1) <> 0  
  15. Shivan Rekany's post in شرح : كيفية حماية القاعدة البيانات بواسطة رقم هارد مع المعالج و اختيار مدة التفعيل was marked as the answer   
    الاكواد المستخدمة :-
    نحن استخدمنا هذه الوحدة النمطية بها اربع فانكشن
     
    Option Compare Database Public Function NumMoaalic() ' لاستخراج سريال المعالج ' Microsoft WMI Scripting v2.1 library ستحتاج مكتبة Dim varObjectToId As String Dim varSerial As String On Error Resume Next varObjectToId = "Win32_Processor,ProcessorId" Set SWbemSet = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf(Split(varObjectToId, ",")(0)) varSerial = "" For Each SWbemObj In SWbemSet varSerial = SWbemObj.Properties_(Split(varObjectToId, ",")(1)) varSerial = Trim(varSerial) If Len(varSerial) < 1 Then varSerial = "Unknown value" Next NumMoaalic = varSerial End Function Public Function NumHard() ' لاستخراج سريال ھارد ' Microsoft WMI Scripting v2.1 library ستحتاج مكتبة Dim varObjectToId As String Dim varSerial As String On Error Resume Next varObjectToId = "Win32_OperatingSystem,SerialNumber" Set SWbemSet = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf(Split(varObjectToId, ",")(0)) varSerial = "" For Each SWbemObj In SWbemSet varSerial = SWbemObj.Properties_(Split(varObjectToId, ",")(1)) varSerial = Trim(varSerial) If Len(varSerial) < 1 Then varSerial = "Unknown value" Next NumHard = varSerial End Function Function TxtToNumber(ByVal C As String) As String ' مساعد لتحويل الحروف والرموز الى الارقام ' حسب ما تريدون تقدرون ان تغير الارقام والحروف حسب رغبتكم Select Case C Case "A", "J", "R": TxtToNumber = 9 Case "B", "K", "S": TxtToNumber = 1 Case "C", "L", "T": TxtToNumber = 7 Case "D", "M", "U": TxtToNumber = 3 Case "E", "N", "V": TxtToNumber = 5 Case "F", "O", "W": TxtToNumber = 8 Case "G", "P", "X": TxtToNumber = 2 Case "H", "Y": TxtToNumber = 6 Case "I", "Q", "Z": TxtToNumber = 4 Case "-", "_", "\", " ", "/", ";", ":": TxtToNumber = "" Case Else TxtToNumber = C End Select End Function Function TxtInTextToNumber(SText) ' لتغيير الحروف والرموز الى الارقام Dim Numbers Dim I As Integer ' سيبحث عن الكل الحروف و الرموز وسيغير حسب فانكشن الاعلى For I = 1 To Len(SText) If IsNumeric(Mid(SText, I, 1)) Then Numbers = Numbers & Mid(SText, I, 1) Else Numbers = Numbers & TxtToNumber(Mid(SText, I, 1)) End If Next TxtInTextToNumber = Trim(Numbers) End Function وفي النموذج استخدمنا هذه الاكواد مع شرح
    Option Compare Database ' تم اعداد من قبل ' Shivan Rekany شفان ريکاني ' وليس لدينا مانع استخدامه في برامجكم فقط نريد منكم الدعاء Dim WqtTascil As Long ' متغير لتعرف عن الوقت التسجيل Private Sub Form_Load() ' كود عند تحميل النموذج 'On Error Resume Next Dim NumBeforeTascil, NumForTascil ' متغيران واحد لکي نعرف رقم الاول للتسجيل قبل استخدام الوقت والاخر رقم تسجيل الحقيقي Dim Spl() As String, LookAllMNT As String ' متغيران الثاني لكي نعرف كل معلومات في الجدول اذا تم تسجيل البرامج من قبل والاخر للتجزئة المعلومات Dim LookMyNm, LookMyNh, LookMyNTascil ' مساعد تجزئة المعومات Dim FrqDate As Integer ' متغير نستخدم لفرق بين تاريخ التسجيل و الدخول Dim FDate As Date, EDate As Date ' متغيران واحد للتاريخ التسجيل والثاني لاخر مرة لفتح البرامج ' رقم قبل تسجيل يساوي رقم واحد مع تحول سريال المعالج الى الارقام مع تحويل سريال الارد تقسيم واحد مع تحويل سريال الهارد NumBeforeTascil = Trim(Round(((1 & TxtInTextToNumber(NumMoaalic) & TxtInTextToNumber(NumHard)) / (1 & TxtInTextToNumber(NumHard))))) ' جميع المعلومات يساوي جلب بيانات الحقل سريال المعالج و الهارد ورقم التسجيل و مدة التسجيل و تاريخ التسجيل و تاريخ اخر مرة الدخول في جدول تبل التسجيل ' بشرط ان يكون سريال المعالج والهارد في جدول بيكون يساوي مع سريال المعالج والهارد اللي يخررجه الفانكشن LookAllMNT = Nz(DLookup("[NumForMoaalic] & ""|"" & [NumForHard] & ""|"" & [NumTascil] & ""|"" & [midda] & ""|"" &[firstdate] & ""|"" & [EndDate] ", "TblTascil", _ "[NumForHard]='" & NumHard & "'" & "and [NumForMoaalic]='" & NumMoaalic & "'"), "") If LookAllMNT <> "" Then ' اذا يجد المعلوماتولم يكون فارغة Spl = Split(LookAllMNT, "|") ' قم بتجزئة كل المعلوةمات حسب رمز هذا الرمز | ' الان عطينا لكل متغير جزئه حسب ما جلبنا في الجدول LookMyNm = Spl(0): LookMyNh = Spl(1): LookMyNTascil = Spl(2): Me.Midde = Spl(3): FDate = Spl(4): EDate = Spl(5) ' فرق بين تاريخين تاريخ الان مع اضافة مدة التفعيل مع اخر تاريخ الدخول FrqDate = DateDiff("d", Now, DateAdd("d", Me.Midde, FDate)) If Me.Midde.Column(0) = 1 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 1 WqtTascil = Format(FDate, "yyyymmdd") ' وقت التسجيل بيكون هذا النوع ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل * 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil)) * 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 7 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 1 WqtTascil = Format(FDate, "yyyymmdd") + 3 ' وقت التسجيل يساوي سنة و شهر و يوم زائد 3 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 3 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 3) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 30 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 30 WqtTascil = Format(FDate, "yyyymmdd") + 15 ' وقت التسجيل يساوي سنة و شهر و يوم زائد 15 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 15 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 15) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 90 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 90 WqtTascil = Format(FDate, "yyyymm") + 45 ' وقت التسجيل يساوي سنة و شهر زائد 45 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 45 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 45) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 180 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 180 WqtTascil = Format(FDate, "yyyymm") + 90 ' وقت التسجيل يساوي سنة و شهر زائد 90 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 90 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 90) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 365 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 365 WqtTascil = Format(FDate, "yyyymm") + 182 ' وقت التسجيل يساوي سنة و شهر زائد 182 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 182 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 182) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 18250 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 18250 WqtTascil = Format(FDate, "yyyymm") + 9125 ' وقت التسجيل يساوي سنة و شهر زائد 9125 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 9125 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 9125) / 212, ".", ""), 1, 15) End If End If ' اذا احد من رقم التسجيل في جدول او سريال الهارد او المعالج بيكون مخالف مع رقم التسجيل او سريال المعالج او الهارد الجهاز If LookMyNTascil <> NumForTascil Or LookMyNm <> NumMoaalic Or LookMyNh <> NumHard Then Me.LblTxt.Caption = "يجب عليك ان تعمل تسجيل البرامج اولا ... للتسجيل اتصل بالمبرمج " Me.NM = NumMoaalic ' مربع في النموذج اللي باسم نون ميم بيكون يساوي سريال المعالج Me.NH = NumHard ' مربع في النموذج اللي باسم نون ئيج بيكون يساوي سريال الهارد ElseIf FDate > Now Or EDate > Now Then ' اذا اول تاريخ بيكون اكبر من الوقت الحاضر او تاريخ اخر مرة للدخول اكبر من الوقت الحاضر MsgBox "تم تلاعب بتاريخ الجهاز ... وهذا غير مقبول , سيتم اغلاق البرامج" DoCmd.Quit ' اغلاق القاعدة ElseIf FrqDate <= 15 And FrqDate > 0 Then ' اذا فرق بين تاريخين يساوي او اقل من 15 يوم و فرق بين تاريخين اكبر من رقم صفر ' بيظهر الرسالة وبيظهر باقي عدد ايام المتبقية لتفعيل البرامج ويسأل هل يريد تسجيله من جديد اذا يختار نعم If MsgBox("باقي عندك " & "( " & FrqDate & " )" & " يوم لانتهاء فترة التسجيل , هل تريد ان تعمل تسجيل من جديد ؟ ", vbMsgBoxRtlReading + vbYesNo + vbQuestion + vbMsgBoxRight, "تسجيل البرامج") = vbYes Then Me.LblTxt.Caption = "يجب عليك ان تعمل تسجيل البرامج اولا ... للتسجيل اتصل بالمبرمج " Me.NM = NumMoaalic ' مربع في النموذج اللي باسم نون ميم بيكون يساوي سريال المعالج Me.NH = NumHard ' مربع في النموذج اللي باسم نون ئيج بيكون يساوي سريال الهارد Else ' والا DoCmd.OpenForm "frmsereki", acNormal ' فتح نموذج اخر DoCmd.Close acForm, Me.Name ' اغلاق هذا النموذج End If ElseIf FrqDate <= 0 Then ' اذا صفر بيكون اكبر او يساوي فرق بين تاريخين ' يظهر الرسالة ويخبره بان تم انتهاء مدة التفعيل والسؤال عن تسجيل من جديد واذا اختار نعم If MsgBox("انتهت مدة التفعيل البرامج , هل تريد ان تعمل تسجيل من جديد ؟", vbMsgBoxRtlReading + vbYesNo + vbQuestion + vbMsgBoxRight, "تسجيل البرامج") = vbYes Then Me.LblTxt.Caption = "يجب عليك ان تعمل تسجيل البرامج اولا ... للتسجيل اتصل بالمبرمج " Me.NM = NumMoaalic ' مربع في النموذج اللي باسم نون ميم بيكون يساوي سريال المعالج Me.NH = NumHard ' مربع في النموذج اللي باسم نون ئيج بيكون يساوي سريال الهارد Else ' والا اي اذا اختار لا يريد التسجيل من جديد DoCmd.Quit ' سيغلق القاعدة End If Else ' واذا لم يكون هناك اي شيء من الاول DoCmd.OpenForm "frmsereki", acNormal ' فتح نموذج الاخر DoCmd.Close acForm, Me.Name ' واغلاق نموذج الحالي End If DoCmd.SetWarnings False ' اسكات الرسائل التنبيهية ' تحديث اخر تاريخ الدخول في جدول بتاريخ الان DoCmd.RunSQL "UPDATE TblTascil SET TblTascil.EndDate = Now() WHERE (((TblTascil.NumForHard)=NumHard()) AND ((TblTascil.NumForMoaalic)=NumMoaalic()));" DoCmd.SetWarnings True ' تفعيل تنبيهات الافتراضية End Sub Private Sub Tascil_Click() ' كود عند الضغط على زر التسجيل On Error Resume Next ' "1";"7";"30";"90";"180";"365";"18250" Dim NumBeforeTascil, NumForTascil ' متغيران واحد لکي نعرف رقم الاول للتسجيل قبل استخدام الوقت والاخر رقم تسجيل الحقيقي Dim Spl() As String, LookAllMNT As String ' متغيران الثاني لكي نعرف كل معلومات في الجدول اذا تم تسجيل البرامج من قبل والاخر للتجزئة المعلومات Dim LookMyNm, LookMyNh, LookMyNTascil ' مساعد تجزئة المعومات Dim FrqDate As Integer ' متغير نستخدم لفرق بين تاريخ التسجيل و الدخول ' اذا كان كومبوبوكس مدة التفعيل في النموذج بيكون خالي من البيانات يظهر رسالة ويخبره و يركز على الكومبوبوكس وينتهي مشوار ضغط على الزر If Len(Me.Midde & "") = 0 Then MsgBox "اختر مدة التفعيل": Me.Midde.SetFocus: Exit Sub ' رقم قبل تسجيل يساوي رقم واحد مع تحول سريال المعالج الى الارقام مع تحويل سريال الارد تقسيم واحد مع تحويل سريال الهارد NumBeforeTascil = Trim(Round(((1 & TxtInTextToNumber(NumMoaalic) & TxtInTextToNumber(NumHard)) / (1 & TxtInTextToNumber(NumHard))))) ' جميع المعلومات يساوي جلب بيانات الحقل سريال المعالج و الهارد ورقم التسجيل و مدة التسجيل و تاريخ التسجيل و تاريخ اخر مرة الدخول في جدول تبل التسجيل ' بشرط ان يكون سريال المعالج والهارد في جدول بيكون يساوي مع سريال المعالج والهارد اللي يخررجه الفانكشن LookAllMNT = Nz(DLookup("[NumForMoaalic] & ""|"" & [NumForHard] & ""|"" & [NumTascil] ", "TblTascil", _ "[NumForHard]='" & NumHard & "'" & "and [NumForMoaalic]='" & NumMoaalic & "'"), "") Spl = Split(LookAllMNT, "|") ' قم بتجزئة كل المعلوةمات حسب رمز هذا الرمز | ' الان عطينا لكل متغير جزئه حسب ما جلبنا في الجدول LookMyNm = Spl(0): LookMyNh = Spl(1): LookMyNTascil = Spl(2) ' فرق بين تاريخين تاريخ الان مع اضافة مدة التفعيل مع اخر تاريخ الدخول FrqDate = DateDiff("d", Now, DateAdd("d", Me.Midde, FDate)) If Me.Midde.Column(0) = 1 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 1 WqtTascil = Format(Date, "yyyymmdd") ' وقت التسجيل بيكون هذا النوع ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل * 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil)) * 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 7 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 1 WqtTascil = Format(Date, "yyyymmdd") + 3 ' وقت التسجيل يساوي سنة و شهر و يوم زائد 3 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 3 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 3) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 30 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 30 WqtTascil = Format(Date, "yyyymmdd") + 15 ' وقت التسجيل يساوي سنة و شهر و يوم زائد 15 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 15 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 15) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 90 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 90 WqtTascil = Format(Date, "yyyymm") + 45 ' وقت التسجيل يساوي سنة و شهر زائد 45 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 45 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 45) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 180 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 180 WqtTascil = Format(Date, "yyyymm") + 90 ' وقت التسجيل يساوي سنة و شهر زائد 90 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 90 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 90) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 365 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 365 WqtTascil = Format(Date, "yyyymm") + 182 ' وقت التسجيل يساوي سنة و شهر زائد 182 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 182 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 182) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 18250 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 18250 WqtTascil = Format(Date, "yyyymm") + 9125 ' وقت التسجيل يساوي سنة و شهر زائد 9125 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 9125 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 9125) / 212, ".", ""), 1, 15) End If If Me.NTascil = NumForTascil Then ' اذا كان رقم التسجيل المدخلة بيكون يساوي مع رقم التسجيل الحقيقي للبرامج If LookAllMNT <> "" Then ' اذا هذه ليس اول مرة يسجل على هذه الجهاز DoCmd.SetWarnings False ' اطفاء تنبيهات الافتراضية للنظام ' تحديث المعلومات في الجدول حسب معلومات التفعيل الجديدة DoCmd.RunSQL "UPDATE TblTascil SET TblTascil.NumForMoaalic = [Forms]![FrmTescil]![NM], TblTascil.NumForHard = [Forms]![FrmTescil]![NH]," & _ "TblTascil.NumTascil = [Forms]![FrmTescil]![NTascil], TblTascil.Midda = [Forms]![FrmTescil]![Midde], TblTascil.firstdate = Now(), " & _ " TblTascil.EndDate = Now() WHERE (((TblTascil.NumForMoaalic)=NumMoaalic()) AND ((TblTascil.NumForHard)=NumHard()));" DoCmd.SetWarnings True ' تشغيل تنبيهات الافتراضية للنظام Else ' واذا هذه المرة هي اول مرة للتسجيل ' اضافة معلومات التفعيل الى جدول DoCmd.SetWarnings False ' اطفاء تنبيهات الافتراضية للنظام DoCmd.RunSQL "INSERT INTO TblTascil ( NumForMoaalic, NumForHard, NumTascil, Midda, firstdate, EndDate ) " & _ "SELECT [Forms]![FrmTescil]![NM] AS Expr1, [Forms]![FrmTescil]![NH] AS Expr2, [Forms]![FrmTescil]![NTascil] AS Expr3," & _ "[Forms]![FrmTescil]![Midde] aS Expr4, Now() AS Expr5, Now() AS Expr6;" DoCmd.SetWarnings True ' تشغيل تنبيهات الافتراضية للنظام End If MsgBox "تم تسجيل البرامج لمدة " & Me.Midde.Column(1) ' اظهار رسالة ويظهر للمستخدم ان تم تفعيل لمدة المحددة DoCmd.OpenForm "frmsereki", acNormal ' فتح نموذج الاخر DoCmd.Close acForm, Me.Name, acSaveYes ' اغلاق النموذج الحالية وهو نموذج التسجيل ElseIf Len(Me.NTascil & "") = 0 Then ' اذا كان مربع نصي لرقم التسجيل بيكون فارغا MsgBox "اکتب رقم التسجيل ... وحاول مجددأ" ' اظهار رسالة ويخبره بان رقم التسجيل المدخلة خطأ Me.NTascil.SetFocus 'تركيز على مربع نصي لرقم التسجيل في النموذج Else ' والا MsgBox "خطأ في رقم التسجيل ... حاول مجددأ" ' اظهار رسالة ويخبره بان رقم التسجيل المدخلة خطأ Me.NTascil = "" 'قم بافراغ مربع نصي رقم التسجيل في نموذج Me.NTascil.SetFocus 'تركيز على مربع رقم التسجيل في نموذج End If End Sub Private Sub BtnQuit_Click() ' كود عند ضغط على زر اغلاق ' اغلاق القاعدة DoCmd.Quit End Sub وراح نستخدم هذين فانكشنين في وحدة نمطية في قاعدة كراك هو نفس وحدة الفانكشن الاعلى اللس استخدمناه في القاعدة اللي نعطيه للعميل
    Option Compare Database Function TxtToNumber(ByVal C As String) As String Select Case C Case "A", "J", "R": TxtToNumber = 9 Case "B", "K", "S": TxtToNumber = 1 Case "C", "L", "T": TxtToNumber = 7 Case "D", "M", "U": TxtToNumber = 3 Case "E", "N", "V": TxtToNumber = 5 Case "F", "O", "W": TxtToNumber = 8 Case "G", "P", "X": TxtToNumber = 2 Case "H", "Y": TxtToNumber = 6 Case "I", "Q", "Z": TxtToNumber = 4 Case "-", "_", "\", " ", "/", ";", ":": TxtToNumber = "" Case Else TxtToNumber = C End Select End Function Function TxtInTextToNumber(SText) Dim Numbers Dim I As Integer For I = 1 To Len(SText) If IsNumeric(Mid(SText, I, 1)) Then Numbers = Numbers & Mid(SText, I, 1) Else Numbers = Numbers & TxtToNumber(Mid(SText, I, 1)) End If Next TxtInTextToNumber = Trim(Numbers) End Function مع هذا الكود في النموذج التسجيل في قاعدة كراك
    Option Compare Database ' تم اعداد من قبل ' Shivan Rekany شفان ريکاني ' وليس لدينا مانع استخدامه في برامجكم فقط نريد منكم الدعاء Private Sub Tascil_Click() ' كود عند الضغط على زر التسجيل On Error Resume Next Dim NumBeforeTascil, NumForTascil ' متغيران واحد لکي نعرف رقم الاول للتسجيل قبل استخدام الوقت والاخر رقم تسجيل الحقيقي Dim WqtTascil ' ھو رقم من التاريخ لکي يقسم عليھ رقم قبل التسجيل ' اذا كان كومبوبوكس مدة التفعيل في النموذج بيكون خالي من البيانات يظهر رسالة ويخبره و يركز على الكومبوبوكس وينتهي مشوار ضغط على الزر If Len(Me.Midde & "") = 0 Then MsgBox "اختر مدة التفعيل": Me.Midde.SetFocus: Exit Sub ' اذا كان كومبوبوكس مدة التفعيل في النموذج بيكون خالي من البيانات يظهر رسالة ويخبره و يركز على الكومبوبوكس وينتهي مشوار ضغط على الزر If Len(Me.NM & "") = 0 Then MsgBox "اكتب رقم المعالج": Me.NM.SetFocus: Exit Sub ' اذا كان كومبوبوكس مدة التفعيل في النموذج بيكون خالي من البيانات يظهر رسالة ويخبره و يركز على الكومبوبوكس وينتهي مشوار ضغط على الزر If Len(Me.NH & "") = 0 Then MsgBox "اكتب رقم الهارد": Me.NH.SetFocus: Exit Sub ' رقم قبل تسجيل يساوي رقم واحد مع تحول سريال المعالج الى الارقام مع تحويل سريال الارد تقسيم واحد مع تحويل سريال الهارد NumBeforeTascil = Trim(Round(((1 & TxtInTextToNumber(Me.NM) & TxtInTextToNumber(Me.NH)) / (1 & TxtInTextToNumber(Me.NH))))) If Me.Midde.Column(0) = 1 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 1 WqtTascil = Format(Date, "yyyymmdd") ' وقت التسجيل بيكون هذا النوع ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل * 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil)) * 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 7 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 1 WqtTascil = Format(Date, "yyyymmdd") + 3 ' وقت التسجيل يساوي سنة و شهر و يوم زائد 3 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 3 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 3) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 30 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 30 WqtTascil = Format(Date, "yyyymmdd") + 15 ' وقت التسجيل يساوي سنة و شهر و يوم زائد 15 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 15 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 15) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 90 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 90 WqtTascil = Format(Date, "yyyymm") + 45 ' وقت التسجيل يساوي سنة و شهر زائد 45 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 45 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 45) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 180 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 180 WqtTascil = Format(Date, "yyyymm") + 90 ' وقت التسجيل يساوي سنة و شهر زائد 90 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 90 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 90) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 365 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 365 WqtTascil = Format(Date, "yyyymm") + 182 ' وقت التسجيل يساوي سنة و شهر زائد 182 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 182 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 182) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 18250 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 18250 WqtTascil = Format(Date, "yyyymm") + 9125 ' وقت التسجيل يساوي سنة و شهر زائد 9125 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 9125 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 9125) / 212, ".", ""), 1, 15) End If Me.NTascil = NumForTascil ' مربع رقم التسجيل يساوي رقم التسجيل End Sub Private Sub BtnQuit_Click() ' كود عند ضغط على زر اغلاق ' اغلاق القاعدة DoCmd.Quit End Sub * قاعدة الكراك راح يكون عند المبرمج والاخر سيكون في قاعدة بيانات البرامج اللي يعمله المبرمج ويعطيه للعميل
    * من الممكن ان يتغير ارقام اي نوع عطاء رقم التفعيل حسب الرغة

    اتمنى ان يستفيد منه اكبر عدد ممكن من الاعضاء
    تقبلوا تحياتي
     
     
    ShivanHimaye.rar
  16. Shivan Rekany's post in جلب حقل تقرير بواسطة dlookup was marked as the answer   
    اتفضل ماتريده

    dlookup.rar
  17. Shivan Rekany's post in تعديل في كود الاستيراد was marked as the answer   
    اتفضل اليك تعديل اخر 
    الان تعمل مع اربع ملفات اكسل
    تم
    تم
    Fayz.rar
  18. Shivan Rekany's post in احتاج شرح هذا الكود was marked as the answer   
    اكمال الشرح مع استاذ ابو عبدالله
    كما تفضل الاستاذ عندك في القاعدة جدول باسم Temp3 وبها عدد من الحقول و اسماءها F1 , F2 ,F3,F4,F5,F6,F7,F8,F9 >>> الى اخره
    هنا يقول الكود اذا حقل اللي اسمه F مع قيمة fld_Number وهو 3 زائد 16 اي يعني اللي اسمه F19 بيكون رقم يعمل الاتي
    sID = حرف F مع 3 زائد 16 اي يعني F19
    sName = حرف F مع 3 زائد 12 اي يعني F15
    وهكذا
    اي يعني قيمة fld_Number هو 3 مع زيادة رقم المكتوب معه بيساوي اسم الحقل المطلوب
    للعلم في رابط مشاركتك الاعلى انا قمت بتعديل الكود و كتبت في نهاية اسطر اسم الحقل 
    تقبل تحياتي 
  19. Shivan Rekany's post in أرجو المساعدة في عمل رسم بياني و تجميع للساعات was marked as the answer   
    اتفضل اليك هذا

    مع هذا

    مع القاعدة
     
    test.accdb
  20. Shivan Rekany's post in التعديل علي كود يقوم باجراء عمليات حسابية علي نص was marked as the answer   
    وعليكم السلام ورحمة الله وبركاته
    اتفضل اليك هذا 
    Option Compare Database Function RiaziyatTxtToNum(SText) ' By Shivan Rekany Dim i, ii As Integer Dim Elamat Dim Encam As Double Dim sERCEM As Double Dim JimaaZuF As Integer For ii = 1 To Len(SText) If Mid(SText, ii, 1) = "+" Or Mid(SText, ii, 1) = "*" Or Mid(SText, ii, 1) = "/" Or Mid(SText, ii, 1) = "-" Then JimaaZuF = JimaaZuF + 1 End If Next ii Dim LString As String Dim LArray() As String LString = Replace(Replace(Replace(SText, "+", "*"), "-", "*"), "/", "*") LArray = Split(LString, "*", Val(JimaaZuF + 1)) For ii = 1 To Len(SText) If Mid(SText, ii, 1) = "+" Or Mid(SText, ii, 1) = "*" Or Mid(SText, ii, 1) = "/" Or Mid(SText, ii, 1) = "-" Then Elamat = Elamat & Mid(SText, ii, 1) Next ii Encam = Val(LArray(0)) For i = 1 To Len(Elamat) If Mid(Elamat, i, 1) = "+" Then Encam = Encam + Val(LArray(i)) ElseIf Mid(Elamat, i, 1) = "*" Then Encam = Encam * Val(LArray(i)) ElseIf Mid(Elamat, i, 1) = "/" Then Encam = Encam / Val(LArray(i)) ElseIf Mid(Elamat, i, 1) = "-" Then Encam = Encam - Val(LArray(i)) End If Next i RiaziyatTxtToNum = Trim(Encam) Form_TBL1.sERCEM = RiaziyatTxtToNum End Function واليك ملف تم تطبيق عليه
     
    Database2.accdb
  21. Shivan Rekany's post in تصفية البيانات was marked as the answer   
    اتفضل 
    حسب فهمي لطلبك
    استخدمت هذه الاكواد
    Public Sub a_AfterUpdate() If Len(Me.a & "") <> 0 And Len(Me.b & "") = 0 And Len(Me.C & "") = 0 Then Me.Filter = "[Safe]='" & Me.a & "'" Me.FilterOn = True ElseIf Len(Me.a & "") <> 0 And Len(Me.b & "") <> 0 And Len(Me.C & "") = 0 Then Me.Filter = "[Safe]='" & Me.a & "'" & "and [Sub]='" & Me.b & "'" Me.FilterOn = True ElseIf Len(Me.a & "") <> 0 And Len(Me.b & "") <> 0 And Len(Me.C & "") <> 0 Then Me.Filter = "[Safe]='" & Me.a & "'" & "and [Sub]='" & Me.b & "'" & "and [Class]='" & Me.C & "'" Me.FilterOn = True ElseIf Len(Me.a & "") = 0 And Len(Me.b & "") <> 0 And Len(Me.C & "") <> 0 Then Me.Filter = "[Sub]='" & Me.b & "'" & "and [Class]='" & Me.C & "'" Me.FilterOn = True ElseIf Len(Me.a & "") = 0 And Len(Me.b & "") = 0 And Len(Me.C & "") <> 0 Then Me.Filter = "[Class]='" & Me.C & "'" Me.FilterOn = True ElseIf Len(Me.a & "") <> 0 And Len(Me.b & "") = 0 And Len(Me.C & "") <> 0 Then Me.Filter = "[Safe]='" & Me.a & "'" & "and [Class]='" & Me.C & "'" Me.FilterOn = True ElseIf Len(Me.a & "") = 0 And Len(Me.b & "") <> 0 And Len(Me.C & "") = 0 Then Me.Filter = "[Sub]='" & Me.b & "'" Me.FilterOn = True ElseIf Len(Me.a & "") = 0 And Len(Me.b & "") = 0 And Len(Me.C & "") = 0 Then Me.Filter = "" Me.FilterOn = False End If End Sub Private Sub b_AfterUpdate() Call a_AfterUpdate End Sub Private Sub BtnCancelFilter_Click() Me.a = "": Me.b = "": Me.C = "": Me.Filter = "": Me.FilterOn = False End Sub Private Sub C_AfterUpdate() Call a_AfterUpdate End Sub اليك ملفك بعد اضافة
     
    Database1.rar
  22. Shivan Rekany's post in مطلوب عرض التقرير للقيم المكررة بالأرقام بنفس الصور المرفقة was marked as the answer   
    شکرا لک
    في الحقيقة انا ما نظرت النتيجة هكذا
    تخياتي
  23. Shivan Rekany's post in البيانات لاتوجد في النموذج was marked as the answer   
    عليكم السلام ورحمة الله وبركاته
    في مرة السابقة ايضا كان مشكلتك نفس المشكلة
    خلي توضح لك لكي تستفيد اكثر
    القي نظرتا الى هذه الصورة

    هناك حقل باسم bi  لكن مصدره هو حقل user1 
    وفي مصدر التقرير والنموذج الغياب هناك شرط فيه وهو يجب ان يكون حقل bi يساوي بحقل bi في جدول الملفات1
    اي يجب ان يكون مصدر حقل bi في جدول ملفات1 يكون حقل bi نفسه
    لذلك انا قمت بتسمية مربع bi  الى user1 ومن جديد اضفت حقل bi في نموذج
    اتفضل اليك قاعدتك بعد تعديل
     
    ملفات.rar
  24. Shivan Rekany's post in بحاجة للتعديل على كود العمر لكي يعمل حسب صيغة التاريخ الكامل was marked as the answer   
    ،عم استخدم هذا الكود
    Private Sub AGE_AfterUpdate() If Not IsNull(Me.Age.Value) Then Me.DOB.Value = DateSerial(Year(Me.dDate) - Me.Age.Value, 1, 1) End If End Sub  
    2020 (1).rar
  25. Shivan Rekany's post in المساعدة في عدم السماح بالكتابة داخل مربع تحرير وسرد لتصبح فقط للاختيار was marked as the answer   
    اليك طريقتين
    لكن في البداية القي نظرتا الى خصائص كومبوبوكس قي هذه الصورة

     
    اذا تريد ان يكتب فيه ولا يقبل شيء احد غير اللي في مصدره استخدم هذا الكود معه
    Private Sub green_NotInList(NewData As String, Response As Integer) Response = Cancel End Sub لكن اذا تريد ان لا يكتب فيه حرف واحد فقط يجوز ان تختار استخدم هذا الكود معه
    Private Sub Combo3_KeyDown(KeyCode As Integer, Shift As Integer) KeyCode = 0 End Sub واليك المرفق بها كلا من طريقتين
     
    db1.mdb
×
×
  • اضف...

Important Information