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

عمر ضاحى

الخبراء
  • Posts

    1,023
  • تاريخ الانضمام

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

  • Days Won

    5

كل منشورات العضو عمر ضاحى

  1. جرب هذا الكود Sub ChangeAccessClientSettings() ' Set "Move After Enter" setting (True/False) Application.SetOption "MoveAfterEnter", False ' Change to True if you want to enable it ' Set arrow key behavior (0 = Normal, 1 = Move the control) Application.SetOption "ArrowKeyBehavior", 0 ' Change to 1 if you want to move the control ' Set default record locking (0 = No Locks, 1 = Edited Record, 2 = All Records) Application.SetOption "DefaultRecordLocking", 0 ' Change to the desired value ' Set default commit behavior (0 = Deferred, 1 = Immediate) Application.SetOption "DefaultCommitBehavior", 0 ' Change to the desired value ' Set default open mode for databases (0 = Exclusive, 1 = Shared) Application.SetOption "DefaultOpenMode", 0 ' Change to the desired value ' Set navigation keys (True/False) Application.SetOption "UseNewRow", True ' Change to False if you don't want to use the new row ' Save the changes Application.SaveUserOptions End Sub
  2. وهذه لتوضيح الفكره يفضل ان يكون المجلد فى حرف D علشان يكون مسار البرنامج هو D:\DB\Start.accde لتجنب اخطأ الربط DB.rar
  3. وممكن ان يقوم المبرمج بغلق القاعدة الخلفيه والاماميه بكلمات سر ويعمل قاعدة ثالثه لتشغيل القاعدة الاماميه بالاعتماد على هذا الكود كود اخفاء الاكسيس او اظهارها (اختياري ومش هتفرق وجودها) Option Compare Database Option Explicit #If VBA7 Then Public Declare PtrSafe Function ShowWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long #Else Public Declare Function ShowWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long #End If '---------------------------------------------------(يخفي الشاشة بتصغيرها للأسفل ولكنها تظهر إذا عملت ماكسيمايز) Public Function HideAccess() Call ShowWindow(Access.hWndAccessApp, 2) End Function '---------------------------------------------------(لإظهار شاشة الأكسس) Public Function ShowAccess() Call ShowWindow(Access.hWndAccessApp, 9) End Function كود تشغيل قاعدة البيانات الاخري Private Sub Form_Load() Call HideAccess Dim acc As Access.Application Dim db As DAO.Database Dim strDbName As String strDbName = CurrentProject.Path & "\" & "FFFF" & ".accdb" Set acc = New Access.Application acc.Visible = True acc.OpenCurrentDatabase strDbName, False, "1234" Set db = acc.CurrentDb() acc.UserControl = True Application.Quit End Sub على فرض ان القاعدة الاماميه باسم FFFF وان كلمة السر هي 1234 ويقوم باغلاق القاعدة الثالثه بتحويلها الى accde وبكده اعتقد هتكون الحمايه عاليه جدا وهيكون صعب كسر كلمة السر
  4. الموضوع ان شاء الله فكرته بسيطه (لكن الموضوع متشعب وكبير واكيد هيكون من الصعب احد عمله لك كله مره واحده) اولا لازم تتخيل شكل القيد (ويكون هناك المعلومات كاملة مثل هل ببتعامل مع الضريبه ؟ هل عندك شجرة الحسابات مظبوطه وتعرف الدائن والمدين وتعرف متي يكون الحساب دائن ومتي يكون الحساب مدين) نيجي لطريقة التنفيذ اولا احنا هنا هنستخدم استعلامات الاكسيس (الالحاقي والحذف والتعديل) وكل عمله قد تطر الى عملها اكثر من مره حيث من المعروف ان اي قيد بسيط يتكون من سطرين فاكثر فكل سطر فى القيد له استعلام الحاقي خاص به مثال :- (المثال هنا لتقريب الفكره وهتحتاج مراجعة المحاسبين عندك حتى يكون شكل القيد سليم) ( ايضا هل انت شغال بنظام الجرد الدوري ام بالمستمر لان شكل القيد بيختلف) عندي مثلا فاتورة مشتريات قيمتها 1150 ريال منها 150 ريال ضريبه الشكل الطبيعي للقيد (والله اعلم قد اكون مخطئ) هذا القيد للمشتريات ( فيه 5 اسطر اي هيكون معنا 5 استعلمات الحاقي وفى حال التعديل على الفاتورة هيكون معنا 5 استعلمات تحديث ايضا وفى حال الحذف هيكون معنا استعلام حذف معياره رقم القيد ) انا عن نفسي باقوم بتسجيل الفاتورة دون قيود بعمل زر يقوم بحذف جميع البيانات فى جدول القيود (الخاصه بالفواتير) وعمل الحاق بالبيانات كلها (الفواتير كلها مره واحده) هذه العمليه باعملها لما اكون محتاج اعمل ميزانيه او ارباح وخسائر ....... ولتبسيط فكرة الاستعلام فى السطر الاول (هتعمل استعلام الحاقي الى جدول قيود الفواتير مثلا هتجيب اجمالى الفاتورة وتضع قيمته فى جانب الدائن وفى البيان هتكتب مثلا عبارة فاورة رقم : وباقى البيانات ياخذها من الفورم وهكذا طبعا مع ملاحظه ان هناك فواتير دون ضريبه وفواتير اجله ونقديه وووو لهذا فانت هتحتاج اولا عمل ملف اكسيل بجميع انواع الفواتير للمشتريات ومرتجع المشتريات بحالاتهم (الاجله والنقدية والجذء نقدية) وايضا نفس القصه مع المبيعات بحالاتهم (الاجله والنقدية والجذء نقدية) علشان تقدر تنظم القيود لهذا الموضوع محتاج جهد ووقت لان تقريبا قد تصل عدد الاستعلامات الى 70 استعلام علشان تجعل الموضوع بشكل الى وقد يزين عن هذا بكثير حسب الحالات والموضوع قد يطول معك لذا كن صابرا وبالتوفيق ان شاء الله
  5. ينفع تعمل لي حساب عليه لان دولتى غير متاح لفتح حساب عليه
  6. هو تقريبا محتاج حد يساعده على تصميمه انا حاولت لكن لقيت فيها لغبطه مش عارف احلل بياناتها فقولت انتظر واتعلم
  7. هل هذا ما تريد ؟ انظر الى المرفق ولتوضويح ما تم قمت بعمل حدث للقائمة بعد التحديث If C = "08سا-10سا" Then dim1.ControlSource = "dim_w_8" dimA.ControlSource = "dim_m_8" lun1.ControlSource = "lun_w_8" lunA.ControlSource = "lun_m_8" mar1.ControlSource = "mar_w_8" marA.ControlSource = "mar_m_8" mer1.ControlSource = "mer_w_8" merA.ControlSource = "mer_m_8" jeu1.ControlSource = "jeu_w_8" jeuA.ControlSource = "jeu_m_8" Else dim1.ControlSource = "dim_w_10" dimA.ControlSource = "dim_m_10" lun1.ControlSource = "lun_w_10" lunA.ControlSource = "lun_m_10" mar1.ControlSource = "mar_w_10" marA.ControlSource = "mar_m_10" mer1.ControlSource = "mer_w_10" merA.ControlSource = "mer_m_10" jeu1.ControlSource = "jeu_w_10" jeuA.ControlSource = "jeu_m_10" End If خلاص كده ^_^ لا تنسي افضل اجابه ^_^ BASE.rar
  8. السلام عليكم ورحمة الله وبركاته كما هو موضح من العنوان عاوز كود يجلب لى الخطوط الموجوده فى النظام ويضعها لى فى قائمة منسدلة ثم اريد كود اخر يقوم بتطبيق هذا الخط الذى سوف اختا ره من القائمة على جميع النماذج عن طريق مناداة فى مديول هل يمكن تنفيذ هذه الافكار فى الاكسيس ؟ مرفق ملف للعمل عليه ForTest.rar
  9. الطريقه دي مش مشكله هو عاوز يظهر جميع البيانات و يقدر يظهر صنف معين اما الطريقه دي عادية هتظهر صنف واحد دائما
  10. المشكله انك اولا مش ضايف عامل التصفيه فى النماذج الفرعيه فكيف هيعمل التصفيه ؟ المشكله التى واجهتني هو هذا الاستعلام SELECT [item].[Item_Name], [item].[Item_Name] FROM [item] ORDER BY [Item_Name] UNION select 0, '***All item***' from item ORDER BY Item_Name; هنا القيمه 0 تدل على ***All item*** طبعا الحل المفترض فى النماذج الفرعيه جربت اضع هذا الشرط ' الحل الاول IIf([Forms]![on HandF]![Productid]<>0;[Forms]![on HandF]![Productid];([Purchase_Invoice_sub].[Item_Name])) 'الحل اثاني IIf([Forms]![on HandF]![Productid]<>0;([Purchase_Invoice_sub].[Item_Name]) Like [Forms]![on HandF]![Productid];([Purchase_Invoice_sub].[Item_Name])) كلهم يعطينى نفس الخطأ عند محاولت تغير القيمه فى القائمة المنسدله
  11. متااااابع فى صمت (لانى ايضا بدور على حل لهذه الاشكاليه )
  12. ممكن توضح اكثر يعنى ايه بيديك قراءة مختلفه ؟
  13. ما الغرض من عرض الجميع هل للطباعه ؟ لان المفترض عرض البيانات التى تخص الحالة اما لو لاستعلام عن الدفعات المتبقيه بشكل عام ده ممكن تعمله باستعلامات اخري سهله لكن الاهم اليى بناء الجداول انها تكون بناء سليم قابل للتطوير
  14. عملت لك ملف على السريع هتلاقى داخل الملف المضغوط 3 ملفات الاول قاعدة البيانات الاكسيس الثاني ملف خط الباركود (هتحتاج تسطبه فى الوندوز عندك علشان كل حاجه تكون مظبوطه) الثالث ملف الاكسيل انت طبعا لنا تحب تغير ملف الاكسيل اول حاجه لازم يكون اسم ملف الاكسيل هو " MyLabel.xlsx " بعدها تفتح قاعدة البيانات هذا للفائدة تم وضع كود اعادة ربط ملف الاكسيل علشان لو نقلت مكان البرنامج بشكل تلقائى يعرف يعيد ربط الاكسيل بالاكسيس طبعا الكود اخذته من استاذى @Moosak وهو Sub RelinkLinkedTable() Dim db As DAO.Database Dim tblDef As DAO.TableDef ' Set the path to the original Excel file Dim excelFilePath As String excelFilePath = CurrentProject.Path & "\" & "MyLabel.xlsx" ' Set the name of the linked table Dim linkedTableName As String linkedTableName = "MyLabel" ' Open the database Set db = CurrentDb() ' Get the TableDef object for the linked table Set tblDef = db.TableDefs(linkedTableName) ' Update the Connect property to relink the table to the original Excel file tblDef.Connect = "Excel 12.0;HDR=YES;IMEX=2;ACCDB=YES;DATABASE=" & excelFilePath ' Refresh the table to apply the changes tblDef.RefreshLink ' Close the database db.Close ' Cleanup Set tblDef = Nothing Set db = Nothing MsgBox "Linked table relinked successfully.", vbInformation End Sub Label.rar
  15. نصيحتى لك اولا اعمل جدول خاص باسماء اولياء الامور وبياناتهم منفصل وليكن جدول رئيسي واجعل فيه حقل معرف (تسلسل تلقائى اذا لم يكن لديك خبره فى التعامل مع الدوال وانشاء تسلسل خاص بك) وليكن ID اعمل جدول الخاص بمدفوعاتهم (هيكون جدول فرعي) هيكون فيه حقل رقمي(ليس مفتاح اساسى) وليكن LID وتربطه بالحقل التسلسل التلقائى من الجدول الرئيسي اعمل النموذج ونموذج فرعي النموذج الرئيسي هيكون فيه قائمة منسدلة مصدر بياناته اسماء اولياء الامور النموذج الفرعي هيكون مصدره استعلام من الجدول الفرعي لكن هناك هيكون فى معيار وهي قيمة الحقل (القائمة المنسدلة) من النموذج الرئيسي وهتروح عند حدث بعد التحديث فى القائمة المنسدلة وتعمل تحديث للنموذج الفرعي اذا كان النموذج الفرعي فى النموذج الرئيس ياسم SubFrmX1 مثلا هيكون الكود هكذا SubFrmX1.Requery وبكده هتظهر لك البيانات الخاصه فقط بولى الامر المحدد فقط وبناءا عليه ممكن تعمل الكثير
  16. المشكلة ان كل ما وجدة يتعامل مع حالتين فقط (البيع والشراء) لكم ما اريده ان يتعامل مع البيع والشراء والمرتجع البيع والمرتجع الشراء (4 حالات) حتى لما حبيت اطور الكود الموجود ما عرفت اظبطها خالصا وفعلا تهت فى الكود هذه هى مشكلتى فعلا انا بحاول اوصل لحل وان شاء الله سيهدينى ربي الي الحل او من يساعدنى على الوصول للحل ان شاء الله
  17. اولا تسلم ايدك على هذا العمل الرائع ثانيا لى سؤال اخر هل الكود ايضا ممكن يجلب لي الوقت من على موقع او سيرفر معين ؟
  18. بعد اذن الجميع اعمل جدول البرنامج اول ما يفتح يسجل تاريخ اليوم فيه لكن قبل ان يفعل ذلك يتحقق من تاريخ اليوم هل هو اكبر او يساوي اليوم ام لا اذا لا يظهر رساله تخبر المستخدم انه يجب ان يعيد ظبط التاريخ بالتاريخ الحقيقى لليوم (لانه تلاعب بالتاريخ فى الجهاز) اذا نعم يسجل اليوم بالساعه وبكده انت ضمنت عدم التلاعب بالتاريخ بعدها انت هتعمل الكود بتاعك للتحقق من انه لم يصل لتاريخ انتهاء الصلاحية اذا وصل لتاريخ انتهاء الصلاحية يظهر له رساله ان صلاحية البرنامج انتهت ويجب مراسلتك اذا لا يكمل عمل البرنامج وللتمديد هتعمل لك كود تكوين سيريل خاص بيك بالطريقه الخاصه بك على شكل معادلة مثلا او اى شكل تحبه وعند الضغط على التمديد اذا كان السيريل مطابق يقبل التمديد حسب ما انت ظبطه وممكن تبحث فى النت (اليوتيوب) هتلاقي الكثير من الطرق اختر ما يناسبك وعدل عليه بالطريقه التى تخصك
  19. باعتذر لحضرتك عن عدم توضيح النقطه دي لكن الفرق بين عقلية المعلم والتلميذ كبيره جدا والفجوه كبيره انت بتفكر بعقلية المعلم لذا تقوم بعرض الحل مع التوضيح لكيف الوصول للحل فشكرا لك
×
×
  • اضف...

Important Information