-
Posts
2,794 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
103
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو Foksh
-
جرب الأمر Requery في حدث بعد التحديث لمربع النص . إن كانت النتائج تعرض في نموذج فرعي ومصدر بياناته الاستعاام المقرون بشرط القيمة في مربع النص هذا ، فسيكون الحدث بعد التحديث هو Me.SubForm.Requery حيث SubForm هو اسم النموذج الفرعي في النموذج الرئيسي. أو كما تفضل أستاذنا @kkhalifa1960 بضرورة ارفاق ملف.
-
أحسنت أخي الكريم ، بانتظار الشرح ، أو أنصحك بفتح موضوع جديد مستقل للشرح ، لتعم الفائدة أكثر 🥰💐
-
-
تقسيم التقرير حسب (حقل الحالة) موضح بالصور
Foksh replied to ahmed draz's topic in قسم الأكسيس Access
ما شاء الله ، تبين أن في المنتدى مبدعون لا نراهم في الساحة كثيراً ، إلا أن بصماتهم تبقى لامعة كأسمائهم أخي @بحار الاكسس 🥰 -
أشكرك استاذه حنان على مشاركتك فكرتي المتواضعة ، وباعتقادي يوجد حل طبعاً لتساؤلاتك ، اشوف حل واتابع معك مع العلم أنه لا يمكن حفظ القيم الجديدة في متغير ( زي ما حضرتك عارفة أكيد ) ، وإنما سيكون هناك مكان يتم فيه حفظ مواضع العناصر ( وهذا لا شك فيه ) وأعتقد انها جداول النظام ، أو التعديل في خصائص العناصر في وضع العرض للنموذج وليس عرض التصميم!! 🤗
-
لا شكر على واجب اخي الكريم @شريف كونكت .. في أقرب فرصة إن شاء الله اليوم نوصل لحل في التقرير عند وضع الطباعة 🤗
-
مطلوب تصميم برنامج ورديات شهرية لمحطات بترول
Foksh replied to abdo ahmed's topic in قسم الأكسيس Access
نرجو الإهتمام بالعنوان ليمثل وصف المشكلة وذلك إلتزاماً بقواعد المنتدى لتلافي إغلاق المواضيع. -
هو فعلاً انا لاحظت بالبطئ الذي ذكرته ، ولكن هذا ما خطر ببالي بناءً على تصميمك لطريقة عرض البيانات في النموذج الفرعي !! اذا أتيت بفكرة أخرى سأتابع معك ، والباب للمشاركات مفتوح على مصراعيه
-
لم اقم بالتجربة على التقارير فعلاً كونك لم تأتي بتحديد التقارير ، ولكن جرب انت واخبرنا بالنتيجة ، وأنا سأقوم بالتجربة غداً أيضاً ، وإن لم يتم الامر على التقارير سنقوم باللازم.
-
أخي الفاضل @jo_2010 .. لدي فكرة ، جربها وأخبرني بالنتيجة في حدث بعد التحديث للكومبوبوكس S_Tests استخدم هذا الكود للفلترة :- Private Sub S_Tests_AfterUpdate() Dim strFilter As String If IsNull(Me.S_Tests) Then strFilter = "" Else strFilter = "[Requests] Like '*" & Me.S_Tests & "*'" End If Me.Search_Sub.Form.Filter = strFilter Me.Search_Sub.Form.FilterOn = True Me.Search_Sub.Requery End Sub وفي حدث عند التحميل للنموذج استخدم الغاء فلترة النموذج الفرعي :- Private Sub Form_Load() Me.Search_Sub.Form.Filter = "" Me.Search_Sub.Form.FilterOn = False End Sub وهذا الملف بعد التعديل :- Laboratory_2024.accdb
-
اعتذر عن المتابعة 💐
-
يا صفاء ، الفورم الأول الحدث بعد التحديث ، الفورم التاني الحدث عند التغيير لقيمة مربعات النص الغير منضمة ،، وبالنبة للنقطة التانية ، غيري نوع المتغير Integer إلى Double . جربي واديني خبر
-
أنا مش فاهم ايه اللي انتي عايزاه بالظبط 😅 !!!!!! تقدري تخفيهم وتخلي مقاساتهم 0 ( طول وعرض ) . وعلى فكره ، الطريقتين شغالات ولكن كل وحدة في حدث مختلف 😁
-
على العموم ، من خلال تجربة سابقة لي في أحد برامجي ، جرب هذه الفكرة التي تتيح لك اختيار العنصر الذي تريد تحريكه ( مربع نص ، زر ، كومبوبوكس ) .... إلخ . بدايةً سنقوم بإنشاء مديول عام ولنفترض اسمه Drag_Drop وسيحتوي على هذا الكود البسيط :- Option Compare Database Option Explicit Public DragControl As Control Public XOffset As Single Public YOffset As Single Public Sub StartDrag(ctrl As Control, X As Single, Y As Single) Set DragControl = ctrl XOffset = X YOffset = Y End Sub Public Sub Dragging(X As Single, Y As Single) If Not DragControl Is Nothing Then DragControl.Left = DragControl.Left + (X - XOffset) DragControl.Top = DragControl.Top + (Y - YOffset) End If End Sub Public Sub EndDrag() Set DragControl = Nothing End Sub للتوضيح والشرح للمديول :- المتغير DragControl هو متغير من نوع Control يتم فيه تخزين العنصر الذي يتم سحبه حاليًا . المتغيران XOffset و YOffset هما من نوع Single وظيفتهما تخزن إحداثيات الماوس عند بداية عملية السحب . الدالة StartDrag التي ستعيد بدء عملية السحب للعنصر المحدد . حيث أنها تستقبل ثلاث معاملات [ ctrl (العنصر الذي يتم سحبه)، X و Y (إحداثيات الماوس في نقطة النقر) ] . الدالة Dragging التي تستخدم أثناء جر العنصر . حيث ستقوم بتحديث موقع DragControl (العنصر المحدد للسحب) بناءً على إحداثيات الماوس الحالية . وستستخدم XOffset و YOffset لضمان تحديث العنصر بالشكل الصحيح مع تحريك الماوس . الدالة EndDrag التي سوف تنهي عملية السحب بتفريغ قيمة DragControl ، مما يعني أنه لم يعد هناك عنصر يتم تحريكه . سنحتاج الجدول ControlPositions يتم تخزين قيم الموقع والإحداثيات لكل عنصر داخل أي نموذج . وسنحتاج إلى الحقول التالية ( ID و FormName و ControlName و ControlLeft و ControlTop ) . وهي بعد الحقل ID ترقيم تلقائي ( حقل لإسم النموذج ، وحقل لاسم العنصر داخل هذا النموذج ، وحقلين للإحداثيات ( اليسار والأعلى ) لكل عنصر . الآن في النموذج الذي سيتم التنفيذ عليه ؛ نقوم بوضع هذه الأكواد ( حجز المتغيرات والثوابت ، والإحداث عن الاغلاق والفتح ، والتحريك للماوس ) للنموذج فقط .. Option Compare Database Option Explicit Public DragControl As Control Public XOffset As Single Public YOffset As Single Public Sub StartDrag(ctrl As Control, X As Single, Y As Single) Set DragControl = ctrl XOffset = X YOffset = Y End Sub Public Sub Dragging(X As Single, Y As Single) If Not DragControl Is Nothing Then DragControl.Left = DragControl.Left + (X - XOffset) DragControl.Top = DragControl.Top + (Y - YOffset) UpdateControlPosition DragControl End If End Sub Public Sub EndDrag() Set DragControl = Nothing End Sub Private Sub Form_Load() Dim db As DAO.Database Dim rs As DAO.Recordset Dim strSQL As String Dim ctrl As Control Set db = CurrentDb Set rs = db.OpenRecordset("ControlPositions", dbOpenDynaset) Do While Not rs.EOF For Each ctrl In Me.Controls If ctrl.Name = rs!ControlName Then ctrl.Left = rs!ControlLeft ctrl.Top = rs!ControlTop Exit For End If Next ctrl rs.MoveNext Loop rs.Close Set rs = Nothing Set db = Nothing End Sub Private Sub Form_Close() Dim db As DAO.Database Dim rs As DAO.Recordset Dim strSQL As String Dim ctrl As Control Set db = CurrentDb Set rs = db.OpenRecordset("ControlPositions", dbOpenDynaset) strSQL = "DELETE * FROM ControlPositions WHERE FormName='" & Me.Name & "'" db.Execute strSQL, dbFailOnError For Each ctrl In Me.Controls If TypeOf ctrl Is Control Then strSQL = "INSERT INTO ControlPositions (FormName, ControlName, ControlLeft, ControlTop) " & _ "VALUES ('" & Me.Name & "', '" & ctrl.Name & "', " & ctrl.Left & ", " & ctrl.Top & ")" db.Execute strSQL, dbFailOnError End If Next ctrl rs.Close Set rs = Nothing Set db = Nothing End Sub Private Sub UpdateControlPosition(ctrl As Control) Dim db As DAO.Database Dim rs As DAO.Recordset Dim strSQL As String Set db = CurrentDb Set rs = db.OpenRecordset("ControlPositions", dbOpenDynaset) strSQL = "SELECT * FROM ControlPositions WHERE FormName = '" & Me.Name & "' AND ControlName = '" & ctrl.Name & "'" If Not rs.EOF Then rs.Edit rs.Fields("ControlLeft").Value = ctrl.Left rs.Fields("ControlTop").Value = ctrl.Top rs.Update Else rs.AddNew rs.Fields("FormName").Value = Me.Name rs.Fields("ControlName").Value = ctrl.Name rs.Fields("ControlLeft").Value = ctrl.Left rs.Fields("ControlTop").Value = ctrl.Top rs.Update End If rs.Close Set rs = Nothing Set db = Nothing End Sub Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Not Me.ActiveControl Is Nothing Then StartDrag Me.ActiveControl, X, Y End If End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then Dragging X, Y End If End Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) EndDrag End Sub الآن نأتي للأحداث الخاصة بالعناصر التي نرغب في منح المستخدم حرية تغيير مواقعها . وسأبدأ بالتنفيذ على ( مربع نص TextBox1 و زر Command10 ) فقط ، والباقي مجرد تكرار مع تغيير الأسماء للعناصر . Private Sub TextBox1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Form_MouseDown Button, Shift, X, Y End Sub Private Sub TextBox1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Form_MouseMove Button, Shift, X, Y End Sub Private Sub TextBox1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Form_MouseUp Button, Shift, X, Y End Sub Private Sub Command10_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Form_MouseDown Button, Shift, X, Y End Sub Private Sub Command10_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Form_MouseMove Button, Shift, X, Y End Sub Private Sub Command10_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Form_MouseUp Button, Shift, X, Y UpdateControlPosition Me.ActiveControl End Sub وهذا المرفق تنفيذ ما تم شرحه سابقاً Move And Drops.accdb
-
أخي شريف ، عندك كود !!! أين الكود ؟؟؟؟؟؟ المرفق السابق ملف MDE أي لا يمكن الوصول إلى الأكواد أو طريقة عرض التصميم !!!!!!!!!!!! وإذا كان المقصد من كلمة متشفرة = محمية بكلمة مرور فهذا شيء آخر يختلف عن ملف مقفل Accde أو MDE . على العموم انت تريد موضوع جديد من البداية وليس تعديل على الكود لعدم وجوده أساساً . بالنسبة لي سأرى ما يمكن فعله وأتابع معك في هذه الفكرة
-
عندك طريقتين للحل ، اختاري اللي يعجبك calc.accdb
-
بدايةً ارجو منك اخي الكريم @شريف كونكت الإلتزام بقوانين المنتدى ومن ضمنها وصف المشكلة في العنوان ، ثم ارفاق ملف حتى لو الكود مشفر 🤗
-
الجملتين عكس بعض يا @safaa salem5 وليه تلزمي نفسك بالحدث عند التغيير ؟؟؟ مجرد فكرة ، جربي الحدث بعد التحديث للحقلين Private Sub volume_AfterUpdate() Me.total = Nz(Me.volume, 0) * Nz(Me.conc, 1) End Sub Private Sub conc_AfterUpdate() Me.total = Nz(Me.volume, 0) * Nz(Me.conc, 1) End Sub مجرد فكرة 😅
-
كيف اعمل فاتورة بيع تملئ البيانات بالماسح الضوئي الباركورد
Foksh replied to feth's topic in قسم الأكسيس Access
أهلاً وسهلاً بك اخي الكريم @feth بداية للتفريق بين الباركود ، ورمز الإستجابة السريعة QR . باعتقادي أن الباركود لن يحمل كمية الحروف والأرقام التي ستكون في الفاتورة ، على عكس رمز الـ QR وسبب هذه الملاحظة هو انني استخدمت رمز الـ QR في أحد برامجي ( نظام الحضور والإنصراف ). على العموم حالياً لست أمام جهاز كمبيوتر ولكن تنفيذ فكرتك بإذن الله أمر بسيط. -
نعم صحيح ، فعلاً لا أحد يعلم ما الفائدة التي ينتظرها صاحب الموضوع من اخفاء هذا التنبيه وليس الفائدة من مربع الحوار ( رسالة جاري الطباعة ) 😁 فعلاً الويندوز سيحتاج لفرض صلاحيات من المستخدم ليتم تنفيذ أحد الطلبات التي تختص بنظام الويندوز ..
-
ارفق ملفك اخي @jo_2010
-
أهلا وسهلا بالقائد FOKSh عوداً حميداً يا أسد المنتدى
Foksh replied to ahmed draz's topic in قسم الأكسيس Access
شكراً لك أخي الحبيب @ahmed draz على لطفك وكلماتك الطيبة .. المنتدى عامر بالمحبة الموصولة بين أعضائه 🥰 . ونتمنى أن نكون عند حسن الظن 💐- 1 reply
-
- 3
-
-
-
ما الهدف من الفكرة المطلوبة ؟؟
-
اخي الغالي ، لا حاجة لاختيار افضل اجابة إلا اذا حصلت على الحل لمشكلتك .. حسناً لنوسع الفكرة بشكل أوسع ، سنتعامل مع مكتبة API لتعطيل رسائل النظام . أولاً انشاء مديول جديد وسنضع به هذا الكود البسيط ( يعمل على النواتين 32 و 64 ) :- Option Compare Database Option Explicit #If VBA7 Then ' 64-bit declarations Private Declare PtrSafe Function LockWindowUpdate Lib "user32" (ByVal hwndLock As LongPtr) As Long #Else ' 32-bit declarations Private Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long #End If Sub DisableScreenUpdates() LockWindowUpdate Application.hWndAccessApp End Sub Sub EnableScreenUpdates() LockWindowUpdate 0 End Sub ثم عند حدث الطباعة نستدعيه بهذا الشكل :- DisableScreenUpdates DoCmd.OpenReport "اسم_التقرير", acViewNormal EnableScreenUpdates أيضاً قيد التجربة لأني لا املك طابعة في الوقت الحالي