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

نجوم المشاركات

  1. Foksh

    Foksh

    الخبراء


    • نقاط

      6

    • Posts

      2,155


  2. مهند 2002

    مهند 2002

    02 الأعضاء


    • نقاط

      2

    • Posts

      57


  3. kanory

    kanory

    الخبراء


    • نقاط

      2

    • Posts

      2,256


  4. Barna

    Barna

    الخبراء


    • نقاط

      2

    • Posts

      980


Popular Content

Showing content with the highest reputation on 20 ينا, 2024 in all areas

  1. مشاركة مع اخي الاستاذ @محمد احمد لطفى في حدث عند تحميل النموذج ضع هذا الكود ... مع مسح الدالة الموجودة في مربع نص العمر بالسنوات Dim intH, years As Integer intH = Int(DateDiff("m", date_naissance, Date)) + _ (Date < DateSerial(Year(Date), Month(Date), Day(date_naissance))) years = Int(intH / 12) نص22 = years
    2 points
  2. الاستاذ هاني المحترم اشكرك بالتوفيق
    2 points
  3. السلام عليكم تكثر الحاجة الى اخراج تقرير حسب حقول محددة يختارها المستخدم وهذا الباب تم التطرق اليه في هذا المنتدى ومن يبحث يجد الكثير .. علما اني قد استفدت واخذت من تلك المواضيع فما انا الا ناقل . ورب ناقل علم الى من هو اعلم منه . وحتى يكون هذا الموضوع مرجع مختصر لكيفية تصميم واعداد التقرير لذا عملت على اعداد مثال صغير وهو عبارة عن جدول ونموذج وتقرير اولا : عمل قائمة في النموذج يتم فيها عرض حقول الجدول عند تحميل النموذج ... وهذه الاكواد هي المسؤولة : Private Sub Form_Load() Dim dbs As DAO.Database Dim tbl As DAO.TableDef Dim sCaption As String DoCmd.Restore Set dbs = CurrentDb Set tbl = dbs.TableDefs("table1") For Each fld In tbl.Fields sCaption = "" On Error Resume Next sCaption = fld.Properties("Caption") On Error GoTo 0 lstFields.AddItem fld.Name & ";" & sCaption Next fld Set dbs = Nothing Set tbl = Nothing End Sub ثانيا عملت زر لإعداد الحقول في التقرير ثم فتحه ، وخلف هذا الزر يتم تنفيذ هذه الشفرة Dim i As Integer Dim txt As TextBox Dim lbl As Label Dim intSelectedCount As Integer Dim lngWidth As LoadPictureConstants Dim intSelectedNo As Integer With lstFields If .ItemsSelected.Count = 0 Then MsgBox "يجب اختيار حقل واحد على الأقل", vbExclamation, "خطأ" Exit Sub End If DoCmd.OpenReport "Rep1", acViewDesign, , , acHidden intSelectedCount = .ItemsSelected.Count lngWidth = Reports("Rep1").Width / intSelectedCount Reports("Rep1").Section("PageHeaderSection").Height = 310 Reports!Rep1!Label2.Caption = Nz(Me.Textlabl) Reports("Rep1").Section("Detail").Height = 310 intSelectedNo = 0 For i = 0 To .ListCount - 1 If .Selected(i) Then Set lbl = CreateReportControl("Rep1", acLabel, acPageHeader, , , intSelectedNo * (lngWidth + 50), 5, lngWidth, 300) lbl.Caption = .Column(1, i) lbl.BackStyle = 1 lbl.BackColor = RGB(200, 200, 200) lbl.BorderStyle = 1 lbl.FontBold = True lbl.TextAlign = 2 Set txt = CreateReportControl("Rep1", acTextBox, acDetail, , .Column(0, i), intSelectedNo * (lngWidth + 50), 5, lngWidth, 300) txt.BorderStyle = 1 txt.TextAlign = 2 intSelectedNo = intSelectedNo + 1 End If Next i End With DoCmd.OpenReport "Rep1", acViewReport ملحوظات : جعلت زر الخروج في التقرير يغلق التقرير ( من غير حفظ ) متجاوزا رسالة تأكيد الحفظ حفظ التقرير يسبب تراكم الحقول المصنوعة داخل الكود .. ومن ثم تظهر المشكلات والأخطاء ختاما لا تنسوني من دعواتكم الصالحة واتمنى ان تجدوا فيه الفائدة والمتعة اختيار حقول التقرير.rar
    1 point
  4. السلام عليكم ورحمة الله وبركاته ، أخواني وأساتذتي ومعلمينا ( دون استثناء ) اليوم جئتكم بفكرة جديدة وأعتقد أنه لم يسبقني أحد بهذا الطريق ؛ وهو إضافة اختيار واجهة اللغة إلى تطبيقات وبرامج ومشاريع الآكسيس بطريقة جديدة وتقدروا تقولوا 2024 في البداية سأقوم بشرح المطلوب داخل القاعدة التي سيتم التطبيق عليها ، أولاً :- جدول واحد فقط يحتوي على حقل واحد فقط أيضاً وسنسميه بـ SettingsTable ، والحقل الذي بداخله هو Language من نوع نصي ( Text ) . ثانياً :- نموذج Settings وهو طبعاً ليس له مصدر سجلات . وبداخله كومبوبوكس Combo box سيكون اسمه cboLanguage نوع مصدر بياناته Value List ؛ ومصدر بياناته القيم التالية ( "العربية";"English" ) . ثالثاً :- بجانب قاعدة البيانات سنقوم بإنشاء مجلد جديد وسيتم تسميته بـ Language . الآن خطوات العمل :- الموديول Module :- قم بإنشاء Module جديد وسمه بـ Set_Language ؛ وهو مفتاح العمل والذي من خلاله سنعتمد على جلب الترجمة من الملفات التي سنقوم بإنشائها لاحقاً . وهذا الكود مع الشرح الكامل له بين السطور . Option Compare Database Option Explicit ' المتغير العام لتخزين اللغة الحالية Public CurrentLanguage As String ' تحديث اللغة الحالية Public Sub UpdateLanguage() On Error Resume Next ' احصل على اللغة المحددة من جدول الإعدادات CurrentLanguage = DLookup("Language", "SettingsTable") ' قم بتحديث العلامات في جميع النماذج UpdateLabelsInAllForms End Sub ' تحديث العلامات في جميع النماذج Private Sub UpdateLabelsInAllForms() Dim frm As AccessObject ' تحديث العلامات في جميع النماذج المحملة For Each frm In CurrentProject.AllForms If frm.IsLoaded Then UpdateLabelsInForm Forms(frm.Name) End If Next frm End Sub ' تحديث العلامات في نموذج محدد Private Sub UpdateLabelsInForm(frm As Object) Dim arFile As String, enFile As String Dim arLabels() As String, enLabels() As String Dim i As Integer ' احصل على ملف اللغة العربية واللغة الإنجليزية arFile = GetLanguageFilePath("Arabic.txt") enFile = GetLanguageFilePath("English.txt") ' اقرأ الملفات واملأ المصفوفات بالنصوص المترجمة arLabels = Split(ReadFile(arFile), vbCrLf, -1) enLabels = Split(ReadFile(enFile), vbCrLf, -1) ' قم بتحديث العلامات في النموذج For i = 0 To UBound(arLabels) UpdateLabel frm, "Label" & CStr(i + 1), arLabels(i), enLabels(i) UpdateLabel frm, "Command" & CStr(i + 1), arLabels(i), enLabels(i) Next i End Sub ' احصل على مسار قاعدة البيانات الحالية Private Function GetDatabasePath() As String Dim dbPath As String dbPath = CurrentDb.Name GetDatabasePath = Left(dbPath, InStrRev(dbPath, "\")) End Function ' احصل على مسار ملف اللغة Private Function GetLanguageFilePath(fileName As String) As String GetLanguageFilePath = GetDatabasePath() & "Language\" & fileName End Function ' اقرأ ملف النص وارجع النص كنص نصي Private Function ReadFile(filePath As String) As String Dim fileNumber As Integer fileNumber = FreeFile Open filePath For Input As fileNumber ReadFile = Input$(LOF(fileNumber), fileNumber) Close fileNumber End Function ' تحديث علامة محددة في النموذج بناءً على اللغة الحالية Private Sub UpdateLabel(frm As Object, labelName As String, arabicText As String, englishText As String) On Error Resume Next ' قم بتحديث العلامة بناءً على اللغة الحالية frm.Controls(labelName).Caption = IIf(CurrentLanguage = "العربية", arabicText, englishText) On Error GoTo 0 End Sub * ملاحظة :- سنعتمد هنا على طريق بسيط جداً وهو المسميات في النماذج ، فمثلاً لو انشأنا زر في نموذج ما وكانت تسميته Caption هي حفظ وكان اسم الزر Command1 ؛ فعند الترجمة سيصبح كل زر في البرنامج باسم Command1 هو بمثابة زر الحفظ وستكون ترجمته Save ؛ لذا سنعتمد طريقة توحيد المسميات في النماذج وهذا سيجعل الأمر سهلاً جداً للصيانة ، وطبعاً لا يمكن أن يكون لعنصرين ( كائنين ) في النموذج لهما نفس الإسم . رابعاً :- العودة إلى نموذج Settings الذي تم التحدث عنه في النقطة ( ثانياً ) ؛ سنقوم بدايةً باستكمال إنشاء الأكواد الخاصة بتغيير اللغة ، قبل الأحداث للـ Combo Box والنموذج . سنقوم بإدراج هذه الأكواد الثلاثة البسيطة :- ' تحديث العناصر في النموذج بناءً على اللغة المختارة Private Sub UpdateLanguageForControls() On Error Resume Next Dim ctrl As AccessObject For Each ctrl In Me.Controls ' يمكنك هنا إضافة العناصر الأخرى التي تريد تحديثها بناءً على اللغة ' مثلا: If TypeOf ctrl Is ComboBox Then Next ctrl End Sub ' حفظ اختيار اللغة في جدول SettingsTable Private Sub SaveLanguageChoice() CurrentDb.Execute "UPDATE SettingsTable SET Language='" & Me.cboLanguage & "'" End Sub ' تغيير اللغة وتحديث العناصر ذات الصلة Private Sub ChangeLanguage(selectedLanguage As String) CurrentDb.Execute "UPDATE SettingsTable SET Language='" & selectedLanguage & "'" UpdateLanguageForControls End Sub وفي حدث عند الفتح للنموذج سنقوم بإدراج هذا الكود :- ' حدث يتم تنفيذه عند فتح النموذج Private Sub Form_Open(Cancel As Integer) UpdateLanguage End Sub وفي حدث عند التحديث للكومبوبوكس سندرج الكود التالي :- ' حدث يتم تنفيذه بعد تحديث اختيار اللغة من ComboBox Private Sub cboLanguage_AfterUpdate() Dim response As VbMsgBoxResult Dim Language As String ' احصل على اللغة المحددة من ComboBox Language = Me.cboLanguage.Value ' قم بتحديد الرسالة بناءً على اللغة المختارة If Language = "العربية" Then response = MsgBox("هل ترغب في تغيير اللغة إلى العربية؟", vbQuestion + vbYesNo, "التأكيد") ElseIf Language = "English" Then response = MsgBox("Do you want to change the language to English?", vbQuestion + vbYesNo, "Confirmation") End If ' قم باتخاذ الإجراء المناسب بناءً على رد المستخدم If response = vbYes Then SaveLanguageChoice Application.Quit Else SaveLanguageChoice DoCmd.Close End If End Sub الآن نأتي لأهم نقطة في هذا الموضوع ، ألا وهي . أين ستكون الترجمة ؟ طبعاً قمنا سابقاً بإنشاء المجلد Language بجانب قاعدة البيانات ، الآن سنذهب إليه وسنقوم بإنشاء ملفين نصيين Text الأول Arabic.txt ، والثاني English.txt . في الأعلى افترضنا انه لدينا في النموذج زر اسمه Command1 والـ Caption له كانت حفظ ، الآن سنقوم بكتابة المسمى بالعربي وهو حفظ في ملف النص Arabic ، وفي الملف الثاني English سنكتب Save وهو أول أمر قمنا به كتجربة ( لاحظ أن Command يتبعها الرقم 1 ) وعليه فأن أي مسمى Command1 في أي نموذج سيكون اسمه حفظ أو Save عند اختيار الإنجليزية . وفي النهاية سأترك مرفق يحتوي تطبيق لما تحدثنا به سابقاً . والمتابعة لأي استفسار أو توضيح Change Language.zip
    1 point
  5. جرب وإذا تكرمت اعطيني النتيجة حتى يتم تصنيف الملف في مكتبتي
    1 point
  6. تسلم ايدك اخويا العزيز الغالي @Foksh
    1 point
  7. بالنسبة لكلمة المرور في القاعدة المحمية .. الكود ده بعد التعديل في زر ( اختيار قاعدة البيانات المصدر ) Private Sub CmdChosePath_Click() On Error GoTo ErrHandler Dim fDialog As Office.FileDialog Dim filepath As String Dim db As DAO.Database Dim tdf As DAO.TableDef Dim password As String Set fDialog = Application.FileDialog(msoFileDialogFilePicker) With fDialog .AllowMultiSelect = False .TITLE = "Please select one Item" .Filters.Clear .Filters.Add "All Files", "*.*" .Filters.Add "Access Database Files", "*.accdb;*.mdb" If .Show = True Then filepath = .SelectedItems(1) password = InputBox("Enter the database password:", "Password") Me.MdbPath = filepath Set db = OpenDatabase(filepath, False, False, ";PWD=" & password) DoCmd.OpenForm "List_Tables" [Forms]![List_Tables]![MdbPath] = Me.MdbPath [Forms]![List_Tables]![Lst_Tables].RowSource = "" For Each tdf In db.TableDefs If Left(tdf.name, 4) <> "MSys" Then [Forms]![List_Tables]![Lst_Tables].AddItem tdf.name End If Next tdf db.Close End If End With Exit Sub ErrHandler: MsgBox "You clicked Cancel in the file dialog box." Me.MdbPath = "" End Sub
    1 point
  8. الجداول اللي عايز تستوردها في قاعدة بيانات مقفلة بكلمة سر ؟
    1 point
  9. هذه مشاركتي البسيطة أخي @سامر محمود VACATIONS223.zip
    1 point
  10. مشاركة مع اساتذتي الكرام ........ استبدلها بهذا فقط =Int(DateDiff("d";[date_naissance];Date())/365.25)
    1 point
  11. الله يبيض وجهك ويحفظك ويطول عمرك يا عزيزي ألف شكر
    1 point
  12. وعليكم السلام ورحمة الله ..... اولا : تحتاج ثلاث مخازن طبعا اقصد برمجيا ( مخزن للمواد الخام - مخزن للإنتاج - مخزن مستودع للتوزيع ) ... وكل مخزن من هذه المخازن يعتبر مخزن مستقل اي تكون لها كل الجداول والنماذج والتقارير الخاصة بها ... ( موردين _ اصناف _ مشتريات _ إلخ ) ثانيا : تدخل المواد الخام في مخزن المواد الخام .... وكذلك المنتجات فمثلا ( منتج مربى توت ) >>>> تقدر لها بالتفصيل ما يحتاجه هذا المنتج على مستوى ( العلبة - الكرتون - الطبلية مثلا ) من مواد خام ( مثلا سكر 250 جرام - توت 250 جرام - برطمان أو قارورة واحدة .... وهكذا ) هذا بالنسبة للعلبة واذا كانت الوحدة كرتون نفس الطريقة ........... ثالثا : يتم استيراد المواد الخام من خلال مخزن المواد الخام >>>>> ثم تصديرها الى مخزن الإنتاج بالاليه المذكورة سابقا يعني ( كم عدد الطبليات المطلوب انتاجاها مثلا 100 طبلية ) اذن كم من المواد الخام المطلوبة للإنتاج حسب ما هو مسجل مسبقا في جدول برنامج مخازن المواد الخام >>>>> بعد ان يتم تسلمها وقيدها في برنامج مخزن الإنتاج >>> تم التصنيع >>> يتم نقلها الى برنامج مخزن التخزين ( المستودع ) ليتم التوزيع ايضا بآلية التوزيع في المستودعات ( هذا بشكل سريع للآليات ان لم انس شيئا منها .... والله أعلم ) بالتوفيق ..
    1 point
  13. في إحدى التجارب لي على ما تم طرحه في الموضوع ، قمت بتجربة لتجربة سابقة لي في التعامل مع ملفات الـ Dll الوهمية ( الملفات المُعاد تسمية لاحقتها 😅 ) . فمثلاً بعد تطبيق المسميات للعناصر باللغتين ( العربية ، الإنجليزية ) داخل ملفات Arabic.txt و English.txt قمت بتغيير لاحقة الملفين من txt إلى dll وحتى من داخل الأكواد في المديول في هذين السطرين :- ليصبحا بهذا التغيير :- GetLanguageFilePath("Arabic.dll") enFile = GetLanguageFilePath("English.dll") وقد كانت التجربة ناجحة 😀 بأن تم قراءة ترجمة المكونات المستهدفة لهذه الوظيفة . قد تكون الفكرة لغير المهتمين غير مجدية ؛ إلا أنها فكرة لحماية الملفات مؤقتا من أيدي العابثين 😅. إلا أنني وددت مشاركتكم أصوات ( بنات أفكاري ) . ودمتم بخير 🤗
    1 point
  14. وعليكم السلام تفضل أخي الكريم: Book1.xlsx
    1 point
  15. السلام عليكم بدأت فى تنفيذ هذا العمل بعد أن أعيانى البحث فى الوصول إلى تصميم مناسب لطبيعة العمل فى برنامج لإدارة مكتب المحامى ... ويلبى احتياجاتى كمحام ... ووصلت الى هذه الفكرة ؛ وبدأت التنفيذ بالفعل ووصلت إلى مرحلة الإختبار الحقيقى والشاق للبرنامج وجارى إتمام المشروع بإذن الله ... وكان هذا العمل فى صور مختصرة (( حاولت رفع ملف pdf لكن لم أتمكن لكبر حجمه بعد الضغط فعذرا )) وكان هذا العمل
    1 point
  16. أعتقد والله أعلم أن أضعف حماية لبرامج قواعد البيانات كانت من نصيب الأكسيس رغم أنه فى رأيي _ الذى لا يعتد به وسط هذا الصرح _ من أشملها كما أعتقد أيضا أن هذا القصور متعمد وإلا فلن نجد لبرامج فيجيوال استوديو من مبرمجين. ولنرجع الى الوراء قليلا وبالتحديد أكسيس 2003 أى منذ 16 عاما كان به إضافة فريدة رائعة سهلة تكاد تضاهى ماكان فى فيجيوال بيسك وقتها ألا وهى Shortcut Menu والتى تم إزالتها من الإصدارات التاليه والإستعاضة عنها بـعمل كود طويل عريض تقريبا بلغة XML لا أتذكر بالضبط حيث أنى حاولت العمل به والحمد لله فشلت 🤣🤩 .. ولنسأل أنفسنا ما هى الإضافات الجوهرية التى تم إضافتها الى الأكسيس منذ 2007 حتى 2019 غير التغيير فى الواجهات .. سنجد أنها قليلة جدا أعظمها فى نظرى تغيير حجم القاعدة من 1 الى 2 جيجا.ولذا نجد بيننا الى الآن من يعمل على أكسيس 2003. ما أقصده أنه يوجد إتجاه الى تحجيم قدرات الأكسيس لصالح منتجات قواعد البيانات الأخرى حيث أنه فى الأساس كان الأكسيس مصمما للإستخدام المنزلى والمشاريع متناهية الصغر ولكن أظهر ما لم يكن متوقعا من إنتشار وثبات وقوة. وبالنسبة لسؤالك أخى rey360 سأقول لك مختصر الطرق المغلقة فى الحماية المطلقة .. كان فيه واحد إسمه David Dworken دا كان لسة طالب فى كلية من كليات الحاسبات والمعلومات إخترق البنتاجون لمدة 15 ساعة تقريبا. لما يبقى فيه حماية مطلقة أمال الهاكر هيكلو عيش منين كل ده مجرد رأى ... أما الاستاذ @محمد صلاح1 فبقله .. واخد الموضوع على فين يا أبو الصلح وصلنا لتانى صفحة , 412 مشاهدة , 34 رد .... أكمل ولا هتقول انى منفسن 😍
    1 point
×
×
  • اضف...

Important Information