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

أبو هادي

المشرفين السابقين
  • Posts

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

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

كل منشورات العضو أبو هادي

  1. السلام عليكم بعد إذن أخي محمد جرب هذا الكود : DoCmd.OpenForm "Form1", acFormDS تحياتي .
  2. السلام عليكم هذه طريقة استخدمها وهي ناجحة جدا دون الحاجة لفحص الكسر أو عمل دالة مستقلة ولكن بشرط أن تكون الدقة لا تزيد عن 14 خانة بعد الفاصلة . الفكرة هو أن أزيد على كل رقم قيمة الثابت Rnd ثم نأخذ قيمة الـ Round للمجموع . طبعا ممكن الوصول للـ Rounding بنفس الدالة أدناه أو بالإصدارات السابقة ممكن تكون عن طريق Clng أو Cint أو Format Sub Rounding_Test() Const Rnd = 0.5 - (1E-16) Dim Num As Double Num = 2.00000000000001 MsgBox Round(Num + Rnd, 0) End Sub تحياتي .
  3. السلام عليكم تم استخدام التنسيق المشروط بالكود لتظليل كل 5 سجلات وترك 5 أخرى وكذلك تظليل السجل الحالي . تحياتي . CndFrmt.zip
  4. السلام عليكم أو ممكن تكون كالتالي : Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Address = "$A$3" Then Range("B3") = Now() End If End Sub تحياتي .
  5. السلام عليكم أخي المالكي333 .. يمكنك بهذه الطريقة : Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Column = 1 Then Range("B3") = Now() End If End Sub تحياتي .
  6. السلام عليكم وأنت كذلك أخي المالكي333 وحشتنا كتير :d . أخي ولو أنه بسؤالك وردي خلطنا موضوعين في واحد ولكن لعيونك وليسامحنا محمد طاهر . أخي في الحقيقة عملية اللغات والخطوط تجنن ، والحل الوحيد الذي أنصحك به هو أن تكتب كل ما هو عربي في الكود مرة أخرى ، وهنا مطلوب أن تتوخى الحذر في عدم الوقوع في الخطأ ، هناك وسيلة للتبديل كلمة كلمة وهي أن تظلل كل كلمة على حدى بالنقر المزدوج عليها ثم تكتبها مرة أخرى . الله يعينك . أتمنى لو توجد حلول أخرى من الأخوة الأفاضل . تحياتي .
  7. السلام عليكم تحتاج إلى لصق هذا الكود في الموديول الخاص بالصفحة : Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Column = 1 Then Cells(Target.Row, 2) = Now() End If End Sub مع ملاحظة أنك تستطيع أن تعدل التالي : 1 هو رقم العمود الذي ستحدث فيه مبلغ الإيداع 2 هو رقم العمود الذي ستحفظ فيه الوقت . وملاحظة أن الأعمدة تبدأ برقم 1 والمرمز بـ A . لو سألت أين تضع الكود فسوف تفعل التالي : من القائمة سوف تختار Tools ثم Macro ثم Visual Basic Editor إذا الـ Project Explorer غير منشط فمن الـ View ستختاره وستظهر كل الصفحات على يسار الشاشة ، منها بالنقر المزدوج على الصفحة المطلوبة ثم ستقوم بلصق هذا الكود . تحياتي .
  8. السلام عليكم معلومة جديدة أخي محمد . كنت أبحث عنها كثيرا حيث كنت استخدم مثيلها في لغة أخرى بدالة أخرى Delay(1000) وكنت استعيض عنها في الأكسس بعمل تكرار loop . تحياتي .
  9. السلام عليكم كذلك يمكن استخدام دالة Format وذلك كالتالي : =Format(Date(),"ddd") أو للأسماء الكاملة كالتالي : =Format(Date(),"dddd") تحياتي .
  10. السلام عليكم الباركود هو صورة أو شكل مشفر لقيمة مخزنة عندك أصلا كرقم سلعة أو رقم موظف وهكذا . آمل قراءة هذا الموضوع : http://www.officena.net/ib/index.php?showtopic=745 تحياتي .
  11. السلام عليكم بكل تأكيد كما قلت . تحياتي .
  12. السلام عليكم أخي محمد ، طريقة أخرى للإخبار عن آخر مسلسل تم إضافته : http://www.officena.net/ib/index.php?act=S...findpost&p=4203 تحياتي .
  13. السلام عليكم من وجهة نظري أن السداد بهذه الطريقة يصعب ارتباطه مباشرة بالفاتوة ، لذا رأيت فصل جدول السداد عن جدول تسجيل القراءات . بالطبع يحتاج الجدول إلى نموذج تركته لك :) . لا أدري مع كثرة البيانات قد تتسبب دالة الجمع DSum في بطئ البرنامج . (قد يكون هناك حلول أخرى أفضل) ، بالنسبة لي لا أحب استعمال هذه الدوال . غيرت لك في العلاقات . جرب المثال واخبرنا . تحياتي . waterbill.zip
  14. السلام عليكم بعد إذن محمد أشارككم في هذا الإستعلام : لقد نسيت أن أضيف رقم العميل في الشرط وتم التعديل : SELECT tbl_Readings.BillNo, tbl_Readings.Customer_ID, tbl_Readings.Date, tbl_Readings.Current_Readings, DMax("Current_Readings","tbl_Readings","Customer_ID=" & [Customer_ID] & " and " & "Current_Readings<" & [Current_Readings]) AS Previous_Readings, Nz([Current_Readings])-Nz([Previous_Readings]) AS Units, [Units]*0.001 AS fees, tbl_Readings.Other_fee, tbl_Readings.Amount_Received FROM tbl_Readings; تحياتي .
  15. السلام عليكم كود من الأخ Voodoo من الفريق العربي منتدى الـ VB هل من يستطيع تكييفه لمثالنا أعلاه ؟ . Option Explicit Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long Private Sub PrintTree() Dim TreeDC As Long TreeDC = GetDC(TreeView1.hwnd) Printer.Print "" BitBlt Printer.hdc, 0, 0, TreeView1.Width / 15, TreeView1.Height / 15, TreeDC, 0, 0, vbSrcCopy Printer.EndDoc End Sub نسيت أن أنوه أن هذا الكود لطباعة الشجرة :d . تحياتي .
  16. السلام عليكم محاولة قديمة ، لازلت أرى أنها منطلق الحماية التي ننشدها . هناك إجراء في Module1 لصنع الكود الخاص بأي نموذج قم باستدعائه . قم بفتح الـ Debug Window ونسخ الكود ولصقه في النموذج . بعد ذلك قم بتغيير أي اسم لآي أداة وحاول فتح النموذج مرة أخرى . تحياتي . Protection.zip
  17. السلام عليكم كتب أبو هاجر : أخي محمد يبدو أن محاولات المزيني ورضا عقيل ومحاولاتك كلها تسير في اتجاه واحد وكلها ستخسر أمام ذلك البرنامج المذكور أعلاه . لذا أرى أن نفكر في حلول أخرى بعيدة عن فكرة الإخفاء والتجميد . فهل من أفكار جديدة ؟ تحياتي .
  18. السلام عليكم أخي أشرف .. ذكرتني بالمشاريع الجماعية للفريق العربي :d ، خذها مني واترك عنك التحاليل والخطوات النظرية وترجمها فورا إلى تصميم للجداول والعلاقات . صدقني سوف يكون التفاعل معك أكبر . لقد فتحت الملف وبمجرد رأيته أغلقته قبل أن أقرأه ، ولو حاولت قراءته سوف أجهد نفسي في التركيز ولن أستطيع أن أكون فكرة واضحة عنه . رأيي صوت واحد فلا يؤثر على ما تود فعله ولا تتردد مقابل الرأي الآخر . تحياتي .
  19. السلام عليكم هذا مثال لأخي محمد طاهر ، كيفته ليتناسب مع مطلبك . آمل أن يفي بالمطلوب . تحياتي . YearDmax_2000.zip
  20. السلام عليكم اخواني الأعزاء جميعا .. أود أن أنوه أني هنا في الموضوع مشارك كغيري في إبداء الرأي وبطرح تجربتي . فآمل أن لا يزعل أحد علي وخصوصا الأخوين ha98 و أبو شاهر . فالحقيقة أنا لا أقوم عادة بشرح أمثلتي في مواضيعي فكيف بي أن أقوم بشرح برنامج متكامل قد اعتذرت عن عرضه ، ومع ذلك أنا وضعت أمامكم أصعب كود قمت بكتابته في هذا البرنامج . ولكن أود أن أجيب لمن تاه في دوشة الكلام أن هذه الأداة حتى تستفيد منها فمن المؤكد أنت تحتاج إلى ملصق أو بطاقة تحتوي على رسم الباركود وكذلك أنت في حاجة إلى قارئ الباركود حتى تتمكن من قراءة هذا الملصق :d . أود لو يقوم أحدكم بتصميم نموذج يحتوي فقط على خانة رقم الموظف وليسمه txtBadgeNo ثم يقوم بلصق الكود الذي وضعته سابقا وليقم بالتجارب ويخبرنا بالنتائج وسوف أتواصل معكم بحل أي مشكلة تنتج عن الكود . تحياتي .
  21. السلام عليكم أعتقد والله أعلم أن ما تفضل به الأستاذ امير عاطف صحيح أي "الإعدادات الإقليمية" وخصوصا اللغات حيث أنه حصلت معي هذه المشكلة عدة مرات وذلك بعد التعديل أو عمل إعادة تنزيل اللغة ولم أتوصل لسبب مقنع أو مبرر علمي نستطيع معه أن نتفادى هذة المشكلة مستقبلا . عموما أعتقد المشكلة تحدث مع بعض الأدوات كأداة النموذج الفرعي Sub Form Control ، جرب احذف هذه الأداة ثم افتح النموذج فإذا عمل بدون مشاكل فما عليك إلا إضافة هذه الأداة من جديد وإلا حاول مع أداة أخرى واحدة بعد أخرى . تمنياتي لك أخي الوارث والجميع بالتوفيق . تحياتي .
  22. السلام عليكم البصمة وما أدراك .. لقد قامت إحدى الشركات بعمل تجربة واستدعينا 5 موظفين من مختلف الإدارات والنتيجة كانت مذهلة حيث فشل الجهاز بالتعرف على بصمة 3 من 5 !!. ولكن يوجد بديل لنفس الفكرة تقريبا وهي قارئ كف اليد وهي أفضل بكثير من البصمة حيث هنا يقوم الجهاز بالتعرف على قياس اليد وليس البصمة ، ولكن يبقى هناك نسبة خطأ في التعرف على الكف كذلك . عموما يبقى الباركود في نظري أفضل الحلول . - سرعة فائقة . - لا تحتاج إلى أجهزة إضافية . - لا صيانة . - طباعة البطاقات من خلال طابعة دسك جت ( يعني التكلفة لا تذكر ) . تحياتي .
  23. السلام عليكم هكذا تتضح : NullID = (Nz(Me.id) = "") وتتضح هنا أكثر : NullID = _ (Nz(Me.id) = "") وهنا الوضوح كله :) : NullID = IIf(Nz(Me.id) = "", True, False) تحياتي .
  24. السلام عليكم الأحداث لمعرفة الدخول من الخروج وذلك بعد أن أضيف علامة + للدخول و - للخروج على رقم الموظف في البطاقة فقط وأقوم بتغطية العلامات عند الطباعة . علما أن أرقام الموظفين المبني عليها الكود تتكون من 3 خانات رقمية فقط . فارق الوقت والمعرف هنا بالـ Gap ممكن يختلف من جهاز لآخر ، قد يحتاج لتقليله أو زيادته . Option Compare Database Dim InTime As Single Const Gap As Double = 0.02 Private Sub txtBadgeNo_BeforeUpdate(Cancel As Integer) Select Case Right(Me.txtBadgeNo.Text, 1) Case "+" Me.GrpInOut = 1 Me.txtBadgeNo = Left(Me.txtBadgeNo.Text, Len(Me.txtBadgeNo.Text) - 1) Case "-" Me.GrpInOut = 2 Me.txtBadgeNo = Left(Me.txtBadgeNo.Text, Len(Me.txtBadgeNo.Text) - 1) End Select End Sub Private Sub txtBadgeNo_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then If Timer - InTime > Gap Then Me.txtBadgeNo.Tag = "" Me.txtBadgeNo.Tag = Right(Me.txtBadgeNo.Tag, 4) Me.txtBadgeNo.Text = Me.txtBadgeNo.Tag Me.txtBadgeNo.Tag = "" End If End Sub Private Sub txtBadgeNo_KeyPress(KeyAscii As Integer) Select Case Chr(KeyAscii) Case "0" To "9", "+", "-" If Me.txtBadgeNo.Tag = "" Then InTime = Timer If Timer - InTime <= Gap Then Me.txtBadgeNo.Tag = Me.txtBadgeNo.Tag & Chr(KeyAscii) InTime = Timer Else Me.txtBadgeNo.Tag = Chr(KeyAscii) InTime = Timer End If Case Else Me.txtBadgeNo.Tag = "" End Select End Sub تحياتي .
  25. السلام عليكم الأسئلة لأخي محمد : لا ، لا أداة مع الماسح واستخدمت الأداة السابقة . تم اختيار قارئ عن طريق النت وتم التركيز على أنه يمكن استخدامه بحمله باليد ويوضع على طاولة ويعلق على الجدار كذلك . حساب الفرق عن طريق حدث On Key Press . السؤال للأخ أبو شاهر : الرد للأخ محمد طاهر : السؤال للأخ ابن مسقط : أكسسسسسسسسسس وبس :) تحياتي .
×
×
  • اضف...

Important Information