-
Posts
540 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
11
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو SEMO.Pa3x
-
كيف أخفي ايقونة واظهر الاخرى بناء على قيمة في الحقل في نموذج مستمر
SEMO.Pa3x replied to at_aziz's topic in قسم الأكسيس Access
استخدم الـ TextBox بدل الـ Button وإستخدم التنسيق الشرطي أسهل لك -
حفظ بيانات في نموذج فرعي انطلاقا من نموذج مستقل
SEMO.Pa3x replied to solomoon's topic in قسم الأكسيس Access
-
-
حفظ بيانات في نموذج فرعي انطلاقا من نموذج مستقل
SEMO.Pa3x replied to solomoon's topic in قسم الأكسيس Access
عليكم السلام، اخي الكريم صراحة كلامك غير مترابط ولم افهم ماتريد بالضبط ممكن توضيح أبسط لكي يتنسى لنا مساعدتك -
عليكم السلام، قمت بشرح هذا الدرس منذ 5 سنوات وذلك بإستخدام الدالة Like في الإستعلام، شاهد الدرس وأخبرني النتيجة
-
جئت متأخراً عموماً الحمدلله لأنك وجدت الحل، لكن إضافة بسيطة استاذ صالح انت تعلم ان بيئة الـ vb6 اصبحت من العصر الحجري وفي حواسيبنا اصبح استخدام ملفات الـ OCX قليل، لذا أقترح عليك ان تقوم بتنصيب حزمة ملفات الـ OCX وتريح نفسك من هالرسائل والمشاكل. تحميل ملفات الـ OCX: https://www.mediafire.com/file/56p7u9p62175d8d/OCX.rar/file
-
عليكم السلام، اخوية شوف هذا الشرح
-
بكل بساطة، استخدم في الجدول حقل من نوع ( نعم/لا ). وعند إعارة الجهاز يتم تأشير هذا الحقل لهذا الجهاز، بمعنى ان الجهاز مشغول حالياً. وعند ارجاع الجهاز يتم الغاء علامة الصح من هذا الحقل بمعنى ان الجهاز أصبح فارغ ويمكن إعارته مرة اخرى.
-
جرب وأخبرني النتيجة D (1).accdb
-
يرجى إختيار أفضل إجابة لغلق الموضوع.
-
تفضل جرب وأخبرني النتيجة، للمعلومة الحقل kwe ان لم تستخدمه في أي شي فلماذا قمت بوضعه؟ تاريخ.accdb
-
عليكم السلام، أذهب الى الخلية kwe وفي حدث Form_AfterUpdate أو بعد التحديث وقم بعمل نداء لدالة wsd مثال: Call wsd_AfterUpdate أو ارفق قاعدة بياناتك لكي نتمكن من مساعدتك.
-
عليكم السلام ورحمة الله وبركاته، تفضل جرب وأخبرني النتيجة. Private Sub x1_AfterUpdate() 'c0ded bY: SEMO.Pa3x '------------------- Dim ftPosition As String ftPosition = x1.Column(3) 'set value from combobox to textbox xt = ftPosition End Sub D.accdb
-
حقل منضم فى نموذج رئيسى يساوى قيمة مربع نص غير منضم
SEMO.Pa3x replied to jo_2010's topic in قسم الأكسيس Access
عليكم السلام، ارفق قاعدة بياناتك لكي نتمكن من مساعدتك. -
محتاجة شاشة دخول اكسس فيها مجموعة user nameومجموعة password
SEMO.Pa3x replied to REHAB KAREEM's topic in قسم الأكسيس Access
عليكم السلام، حيالله أهل البصرة. تصفحي هذا الموضوع، وستجدين فيه طلبك. باسورد الدخول لليوزرات = 313 -
السلام عليكم ورحمة الله وبركاته،... كثيراً مانحتاج في برامجنا الى ( اسم مُدخل البيانات ) أي الذي قام بكتابة الفاتورة او تعديل أمر ما او طباعة ...الخ نريد أن نعرف من الشخص الذي قام بهذه العملية خصوصاً اذا كانت قاعدة البيانات قد تم ربطها بشكل شبكة ( سلسلة كومبيوترات متصلة بقاعدة البيانات ) كنا نستعمل الطريقة التقليدية أولا: بإنشاء جدول لتسجيل اسم المستخدم الحالي الذي يستخدم قاعدة البيانات في حال مروره بنموذج تسجيل الدخول ثانيا: نقوم بتخزينه في متغير Veriable من نوع String مثلاً وعند المرور بنموذج تسجيل الدخول يتم اسناد القيمة للمتغير في حال كان اليوزر والباسورد صحيحين Public CurrentUserName As String الكلام في الطريقتين صحيح، لكن في الطريقة الأولى سيبقى محتفظاً في اسم المستخدم حتى في حالة إغلاق الأكسس أجبارياً اما الطريقة الثانية فأن هذا المتغير سيفقد القيمة التي قمنا بتخزينها به عند ظهور أول رسالة خطأ من الأكسس جراء تطبيق أمر ما او أي عملية If قمت بكتابتها، بمجرد ظهور رسالة الخطأ ستختفي القيمة من المتغير CurrentUserName ونُصبح في مهب الريح ، حسناً لذلك سنقوم بإستخدام ( TempVars ) دعنا نسميها المخزن، نقوم بخزن اي قيمة بداخلها وتكون بهيئة ( Global Veriables ) يمكن استدعائها من أي مكان وسيتم تصفيرها بعد أغلاق الأكسس أجبارياً او إختيارياً ولن تمحى القيمة بعد ظهور رسالة خطأ كما أوضحت سابقاً. أضافة قيمة: TempVars.Add "CurrentUserName", "semo" إحضار القيمة: MsgBox TempVars("CurrentUserName") يمكنك إسناد الكثير من القيم لـ TempVars والإستفادة منها. لتفاصيل أكثر يمكنكم قراءة المقال من شركة مايكروسوفت: https://docs.microsoft.com/en-us/office/vba/api/access.tempvars.add أي سؤال أنا موجود، تحياتي لكم .
-
السلام عليكم ورحمة الله وبركاته، كيف حالكم اخواني الأفاضل. مبارك عليكم حلول شهر رمضان المبارك أعاده الله علينا وعليكم باليمن والخير والبركات. اقدم لكم فنكشن لإحتساب المدة بين تاريخين سنة - شهر - اسبوع - ساعة - دقيقة - ثانية سؤال: ما الفائدة من هذا الفنكشن؟ بالدرجة الأولى سيُفيد أصحاب برامج الأقساط والتقسيط لإحتساب فترات التأخير والإستحقاق وغيرها. وربما هنالك استخدامات أخرى له، حسب احتياج كل شخص الفنكشن: Public Function MainElapsedTime(d1, d2) As String d1 = CDate(d1) d2 = CDate(d2) vSecs = DateDiff("s", [d1], [d2]) MainElapsedTime = ElapsedTimeAsTextRecur(vSecs) End Function Public Function ElapsedTimeAsTextRecur(ByVal pvSecs, Optional ByVal pvSecBlock) 'recursive time lapse given seconds Dim vTxt Dim iNum As Long Const kDAY = 86400 Const kSECpYR = 31536000 '60 sec = 1 min = 60 sec '60 min = 1 hour = 3,600 sec '24 hour = 1 day = 86,400 sec '07 days = 1 week = 604,800 sec '30 days = 1 month = 25,92,000 sec '12 months = 1 year = 31,536,000 sec 'YEARS If IsMissing(pvSecBlock) Then pvSecBlock = kSECpYR iNum = pvSecs \ pvSecBlock Select Case pvSecBlock Case kSECpYR 'yr sUnit = "years" If iNum > 0 Then vTxt = iNum & " Years " pvSecs = pvSecs - (iNum * pvSecBlock) End If vTxt = vTxt & ElapsedTimeAsTextRecur(pvSecs, 2592000) Case 2592000 'MO sUnit = "months" If iNum > 0 Then If iNum > 11 Then iNum = 11 vTxt = vTxt & iNum & " Months " pvSecs = pvSecs - (iNum * pvSecBlock) End If vTxt = vTxt & ElapsedTimeAsTextRecur(pvSecs, 604800) Case 604800 'WEEK sUnit = "weeks" If iNum > 0 Then If iNum > 3 Then iNum = 3 vTxt = vTxt & iNum & " Weeks " pvSecs = pvSecs - (iNum * kDAY * 7) End If vTxt = vTxt & ElapsedTimeAsTextRecur(pvSecs, 86400) Case kDAY 'day sUnit = "days" If iNum > 0 Then vTxt = vTxt & iNum & " Days " pvSecs = pvSecs - (iNum * kDAY) End If vTxt = vTxt & ElapsedTimeAsTextRecur(pvSecs, 3600) Case 3600 'hrs sUnit = "hrs" If iNum > 23 Then iNum = 23 If iNum > 0 Then vTxt = vTxt & iNum & " Hours " pvSecs = pvSecs - (iNum * pvSecBlock) End If vTxt = vTxt & ElapsedTimeAsTextRecur(pvSecs, 60) Case 60 'min sUnit = "mins" If iNum > 0 Then vTxt = vTxt & iNum & " Minutes " pvSecs = pvSecs - (iNum * pvSecBlock) End If vTxt = vTxt & ElapsedTimeAsTextRecur(pvSecs, 1) Case Else sUnit = "secs" If pvSecs > 0 Then vTxt = vTxt & pvSecs & " Seconds" End Select ElapsedTimeAsTextRecur = vTxt End Function الإستخدام بسيط جدا في الإستعلامات او في النماذج او التقارير كالآتي: MainElapsedTime("Here your date", Date()) --------------------------------------------------- Example: MsgBox MainElapsedTime("6/3/2020", "14/4/2021") النتيجة: هنا انا قمت بمقارنة تاريخين فقط بدون أوقات، سأقوم الآن بمقارنة تاريخ مع وقت MsgBox MainElapsedTime("2/02/2019 12:07:16 pm", "13/04/2021 1:08:6 am") النتيجة: للأمانة الكود ليس من كتابتي 100%، فقط انا قمت بالتعديل عليه ليصبح بشكل افضل.. تحياتي وانتضرو مفاجئتي في الموضوع القادم
-
كيف اعمل زر امر في النموذج عند الضغط يفتح التقرير بشرطين
SEMO.Pa3x replied to asdewq's topic in قسم الأكسيس Access
عليكم السلام ارفق لنا قاعدة بياناتك لكي نتمكن من مساعدتك. -
semo.pa3x شرح استخدام تقنية Regex في التحقق من النصوص
SEMO.Pa3x replied to SEMO.Pa3x's topic in قسم الأكسيس Access
للمعلومة الباترن الذي وضعته لك، يجعل التكست يقبل فقط الحروف العربية والانجليزية فقط! ويمنع كتابة الأرقام والرموز حسب طلبك. -
semo.pa3x شرح استخدام تقنية Regex في التحقق من النصوص
SEMO.Pa3x replied to SEMO.Pa3x's topic in قسم الأكسيس Access
بصراحة لا امتلك الوقت الكافي لإقدم دورة عن كتابة الpattern كما انها متوفرة في google ماعليك فقط البحث وسوف تجد مئات الدروس اتذكر قبل 5 سنوات تعلمت هذه التقنية من دورة في اليوتيوب، تفضل هذا الرابط: -
semo.pa3x شرح استخدام تقنية Regex في التحقق من النصوص
SEMO.Pa3x replied to SEMO.Pa3x's topic in قسم الأكسيس Access
جرب وأخبرني النتيجة: [\u0621-\u064A\u0660-\u0669a-zA-Z]+$ -
semo.pa3x شرح استخدام تقنية Regex في التحقق من النصوص
SEMO.Pa3x replied to SEMO.Pa3x's topic in قسم الأكسيس Access
العفو، حياك الله اخي أبو إبراهيم. بالنسبة لسؤالك هل تقصد الباترن يُكتب باللغة العربية؟ او تقصد باترن للكشف ما اذا كانت اللغة عربية او لا؟ اذا كانت قصدك على كشف النص المدخل هل يتضمن حروف عربية او لا تفضل: If RegexMatch("سيمو", "[\u0600-\u06FF]") = True Then MsgBox "Is Arabic !", vbInformation, "CORRECT" Else MsgBox "Not Arabic ):", vbCritical, "ERROR!" End If اما اذا كنت تقصد الباترن يُكتب باللغة العربية فهذا الشيء غير ممكن. -
بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته في هذا الدرس سأقدم نظرة عامة، ومُقدمة على التعابير القياسية Regular Expression وذلك لأهميتها الكبيرة في البرمجة. ملاحظة: لن اتطرق لكيفية كتابة الـ patterns نضرة لصعوبته على البعض لانه يحتاج اساسيات ومقدمات. في هذا الدرس سوف أستخدم بإذن الله لغة VBA في عمل اختبارات على الـ Regular Expression تعريف Regular Expression: هو كائن يصف نمطًا من المحارف ( أو الكلمات ). تعريف أعمق للتعابير القياسية: هي سلسلة من الأحرف التي تحدد نمطًا للبحث داخل النصوص (String) أو للمطابقة بين سلاسل من الأحرف. الهدف من التعاببير القياسية هو تسهيل عمليات البحث والاستبدال داخل النصوص، وتستخدم غالبًا في عمليات التحقق (Validation) وعمليات البحث (Searching) وايضًا في الحماية. ولتوضيح الفكرة بشكل أفضل بإمكاننا وضع مثال بسيط واقتراح الحلول له ثم بعد ذلك تبسيط الحل باستخدام التعابيير القياسية والتي سنرمز لها لاحقًا بـ RegExp. لنفرض أننا سنقوم ببرمجة نموذج تسجيل وستكون المدخلات المطلوبة ( اسم المستخدم - Username & البريد الإلكتروني - Email ) ونريد أن نتأكد من التالي: اسم المستخدم يجب أن يكون خليط من حروف وأرقام ، والرموز التالية فقط (_-.). البريد الإلكتروني يجب أن يكون بالشكل التالي : email_name@domain_name.top-level-domain مثال: cielblog@hotmail.com. وسيكون شكل نموذج التسجيل كالأتي: الحلول المقترحة كثيرة، مثلًا لكي نتأكد أن إسم المستخدم خالٍ من المسافات والرموز نحتاج لعمل تصفية (Filter) له، والتأكد اولًا من وجود مسافات واستبدالها مثلًا بالرمز _ او ازالتها كليًا، بعد ذلك تنقيح الاسم من الرموز الممنوعة ... عملية طويلة 🤔 اما البريد الإلكتروني يجب ان نتأكد اولًا من خلوه من المسافات ايضًا، والرموز الممنوعة في اغلب مشغلات البريد الإلكتروني، بعد ذلك التحرك قليلًا للتأكد أنّ ماقبل علامة @ هو String ومابعده String ثم التحقق أن ماقبل علامة النقطة - dot - هو String ومابعده هو top-level-domain ... عملية أطول 🤔 في التعابيير القياسية يمكننا اختصار كل هذه العمليات بسطر واحد أو نصف سطر حتى، وفي درسنا هذا سنتعلم كيف نحل مشكلتنا هذه ان شاء الله. أولاً: انسخ الفنكشن الآتي.. ' ----------------------------------------------------------------------' ' Return True if the given string value matches the given Regex pattern ' ' ----------------------------------------------------------------------' Public Function RegexMatch(value As Variant, pattern As String) As Boolean If IsNull(value) Then Exit Function ' Using a static, we avoid re-creating the same regex object for every call ' Static regex As Object ' Initialise the Regex object ' If regex Is Nothing Then Set regex = CreateObject("vbscript.regexp") With regex .Global = True .IgnoreCase = True .MultiLine = True End With End If ' Update the regex pattern if it has changed since last time we were called ' If regex.pattern <> pattern Then regex.pattern = pattern ' Test the value against the pattern ' RegexMatch = regex.test(value) End Function لاحظو الفنكشن يتكون من براميترات 2 الأول القيمة المراد اجراء التحقق عليها والبراميتر الثاني هو معيار التحقق ولو اردت ان اكتب تحقق لإسم المستخدم، سأكتب: If RegexMatch("semo", "^[\w_-]+$") = True Then MsgBox "Correct username", vbInformation, "CORRECT" Else MsgBox "Wrong username", vbCritical, "ERROR!" End If لو اردت ان اكتب تحقق للبريد الإلكتروني سأكتب: If RegexMatch("test@gmail.com", "[A-Za-z0-9_\-.]+@[A-Za-z0-9_\-.]+\.(com|org|net)") = True Then MsgBox "Correct email", vbInformation, "CORRECT" Else MsgBox "Wrong email", vbCritical, "ERROR!" End If للفائدة، google ممتلئ بالـ patterns ماعليك فقط ان تبحث قليلاً وستجد الباترن المطلوب ☺️ بالتوفيق للجميع.
-
اغلاق إجباري لقاعدة البيانات لجميع الاجهزة
SEMO.Pa3x replied to Eng. Abdullah's topic in قسم الأكسيس Access
احسنت، بالفعل الحل هو استخدام التايمر لقراءة قيمة في جدول عند x ثانية. -
اخي الكريم، يقولون لا تعطني سمكة علمني كيف اصطادها. مع ذلك قدمت لك الحل كاملاً.. هل هذا أمر مستحيل أو صعب ؟ ولو تمعن النظر في الكود الذي كتبته سوف تجد طلبك 'clear TextBox tn after search tn = Null يعمل 100% وبدون أشكالية. للمعلوم ضغط الأنتر سيقوم بنداء الدالة go_Click التي ستقوم بوظيفتها التالية: 1- هل الحقل tn فارغ ؟ اذا كان فارغ ستخرج رسالة خطأ واذا لم يكن فارغ سيكمل البرنامج عمله. 2- التحقق في ما اذا كان السجل المطلوب هو موجود فعلا بالجدول او غير موجود عن طريق رقم الـ HNO اذا كان موجود سيكمل البرنامج عمله والعكس رسالة خطأ. 3- يقوم بالذهاب للسجل المطلوب 4- تصفير الحقل اخي استمع لنصيحتي، انت تريد ان تأخذ الحل جاهز وبدون ان تتعب نفسك بالمحاولة أو بالتفكير أو حتى بقراءة حلول الآخرين لك، والدليل ردي في الأعلى