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

ابوخليل

أوفيسنا
  • Posts

    12,480
  • تاريخ الانضمام

  • Days Won

    233

كل منشورات العضو ابوخليل

  1. السلام عليكم احببت المداخلة لتبيين بعض النقاط العامة 1- كون المرفقات على صيغة mdb تضمن اطلاع ومشاركة اكثر من الاعضاء 2- بصورة عامة اي برنامج يعتمد اعتماد اساسي على جدول واحد او اثنين والبقية تكون خدمية 3- كثير من البرامج لا يوجد علاقات بين جداولها ، ولكن لضبط التحكم والسيطرة نضع هذه العلاقات من شرحك السابق سيرتكز برنامجك على جدولين : 1- جدول المريض ويشتمل على بياناته الثابتة 2- جدول فرعي للتحاليل التي تتم للمريض والطبيب المعالج والطبيب المحلل ونتيجتها والسعر بقية الجداول خدمية للانتقاء والاختيار بدلا من الكتابة مثل الاطباء واسماء التحاليل واسعارها ونحو ذلك
  2. بعد الرجوع الى مثالي السابق وتجربته وبعد الرجوع الى خصائص الدالة DatePart تبين لي : ان كل ما طلبت قد حققه الكود السابق في المشاركة رقم 8 حيث ان الدالة المذكورة تتضمن وسيطتين ( اول يوم في الاسبوع واول اسبوع في السنة ) DatePart(interval, date, [firstdayofweek], [ firstweekofyear]) فإذا لم نعمل هاتين الوسيطتين اصبحت الدالة ترجع قيمتين افتراضيتين القيمة الاولى = 1 وهو يوم الاحد القيمة الثانية=1 وهي البدء في الاسبوع الذي يأتي فيه شهر يناير آمل ان تتفحص المثال السابق وتبدل بين التواريخ بما يوافق السبت والاحد لترى النتيجة
  3. ممكن .. كذلك الاستاذ رمهان وافقك
  4. الاسبوع الافتراضي هو من الاحد وحتى السبت والسنة تحتوي على 53 اسبوعا الحل الأول كان حسب الطلب وهو لبرنامج مسابقات والبيانات فيه مؤقته لا تزيد عن شهر او شهرين يظهر فيه الاوائل خلال اسبوع ويتجدد كل اسبوع ، لذا لن يكون تغير السنة مشكلة
  5. صحيح .. لابد تنقل التركيز قبل الامر عدم تفعيل الزر بعد الحفظ2.rar
  6. ما شاء الله .. انت ابو الحلول وكأني استوحي ان في جعبتك شيئا ... وحين رجعت لتطبيق استفسارك على مثالي السابق عثرت على دالة تقوم مقام الصيغة السابقة وهي DatePart("ww";[DateM]) فجاءتني فكرة تطبيق هذه مع دالة iif فالحل الذي عندي سيكون هكذا : IIf(Year([datem])=Year(Date());DatePart("ww";[DateM])) ما رأيك ؟؟ UData3.rar
  7. وربي يحييك اخوي جعفر العفو ... ما علمت بها غير الساعة وقد كتبت الرد هناك
  8. السؤال غير واضح نوعا ما فحسب فهمي للسؤال سأجيبك بنحو ما جاء في مشاركتي الاخيرة
  9. ولماذا جدولين ؟ فقد ذكرت لك رأيي هنا ولكنك لم ترد ولم تناقش http://www.officena.net/ib/index.php?showtopic=60128
  10. شكرا لكم : تم فصل الموضوع بعنوان جديد مستقل
  11. ههههه .. ظريف .. واعذرني على هذه الغفلة والاجابة يسيرة وهي ان تضع كلمة المرور الخاصة بقاعدة الجداول داخل الكود الكود موجود في محرر نموذج البداية كالتالي : If CheckLinks("ضع كلمة المرور هنا") = False Then Call Quit End If
  12. الله المستعان ، كلامك صحيح فشكرا لك على التنبيه ، ولعل في اختلاف العناوين فائدة وازيدك من الشعر بيت : ان الرابط السابق الكود مع الشرح فيكون افضل والسبب بعدم وجود الشرح هنا انني سحبت الكود من برنامجي وقد ذكرت ذلك في اول المشاركة ما قصر اخونا جعفر مشكورا فقد وضع الروابط اللازمة بين الموضوعين هذا اذا كان المبرمج فقط من سيتعامل مع البرنامج وللعلم وهو يحدث دائما (في الشبكات) فيما لو كانت قاعدة الجداول على الخادم فلو حدث خلل في الشبكة فلن يخبرك اكسس بالمشكلة لذا يستحب اضافة عبارة تنبه الى احتمال ذلك داخل الرسالة الظاهرة
  13. شكرا لكم تم تعديل العنوان
  14. فقط قم بعمل حقل في جدول يأخذ قيمة اللون بدلا من المتغير vclr
  15. وهي الطريقة التي استخدمها في اعمالي وحدة نمطية وكود للربط داخل النموذج انسخ الكود التالي والصقه في وحدة نمطية عامة Public Function CheckLinks(ByVal strDBPassword As String) As Boolean On Error GoTo CheckLinksErr Dim tdf As TableDef Dim strNewMDB As String Dim fd As FileDialog For Each tdf In CurrentDb.TableDefs If UCase(Left(tdf.Name, 6)) <> "COMPAS" Then If Len(tdf.Connect) > 0 And tdf.Fields.Count = 0 Then If Len(strNewMDB) = 0 Then Call MsgBox("مطلوب قم بتحديده واختياره (اسم قاعدة الجداول لديك) ملف البيانات", vbCritical) Set fd = Application.FileDialog(msoFileDialogFilePicker) With fd .AllowMultiSelect = False .InitialFileName = CurrentDBFolder() .Filters.ADD "Access Database File (*.mdb)", "*.mdb", 1 .TITLE = "Select Back-End Data File" .ButtonName = "Link Tables" If .Show = False Then Exit Function Else strNewMDB = .SelectedItems(1) End If End With End If If (IsNull(strDBPassword) = True) Or (strDBPassword = "") Then tdf.Connect = ";DATABASE=" & strNewMDB Else tdf.Connect = ";DATABASE=" & strNewMDB & ";PWD=" & strDBPassword End If tdf.RefreshLink End If End If Next tdf CheckLinks = True CheckLinksDone: Exit Function CheckLinksErr: MsgBox "Error #" & err.Number & ": " & err.Description, vbCritical Resume CheckLinksDone End Function Public Function CurrentDBFolder() As String Dim strPath As String strPath = CurrentDb.Name Do While Right$(strPath, 1) <> "\" strPath = Left$(strPath, Len(strPath) - 1) Loop CurrentDBFolder = strPath End Function ثم الصق الكود التالي في حدث التحميل لنموذج البداية On Error Resume Next If CheckLinks("") = False Then Call Quit End If Dim tdfs As DAO.TableDefs Dim tdf As TableDef Dim sSourceDB As String Dim sBackupDB As String Dim backDBName As String Set tdfs = CurrentDb.TableDefs Set tdf = tdfs(tdfs.Count - 1) sSourceDB = Right(tdf.Connect, Len(tdf.Connect) - 10) backDBName = Dir(Mid(tdf.Connect, 11)) sBackupDB = Mid(tdf.Connect, 11, Len(tdf.Connect) - (Len(backDBName) + 10)) ' وفي المثال تطبيق للمقال ملحوظة : اذا لم يعمل المثال على الوجه الأكمل انظر في المكتبات link_be.rar
  16. لا فرق حيث ان اكسس يتعرف على نوع الكائن من اسمه فقط واليك ما طلبت من المقارنة بين المجموع الكلي ومجموع الفروع الرسالة للتنبيه فقط فقد يغفل المستخدم لذا جعلت الحدث في جميع الحقول يمكن الاكتفاء بحدث بعد التحديث للحقل الاخير فقط Database1-up3.rar
  17. تم التعديل واجابة السؤال الثاني If Me.Check1 = -1 Then Me.FindDelivery.Visible = True Me.FindDelivery = Date Else Me.FindDelivery = "" Me.FindDelivery.Visible = False End If Database1-up2.rar
  18. هدية لاسير الشروق خاصة ولجميع الاعضاء عامة تلوين خلفية جميع النماذج بأمر واحد مع امكانية توظيف الكود لتلوين كائنات وعناصر اخرى تلوين النماذج.rar
  19. الآن فهمت العمل انظر التعديل لم اغير شيئا في اكوادك السابقة وانما عملت على فلترة البيانات حسب معايير الحقول الظاهرة في النموذج ، اعتمادا على استعلام وجدول مؤقت الآن سيظهر في جدول المفقودات فقط الارقام المفقودة وفق المعايير في النموذج الاقرارات الناقصة4.rar
  20. حسب ما فهمت الاعداد محصورة بين 1 و 7 بناء على الحقول الثلاث التي ذكرتها انظر الآن لعل النتيجة صحيحة ايضا تم الالحاق الى الجدول الارقام المفقودة.rar
  21. الدالة DlookUp هي السبب الرئيس في بطء عملية البحث اليك طريقة اخرى سيكون البحث الآن على الجميع ، لترى الفرق في الأداء فقط انقل الاستعلام والنموذج الى برنامجك ووافنا بالنتيجة الاقرارات الناقصة3.rar
  22. المشكلة التي تواجهك انك لن تستطيع وضع معيار للسنة داخل النموذج لان النموذج يأخذ بياناته من طريقين مرتبطين الاول هو مصدر بيانات النموذج والثاني مصدر البحث والتصفية لذا يلزم جعل المعيار خارج النموذج وهذا ما تم عمله في التعديل المرفق آمل ان يفي بالطلب الاقرارات الناقصة2.rar
  23. تفضل آمل ان يحقق مطلبك Private Sub A_AfterUpdate() If (DLookup("B", "tbl1", "B=form!B")) Then MsgBox "هذا السجل مكرر " Undo End If End Sub Private Sub B_AfterUpdate() If Not IsNull(DLookup("A", "tbl1", "A=form!A")) Then MsgBox "هذا السجل مكرر " Undo End If End Sub NoDuplicates.rar
  24. الحل يتم بأكثر من طريقة اسهل وأقوى طريقة هو ان تجعل الحقلين مفتاحين جرب ووافنا بالنتيجة تنبيه : لاختيار اكثر من مفتاح : اضغط زر كنترول من لوحة المفاتيح ثم حدد السجلات المطلوبة ثم انقر بالزر الايمن واختر المفتاح No Duplicates.rar
×
×
  • اضف...

Important Information