-
Posts
11,720 -
تاريخ الانضمام
-
Days Won
197
Community Answers
-
ابوخليل's post in الاجماليات في فورم مستقل was marked as the answer
السلام عليكم
الافضل دايما تحاول تسمي الحقول المجمعة في الاستعلام باسماء بسيطة يمكنك مناداتها بكل يسر .. بدلا من ان يكون الاسم مختلط حروف عربية وانجليزية
ثم استخدم دالة DlookUp لجلب البيانات بمعلومية اسم المصدر واسم الحقل
تفضل تم التعديل حسب طلبك
testcalc2.rar
-
ابوخليل's post in المساعدة في معرفة البيانات التي تغيرت تلقائيا في الاستعلام was marked as the answer
اي فكرة منطقية يمكن ترجمتها وتنفيذها برمجيا
والمنطق في طلبك يستلزم وجود بيانات ثابتة للمقارنة مع ما يطرأ من تغيير على هذه البيانات
لا ارى مشكلة في عمل عمود في هذا الجدول بل هو المكان الصحيح لان المطلوب هو معرف الكشاف واسمه حتى نقارن بين صفته في الجدول والصفة المتغيرة في الاستعلام ان وجدت
اعدت تجربة الاستعلام وهو يعمل على اكمل وجه ... الاستعلام يقوم بتحديث حقل الصفة في الجدول بناء على نتيجة الاستعلام
-
ابوخليل's post in كيفية تحديث النموذج عند المستخدمين في الشبكة was marked as the answer
المتوقع غلق النموذج ثم فتحه وهذا منطقي .. وليس غلق البرنامج
الحل ان التحديث يتم في حدث عداد النموذج
اضبط وقت العداد على 10000 عشرة آلاف اي تساوي 10 ثواني
وفي حدث العداد ضع كود التحديث
لاحظ ان الحدث سيكون في جميع الواجهات الفرعية .. وخصوصا في اي نموذج يكثر العمل عليه جماعيا
-
ابوخليل's post in خطأ عند فتح ملف قاعدة البيانات (من نوع ACCDE) ملف قابل للتنفيذ فقط. عبر الشبكة المحلية. was marked as the answer
الخطأ سببه اعدادات اللغة في الجهاز
اضبط اعدادات اللغة في الجهاز الجديد مثل الاعدادات في الجهاز الذي تعمل عليه
-
ابوخليل's post in حقل الحي مرتبط بقيمة حقل المديرية في النموذج was marked as the answer
عملك جيد
الامر يسير اطلع على الاستعلام داخل كل مربع تحرير وانظر المعيار المكتوب
ثم عند الاختيار يتم تحديث المربع المرتبط
New Access Database2.rar
-
ابوخليل's post in تغيير الاسعار حسب نوع المريض was marked as the answer
بعد اذن اخوي خليفة
تفضل .. تحديث الاسعار بناء على معرف المريض
يتم من خلالها تحديث الاسعار والتأشير على الخانة الخاصة بضغطة زر
BBB2.rar
-
ابوخليل's post in خانة للصنف المعدل was marked as the answer
اقرب واسهل طريقة هو ان يتم حفظ قيمة الحقل عند التركيز وقبل اجراء اي تغيير
Dim i As String Private Sub item_GotFocus() i = Me.item End Sub Private Sub item_BeforeUpdate(Cancel As Integer) Me.note = i End Sub
New2.accdb
-
ابوخليل's post in تعديل خانة بجدول بشرط معين بناء على قيمة خانة أخرى بجدول أخر was marked as the answer
تفضل
علما ان حقول القيمة لديك نصية ، والمقارنة باكبر من او اصغر يجب ان تكون الحقول رقمية
تم عمل متغير رقمي يمثل القيمة النصية
Dim i, ii As Integer i = Nz(DLookup("[estelak]", "[OLD_BASIC_DATE]", "[crn] ='" & [Forms]![BASIC_DATE]![address] & "'"), 0) ii = Me.ADD_NO If ii < i Then Beep If MsgBox("الإستهلاك الذى تريد تسجيله حالياً أقل من الإستهلاك السابق هل تريد إضافة القيمة؟", _ vbQuestion + vbYesNo, _ "تننبيه") = vbYes Then Exit Sub Else Undo Exit Sub End If End If
New Microsoft Access Database2.accdb
-
ابوخليل's post in استخدام IF فى وحدة نمطية was marked as the answer
السلام عليكم
مشاركة مع احبتي
ويبدوا اننا اتفقنا بالمشاركة في وقت واحد
عملت وحدة نمطية عامة
Public Function ConAmnt(a As Date, b As Double) Dim i As Double If a < #1/8/2016# Then ConsumD0817 (b) If a >= #1/8/2016# And a <= #7/30/2017# Then i = ConsumA0817(b) If a >= #1/8/2017# And a <= #7/30/2018# Then i = ConsumB0817(b) If a >= #1/8/2018# And a <= #7/30/2019# Then i = Consumc0817(b) ConAmnt = i End Function تستدعيها في الاستعلام بهذا السطر
Consume_Amount: ConAmnt([issue date];[Consum]) ولكن لاحظ انك في كل سنة جديدة ستزيد سطرا الى الوحدة النمطية
Test2.rar
-
ابوخليل's post in نقل قيمة checkBox was marked as the answer
"UPDATE ZetMotor SET ZetMotor.Filter = [Forms]![frmZetMotor]![Fliter] where ZetMotor.CodeSayara = [Forms]![frmZetMotor]![CodeSayara]"
-
ابوخليل's post in مساعدة في كتابة كود was marked as the answer
ينفع ليه لا ؟
جرب وحاول .. هناك مائة طريقة وطريقة للحماية
1- كتابة الشفرة داخل محرر الفيجوال ( ثم تحويل الملف الى mde او accde
2 - كتابة الشفرة في الجدول وتشفيرها
3- غرس ملف داخل نظام ويندوز يبحث عنه البرنامج عند الاقلاع فإن وجده فتح
4- البحث عن شفرة معينة داخل ملف في النظام
5- تسجيل قيمة ومفتاح في الريجستري يتعرف عليها البرنامج عند الاقلاع
وغيرها الكثير من الطرق المعروفة والخاصة غير المعروفة ، بمعنى انه يمكنك ابتكار طريقة خاصة بك
-
ابوخليل's post in اظهار الرصيد المقابل من الشهر الحالي لنفس الشهر من السنة الماضية من خلال استعلام was marked as the answer
تفضل
عملت لك استعلام جدولي يحقق طلبك
انظر في مصدره الذي هو استعلام تحديد وكيف تم تصفية الشهور والسنين وانظر المعيار الذي حدد هذه السنة والتي قبلها فقط
مثال اوفيسنا اجمالي المبيعات الشهرية2.mdb
-
ابوخليل's post in المساعدة في بيانات مستند نصي was marked as the answer
عليكم السلام
Private Sub textchange_Click() Dim fso, opn, tst Set fso = CreateObject("Scripting.FileSystemObject") Set opn = fso.GetFile(CurrentProject.Path & "\" & "textm.txt") Set tst = opn.OpenAsTextStream(2, 0) tst.Write Me.textfield tst.Close End Sub Private Sub textimport_Click() Dim fso, opn, tst Set fso = CreateObject("Scripting.FileSystemObject") Set opn = fso.GetFile(CurrentProject.Path & "\" & "textm.txt") Set tst = opn.OpenAsTextStream(1, 0) textfield = tst.ReadLine tst.Close End Sub
textf2.rar
-
ابوخليل's post in ادخال مبلغ مرة واحدة لعدة اسماء was marked as the answer
تفضل
انقر نقرا مزدوجا على اي مربع اختيار للتفعيل ولإلغاء التفعيل
لاحظ ان الموظف سوف يختفي اليوم من الفورم بمجرد اضافة المبلغ له ، احتياطا
ان اردت اظهاره اكتب تاريخا اكبر من تاريخ اليوم
محاوله2.mdb
-
ابوخليل's post in اضافة الى برنامج المواعيد was marked as the answer
لن انتظر ردك فقد عدلت حسب الفكرة
تفضل
dbx2.mdb
-
ابوخليل's post in تعديل كود حفظ نسخة ملف was marked as the answer
غير السطر
Path = CurrentProject.Path & "\MyBk\" الى
Path= "C:\Users\myuser\Documents\MyBk\" او الى
Path= "C:\Users\myuser\Documents\MyBk"
لا حظ يجب تغيير myuser الى اسم المستخدم عندك في وندوز
-
ابوخليل's post in تعديل اسماء ملفات مخزنة على الكمبيوتر was marked as the answer
يعمل عندي بكل كفاءة .. انظر الصورة
وضعت on error resume next فقد يكون بعض الطلاب ليس لديهم صور فيقفز الخطأ لما بعده
لو وضعت المؤشر على السطر الأصفر واطلعت على قيم oldName و NewName لتبين لك مكان الخلل
-
ابوخليل's post in مطلوب دروس تعليمية من خبراء المنتدى حول استخدام الباركود فى التعامل مع قواعد بيانات اكسيس was marked as the answer
مختصر مفيد
بدلا من كتابة رقم المنتج داخل الحقل يدويا والنقر على انتر للانتقال الى حقل آخر
قارىء الباركود : يقرأ خطوط الباركود على الملصق/ ويحولها الى رقم / ويلصقها في الحقل/ وينقر انتر نيابة عنك
ليس هناك برمجة ولا اكواد ... فقط تضيف المكتبة الخاصة في النظام
فقط ابحث في المنتدى بكلمة باركود وستحصل على ملف المكتبة .
barcodex.ocx
-
ابوخليل's post in كيف يتم إعادة ترقيم السجلات الجداول was marked as the answer
اعمل ضغط واصلاح ، سيرجع الترقيم من البداية
شرط ان تكون كافة السجلات محذوفة
-
ابوخليل's post in مشكلة طول الارقام العشرية فى التقرير was marked as the answer
الحقيقة الداخل في البرنامج مفقود والخارج مولود
على كل حال تمت معالجة المشكلة كما اشرت ايك في مشاركتي الأخيرة
وهذه صورة للنموذج
T3Q-Copy3.rar
-
ابوخليل's post in مساعدة في تقرير لاظهار اعياد الميلاد خلال اسبوع من تاريخ اليوم was marked as the answer
اهلا وسهلا اخي موسى .. اضافة جميلة ومعلومة قيمة
وكما وعدت الاخ رضوان تم عمل المطلوب بالطريقتين
شرح :
حولت التاريخ ( شهر / يوم ) الى رقم في عمود ضمن الاستعلام .. لأن المطلب هو الشهر واليوم
عملت وحدات نمطية صغيرة لجعلها معايير من اجل سهولة وسرعة التنفيذ
الاستعلام الاول Current Events يعمل آليا
الاستعلام الثاني qry1 يعمل من خلال حقل في نموذج
هذه هي الوحدات وتعليق بسيط عليها
هاتين الوظيفتين تعملان كمعايير داخل الاستعلام والرقم 2 يعني الايام ، (اكبر من وأصغرمن) تاريخ اليوم' فيمكن زيادة الرقم لزيادة العرض في الاستعلام ، فمثلا يمكن ان تجعل الرقم الموجب 7 لتعرض سبعة ايام بعد تاريخ اليوم ومثله الرقم السالب وهذه الوظيفتين تتعامل مع تاريخ اليوم الحالي وتظهر النتيجة في الاستعلام بلا وسيط Public Function dstePlus() dstePlus = CInt(Format(Date, "mmdd")) + 2 End Function Public Function dsteLoss() dsteLoss = CInt(Format(Date, "mmdd")) - 2 End Function هاتين الوظيفتين مثل السابقتين ولكنها تتعامل مع التاريخ المدرج في النموذج ، الأولى للتاريخ المدرج والثانية تعني اقل من التاريخ المدرج بيومين' Public Function dstechose() dstechose = CInt(Format(Forms!frm1!txt1.Text, "mmdd")) End Function Public Function dsteDown() dsteDown = CInt(Format(Forms!frm1!txt1.Text, "mmdd")) - 2 End Function
Database11.rar
-
ابوخليل's post in عمل استعلام الحاق بين جدولين was marked as the answer
منطقيا لا يمكن
لان جدول MultiNamesTable يحتوي على حقل مرتبط بالجدول GroupsTable وغير موجود في جدول main1115
الحل ان تدمج جدول GroupsTable مع main1115 باستعلام ولن تتمكن لانه يجب عليك تنشء حقل مرتبط بينهما
مشكلتك : انك تريد ادراج سجلات جديدة في جدول MultiNamesTable من غير حقل IDMain
لو حذفت العلاقة بين الجدولين ستتمكن من الإلحاق ولكن لن يمكنك الاطلاع على البيانات من خلال جدول GroupsTable الرئيس وسيبقى حقل IDMain خاليا
او ستتمكن لو ان العلاقة بين الجدولين يكون جدول MultiNamesTable هو الرأس وحقل IDMain ترقيم تلقائي
-
ابوخليل's post in جلب قيمة من جدول بعد تطابق التاريخ was marked as the answer
تفضل
SELECT x1.f2, x1.f1, x1.markName, IIf(mytextvalue() Between [f1] And [f2],""1"",""0"") br2.rar
-
ابوخليل's post in الفرق او الطرح بين تاريخين على اعتبار الشهر = 30 يوما was marked as the answer
اختلف برنامجي في رمضان واحتاج الى ايام لتنظيم الوقت المتاح للمنتدى ، ولكن شدني النداء
نعم انت نبهته ان هو اراد الناتج مع الكسور ووافق .. ورأيت التعديل ..
كتب الله اجرك ابا احمد ، هو رأى نتيجة المهندس قاسم بلا كسور فكانت اقرب الى نفسه
ولكن التطبيق من خلال الكود اكثر احترافية .. فلما عاتبته قام بالغاء افضل اجابة برجاء الحصول على نتيجة افضل .
سأكون وسيط خير بينكم لعلي افوز بافضل اجابة ... دمجت الفكرتين وبفضل الله خرجت بهذا الكود
آمل الاطلاع من الجميع والتقييم
Function GetMonths30(Date1 As Date, Date2 As Date) As Long Dim d1, m1, d2, m2 As String Dim y1, y2 As Integer Dim sum_d, sum_m, sum_y, sum_days As Integer Dim tst1, tst2 As Long d1 = Format(Day(Date1), "00"): d2 = Format(Day(Date2), "00") m1 = Format(Month(Date1), "00"): m2 = Format(Month(Date2), "00") y1 = Year(Date1): y2 = Year(Date2) tst1 = y1 & m1 & d1: tst2 = y2 & m2 & d2 If tst2 < tst1 Then Exit Function sum_d = Abs(Int(d2) - Int(d1)) sum_m = Abs(Int(m2) - Int(m1)) * 30 sum_y = (y2 - y1) * 360 sum_days = sum_y + Abs(sum_m - sum_d) GetMonths30 = sum_days End Function
months30.accdb