-
Posts
4242 -
تاريخ الانضمام
-
Days Won
180
Foksh last won the day on نوفمبر 16
Foksh had the most liked content!
السمعه بالموقع
2384 Excellentعن العضو Foksh

- تاريخ الميلاد 07/02/1982
البيانات الشخصية
-
Gender (Ar)
ذكر
-
Job Title
فني صيانة موبايل وكمبيوتر
-
البلد
الأردن ♥
-
الإهتمامات
برمجة وصيانة الموبايل والكمبيوتر
اخر الزوار
9590 زياره للملف الشخصي
-
Foksh started following كود طباعة تقرير مع تحديد عدد النسخ , مشكلة في صورة كخلفية تقرير , كود معرفة سريال هارد الكمبيوتر و 3 اخرين
-
وعليكم السلام ورحمة الله وبركاته.. قد مررت بهذه المشكلة سابقاً ، ووجدت ان مقاسات التقرير اختلفت بين جهازي وجهاز العميل . ما اضطرني للبحث والإستفسار لأحد أساتذتي في الدراسة ، فكانت الإجابة بكل وضوح هي أن اختلاف تعريف الطابعة في الجهازين هو السبب . ايضاً كانت الملاحظات تتعلق بدقة البكسل في حجم الورقة A4 - رغم أن المساحة واحدة - ولكن أقصد دقة البكسل الواحد في هذه المساحة . جرب كما كانت إحدى تجاربي ، أنني جعلت من خصائص التقرير:- Auto Resize = لا Auto Center = لا Fit to Page = لا
-
ما عليك سوى استبدال أسماء مربعات النص التي سيتم البحث والفلترة من خلالها ، واسم الحقل المستهدف البحث فيه .. ثم أن الدالة عبارة عن جملتين شرطيتين فقط لا غير 😅 .
-
وعليكم السلام ورحمة الله وبركاته .. لدي دالة تجلب جميع أرقام الهارد ديسك ( القرص الصلب ) حتى لو كان لديك أكثر من هارد موصول على نفس الكمبيوتر .. Public Function GetAllHardDiskSerials() As String On Error GoTo ErrorHandler Dim objWMIService As Object Dim colDisks As Object Dim objDisk As Object Dim result As String Dim i As Integer Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colDisks = objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive") i = 1 For Each objDisk In colDisks If Not IsNull(objDisk.SerialNumber) Then Dim serial As String serial = Trim(objDisk.SerialNumber) If serial <> "" Then result = result & "Disk " & i & ": " & serial & vbCrLf i = i + 1 End If End If Next If result = "" Then GetAllHardDiskSerials = "No serial numbers found" Else GetAllHardDiskSerials = result End If CleanUp: Set objDisk = Nothing Set colDisks = Nothing Set objWMIService = Nothing Exit Function ErrorHandler: GetAllHardDiskSerials = "Error" Resume CleanUp End Function أو هذه الدالة البسيطة أيضاً التي تجلب رقم الهارد الذي تم تثبيت نظام التشغيل ويندوز عليه :- Public Function GetHardDiskSerial2() As String On Error GoTo ErrorHandler Dim objWMIService As Object Dim colDisks As Object Dim objDisk As Object Dim strSerial As String Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colDisks = objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive") For Each objDisk In colDisks If Not IsNull(objDisk.SerialNumber) Then strSerial = Trim(objDisk.SerialNumber) If strSerial <> "" Then GetHardDiskSerial2 = strSerial Exit For End If End If Next If GetHardDiskSerial2 = "" Then GetHardDiskSerial2 = "Not Found" End If CleanUp: Set objDisk = Nothing Set colDisks = Nothing Set objWMIService = Nothing Exit Function ErrorHandler: Resume CleanUp End Function والإستدعاء فقط في أي مربع نص = اسم الدالة فقط ، كما في الملف المرفق للتوضيح . HD Serial.zip
-
مشاركة مع تنفيذ فكرة أستاذنا @kkhalifa1960 ، وبدلاً من الإعتماد على نموذج فرعي للقائمة الفرعية ، هذا تعديل على الفكرة التي تم طرحها سابقاً ، بحيث تم تطبيقها وكأنها Navigation Form .. الملف المرفق :- Menu Navigations.zip
-
وعليكم السلام ورحمة الله وبركاته .. بما أنك تريد الفلترة على فلترة أخرى أو بدونها . خطر ببالي فكرة كالآتي ، لمنع التكرار في الحدثين لمربعي النص ، قمت بدمج الفكرة في دالة استعلام بسيط ، واستخدام الدالة Like ليكون البحث والفلترة حتى لو بجزء مطابق من النص :- Private Sub ApplyFilter() Dim filterCondition As String filterCondition = "" If Nz(Me.Combo7, "") <> "" Then filterCondition = "[namee] Like '*" & Me.Combo7 & "*'" End If If Nz(Me.Text9, "") <> "" Then If filterCondition <> "" Then filterCondition = filterCondition & " AND " filterCondition = filterCondition & "[town] Like '*" & Me.Text9 & "*'" End If Me.Filter = filterCondition Me.FilterOn = (filterCondition <> "") Me.Requery End Sub وبالتالي ، للحدثين بعد التحديث لمربعي النص ، استدعيها نفسها بهذا الشكل :- Private Sub Combo7_AfterUpdate() ApplyFilter End Sub Private Sub Text9_AfterUpdate() ApplyFilter End Sub وكإضافة ، قمت بإنشاء زر لإلغاء الفلترة وعرض السجلات كاملة . من خلال الزر :- Private Sub Command20_Click() Me.Combo7 = Null Me.Text9 = Null Me.FilterOn = False Me.Requery End Sub ملفك بعد التطبيق :- Database6.zip
-
لايتم ادراج صفوف مع ترقيم تلقائي في حال كانت الورقة محمية . هل من حل؟
Foksh replied to سك بابك's topic in منتدى الاكسيل Excel
وعليكم السلام ورحمة الله وبركاته.. لم أطلع على المرفق ، ولكن خطر ببالي استخدام التالي للسماح للماكرو او المعادلة بالاستمرار بالترقيم وعدم السماح بالتعديل من خلال:- UserInterfaceOnly:=True -
3 سجلات بناءً على ماذا ؟؟؟؟؟؟؟؟؟ انظر لنتيجة الشرط على سبيل المثال 936/2025 من الجدول الأول :- TAB1 innow oprate note_E Awarding SERR 2025-05-22 9:56:02 AM 936/2025 جارى الدراسة 2025.05.28 7071 سجل واحد . والجدول الثاني لنفس الفلترة :- TAB2 innow nooprat oprate MRNo Date Of Recipt id 2025-05-22 9:56:58 AM 2200021005 936/2025 1264/2025 2025.05.22 8222 2025-05-22 10:06:07 AM 2200021007 936/2025 1265/2025 2025.05.22 8223 سجلين اثنين . والجدول الثالث بنفس الفلترة :- TAB3 inday orderNO elcNO oprate id 2025-05-27 7:29:01 AM 5594/2025 5300221097 936/2025 8629 2025-05-27 7:29:55 AM 5595/2025 5300221100 936/2025 8630 2025-05-27 7:30:25 AM 5596/2025 5300221102 936/2025 8631 3 سجلات . فما هو الشرط الذي سيتم عرض 3 سجلات فقط ( بناءً على معرفتك بالسجلات وماهيتها ) ؟؟؟؟؟؟؟؟ فهم السؤال بالنسبة لي = الجواب كاملاً وليس نصفه . جربت هذا الإستعلام :- SELECT TAB1.innow, TAB1.oprate, TAB1.note_E, TAB1.Awarding, TAB1.SERR, TAB2.innow AS T2_innow, TAB2.nooprat, TAB2.MRNo, TAB2.[Date Of Recipt], TAB2.id AS T2_id, NULL AS inday, NULL AS orderNO, NULL AS elcNO, NULL AS T3_id FROM TAB1 INNER JOIN TAB2 ON TAB1.oprate = TAB2.oprate WHERE TAB1.oprate = '936/2025' UNION ALL SELECT TAB1.innow, TAB1.oprate, TAB1.note_E, TAB1.Awarding, TAB1.SERR, NULL AS T2_innow, NULL AS nooprat, NULL AS MRNo, NULL AS [Date Of Recipt], NULL AS T2_id, TAB3.inday, TAB3.orderNO, TAB3.elcNO, TAB3.id AS T3_id FROM TAB1 INNER JOIN TAB3 ON TAB1.oprate = TAB3.oprate WHERE TAB1.oprate = '936/2025'; والذي كانت نتيجته كمثال على نفس الفلترة = Query2 innow oprate note_E Awarding SERR T2_innow nooprat MRNo Date Of Recipt T2_id inday orderNO elcNO 2025-05-22 9:56:02 AM 936/2025 جارى الدراسة 2025-05-28 7071 2025-05-22 9:56:58 AM 2200021005 1264/2025 2025-05-22 9:56:59 AM 8222 2025-05-22 9:56:02 AM 936/2025 جارى الدراسة 2025-05-28 7071 2025-05-22 10:06:07 AM 2200021007 1265/2025 2025-05-22 10:06:07 AM 8223 2025-05-22 9:56:02 AM 936/2025 جارى الدراسة 2025-05-28 7071 2025-05-27 7:29:01 AM 5594/2025 5300221097 2025-05-22 9:56:02 AM 936/2025 جارى الدراسة 2025-05-28 7071 2025-05-27 7:29:55 AM 5595/2025 5300221100 2025-05-22 9:56:02 AM 936/2025 جارى الدراسة 2025-05-28 7071 2025-05-27 7:30:25 AM 5596/2025 5300221102 ومع ذلك لم أفهم شرطك أو المطلوب .
-
وعليكم السلام ورحمة الله وبركاته .. كمطلب أول :- جرب هذا الإستعلام .. SELECT TAB1.innow, TAB1.oprate, TAB1.note_E, TAB1.Awarding, TAB1.SERR, TAB2.innow AS T2_innow, TAB2.nooprat, TAB2.MRNo, TAB2.[Date Of Recipt], TAB2.id AS T2_id, TAB3.inday, TAB3.orderNO, TAB3.elcNO, TAB3.id AS T3_id FROM (TAB1 LEFT JOIN TAB2 ON TAB1.oprate = TAB2.oprate) LEFT JOIN TAB3 ON TAB1.oprate = TAB3.oprate WHERE (((TAB1.oprate)=[أدخل قيمة للفلترة]));
-
شكراً للمشاركة الخفيفة .. ولي تعليقان ، قد يكون الأول سهواً أو خطأ مطبعي . وهو أن الإستدعاء ليس صحيحاً باسم الدالة المرفقة . ثانياً الدالة ستقوم بفتح التقرير ، ولكن ليس هناك أي أمر طباعة . وأفترض أنه قد يكون التعديل الصحيح للفكرة :- Public Function PrintMultipleCopies(strReportName As String, _ bytNumberOfCopies As Byte) Dim i As Integer For i = 1 To bytNumberOfCopies DoCmd.OpenReport strReportName, acViewNormal Next i End Function والإستدعاء :- Call PrintMultipleCopies("اسم التقرير", 2) حيث هنا عدد النسخ المطلوب طباعتها = 2
-
أخي الكريم بداية ، أهلاً بك مرة أخرى في المنتدى ،، ثانياً لتلافي حذف أي موضوع ، ليس عليك تكرار فتحه بموضوع جديد مستقل ، بل يكفي ان تستخدم اسلوب النداء "للرفع" أو "Up" . ثالثاً ، ولضيق الوقت ، سأرفق لك ملف من مكتبتي ، جربته ولعله تستفيد منه بالشكل الصحيح . Menu-1.zip
-
Private Sub detaché_AfterUpdate() On Error GoTo Err_detaché_Click If IsNull(Me.TxtMonth) Then MsgBox "اختر الشهر" Exit Sub End If Dim Titles1 As Variant Dim Titles2 As Variant Titles1 = Array("مصالح البلدية", "متعاقدين 8 سا", "عمال متعاقدين 5 سا", "حراس متعاقدين 5 سا", "اعوان النظافة والتطهير") Titles2 = Array("للعمال الموظفين", "للعمال المتعاقدين بالتوقيت الكامل", "للعمال المتعاقدين بالتوقيت الجزئي", "للحراس المتعاقدين بالتوقيت الجزئي", "للعمال اعوان النظافة والتطهير") Dim idx As Long idx = Me.detaché.ListIndex If idx < 0 Then Exit Sub Me.Reporte_Title.Visible = False Me.Reporte_Title = Titles1(idx) Me.Report_Title = Titles2(idx) Dim Copies As Long Copies = 3 ' يمكن ربطه بمربع نص في النموذج أو وضع رقم ثابت DoCmd.OpenReport "rptDiscount", acPreview, , , , "qry_rptD|" & Copies Exit Sub Err_detaché_Click: If Err.Number = 2501 Then Resume Next End Sub واعتذر عن المتابعة ، لأسباب صحية
-
حضور وانصراف الموظفين .. بسيط مختصر .. وجاهز للعمل
Foksh replied to ابوخليل's topic in قسم الأكسيس Access
فشلت محاولتي في ضبط الوقت والتاريخ الآلي من خلال آكسيس ، فالأفكار التي كانت لدي تعتمد على تشغيل آكسيس كمسؤول . وهذا ما لا يمكن تقييد المستخدم به . سأحاول بطريقة أخرى -
التعليق الموجود بجانب السطر الذي ظهر عنده الخطأ . تركته لك لتمكينك وتخييرك بإدخال قيمة عدد النسخ بشكل يدوي من خلال مربع نص ، أو تستبدل الجزء بقيمة رقمية ثابتة لعدد النسخ . على العموم ، استبدل الجزء بأي رقم تريده ليكون عدد النسخ ، فقط لا غير .
-
لو أنك قرأت التعليق أخي طاهر .. استبدل الجزء :- Nz(Me.txtCopies, 1) برقم يمثل عدد النسخ التي تريد طباعتها .
-
تفضل Prin3.zip