بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation on 06/12/25 in all areas
-
أخواني وأساتذتي ومعلمينا ( دون استثناء ) الكثير من المواضيع التي قد تكون تطرقت الى هذا الموضوع ولكن بطرق وأشكال مختلفة . اليوم وفقط في أوفيسنا / آكسيس ، سأقدم لكم نظام كامل متكامل لإدارة الطابور والدور الذي يمكن استخدامه في أي منشئة تجارية تتعامل بهذا النظام . من المعروف أننا عندما ندخل مركز للصرافة على سبيل المثال ، فإن العميل يحصل على رقم دور مطبوع على شكل تذكرة يحتفظ بها لحين تفرغ موظف لتلبية طلبه وخدمته . وعند انتظارك كعميل لحين وصول الدور لك فإنك تراقب شاشة الدور لمعرفة أين وصل الدور لأي تذكرة . وطبعاً ما يميز هذا النظام أنك في حين لم تكن متابعاً لشاشة العرض فإن النظام الصوتي كفيل بتنبيهك أين وصل الدور ولأي شباك موظف . إلى هنا وكل هذا متاح لك اليوم مع نظام مراقبة الطابور والدور الجديد . وسنسير بشرح المكونات تسلسلاً وشرحاً وافياً ( دون الإطالة .. ) أولاً :- واجهة حجز الدور الذي سيبدأ منها العميل بأخذ دور له ، وهي ذات واجهة بسيطة فقط زر واحد ينقره العميل للحصول على رقم دوره . مرفق تالياً صورة الواجهة ، والتي تدعم بالطبع شاشة اللمس . أي أن ما على العميل فقط هو النقر على الزر "احصل على رقم دور جديد" . ثانياً :- وبعد أن حصل العميل على دوره ، سيراقب دوره في قاعة الإنتظار على شاشة عرض الأدور ، والتي بدورها ستخبر العميل الى أي شباك موظف عليه التوجه حين يحين دوره ، وطبعاً لإرضاء الرغبات قمت بإضافة ميزة الناطق الصوتي ( عربي - انجليزي "اللغة الإفتراضية" ) . أي أنه عليك - كمستخدم أو مصمم - لاحقاً تفعيل اللغة العربية الصوتية (Text-to-speech) . وهنا نقطة مهمة يجب أن نمر عليها سريعاً كي تتوضح لك عزيزي القارئ كيف يمكن تفعيل القارئ الصوتي العربي للنصوص . لذا هذا الفيديو يوضح الخطوات الأولى لإضافة اللغة العربية الصوتية إلى ويندوز 10 . النقطة المزعجة من مايكروسوفت أنه وللأسف لا يتم فعلاً إضافة هذه التثبيتات الى مكانها الصحيح في محرر الريجستري . لذا علينا فعل ذلك بالطريقة اليدوية لضمان تشغيل القارئ الصوتي العربي . لذا ولمحة سريعة سنتطرق للموضوع بشكل مختصر :- بعد الذهاب إلى محرر الريجستري + R اكتب كلمة regedit اذهب الى المسار التالي : Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Speech_OneCore\Voices\Tokens قم بتصدير هذا المفتاح كاملاً الى سطح المكتب بأي اسم تريده . افتح ملف الريجستري هذا باستخدام المفكرة Notepad . قم بإزالة الجزء "_OneCore" من جميع المسارات الموجودة أمامك . احفظ الملف ، وافتحه واختر Yes - نعم من الرسالة التي ستظهر لك مرتين ( على ما أعتقد ) . مبروك عليك تفعيل الناطق العربي . لك حرية الإختيار بتفعيل اللغة العربية أو لا ، ويمكنك الإنتقال لباقي الشرح . تابع معي :- الآن جاء دور الموظفين الذي سيكون لهم جميعهم نموذج واحد بنفس الأكواد بدون أي فرق لا في الشكل ولا في طريقة العمل ، انظر الصورة لاستكمال الشرح :- صورة لواجهة الموظف ( الشباك 1 ) والأمر نفسه لباقي الموظفين . ماذا يمكن للموظف أن يفعل هنا ؟ فقط النقر على الزر الذي سيكون مفعلاً عند وجود عملاء في الإنتظار ( استدعاء التالي & عدد العملاء الذين في الإنتظار ) كما في الصورة التالية :- فقط بعد النقر سيتم استدعاء العميل الأول في الانتظار ( حسب وقت الحجز طبعاً ) الى الشباك 1 :- طبعاً من المزايا المتاحة للموظف ، تحويل عميله الى موظف آخر ( ذو اختصاص على سبيل المثال ) ... إلخ . أو أن يطلب استراحة ( عند عدم انشغاله في عميل ) بأن يكون غير متاح في هذه الفترة لتلقي العملاء .... إلخ . وأيضاً بدء وانهاء خدمة العميل . وطبعاً الأمر ينطبق على جميع الموظفين . ثالثاً :- لوحة عرض العملاء في الإنتظار ، ذات واجهة بسيطة ومريحة كالتالي :- ليس بها أي تعقيد أو أمور تتطلب اعدادات أو ضبط خاص . رابعاً :- شاشة تحكم المدير ، وبهذه الواجهة سنشرحها في نقاط .. الجهة اليمنى تمثل إحصائيات واضحة للمدير عن تفاصيل حركة الدور ... الأزرار في أسفل يمين الشاشة تمثل :- • زر مخصص لتفعيل / تعطيل الناطق الصوتي لرقم الدور . • زر تحديث يدوي = تحديث للتفاصيل الظاهرة للشاشة بشكل يدوي . • زر تعيين القيمة التلقائية للتحديث = عند النقر عليه سيتم اظهار قائمة بسيطة تمثل رقم الدقائق التي تريد للنظام أن يتم تحديثه بشكل تلقائي دون الحاجة الى التحديث اليدوي . • زر إنهاء جميع العملاء العالقين = للطواري في حين حدوث أي خلل أو انقطاع الكهرباء أو الخروج لأي موظف دون انهاء عميله ، أو وجود عملاء لهم حجز وليسوا موجودين ... إلخ . الجهة اليسرى العلوية وتمثل العملاء الذين في الانتظار ( رقم الدور و الوقت الذي تم الحجز فيه ) . الكومبوبوكس الذي يمثل الموظفين المتاحين الآن ، وعند اختيار اي موظف سيتم عرض حالته ( متفرغ - في استراحة - يخدم عميل رقم .. ) وهنا تأتي صلاحيات المدير بأن يقوم بتحويل عميل هذا الموظف الى عميل محدد أو إعادته إلى حالة الإنتظار ( وهنا سيكون لهذا العميل الحق بالوصول لأول موظف متفرغ "VIP" ) .أو أن يتم من الإدارة إنهاء خدمة العميل الذي يخدمه الموظف الذي تم اختياره . إمكانية عرض الساعة باللغتين العربية والإنجليزية عند النقر على الساعة فقط . تم تقسيم قاعدة البيانات الى قواعد امامية وقاعدية بيانات خلفية ( للجداول المشتركة ) . وميزات كثيرة ستجدونها في هذا العمل المتواضع . Queue Management System.zip2 points
-
كلامك سليم ومنطقي 100% 👍 ، الإعتماد على الدرجات في الخلايا لتحديد اللون فكرة أذكى وأدق ، وأنا فعلاً لم أتوجه الى هذا المنطلق بل حسب طلب الأخ في سؤاله 😅 وحتى يعمل السطر الذي تفضلتم به مع اصدارات اكسل 2010 ، هذا السطر بعد تعديله :- =IF(I9>=85,"أزرق",IF(I9>=65,"أخضر",IF(I9>=50,"أصفر","أحمر")))2 points
-
السلام عليكم ورحمة الله وبركاته كثيرا ما حاولت فتح التقرير وعرضه بالتبديل من الوضع العمودي الى الوضع الأفقي خاصة عندما افتحه مخفيا على عرض التصميم للتعامل مع الحقول برمجيا وكانت النتيجة انه يمكن التعامل برمجيا مع الحقول .. وإنشاء حقول جديدة .. ويمكنني بعد ذلك عرضه للمعاينة بحقوله الجديدة ولكن استعصى علي التبديل في العرض من عمودي الى افقي والعكس .. وبعد التمعن والمحاولة عرفت السبب .. واذا عرف السبب بطل العجب وهو اني احاول التعامل مع التقرير من خلال خصائصه .. وخصائص التقرير لا تدعم هذه الميزة ثم تنبهت الى ان هذه الميزة وخصائص الهوامش وعرض الأعمدة والمسافات بين الاعمدة وغيرها يتم التحكم بها من خلال خصائص طباعة التقرير لن اطيل عليكم فبالمثال يتحقق المقال : 'للعرض الأفق DoCmd.OpenReport "Report1", acViewPreview Reports!Report1.Printer.Orientation = acPRORLandscape 'للعرض الرأسي DoCmd.OpenReport "Report1", acViewPreview Reports!Report1.Printer.Orientation = acPRORPortrait وهذه الطريقة الشاملة للتعامل Private Sub Command2_Click() ' او افتح تقريرك على التصميم وتعامل مع الحقول DoCmd.OpenReport "Report1", acViewDesign, , , acHidden 'اكتب هنا اكوادك الخاصة بالتعامل مع الحقول او العناصر الأخرى '............ '............ '............... ' ثم اختر طريقة العرض الرأسي Reports!Report1.Printer.Orientation = acPRORPortrait ' أو الأفقي 'Reports!Report1.Printer.Orientation = acPRORLandscape ' افتح التقرير للمعاينة DoCmd.OpenReport "Report1", acViewPreview End Sub فتح التقرير افقي او عمودي برمجيا.rar1 point
-
1 point
-
شكرا لك أخي الكريم وبارك الله فيك وأكثر الله من أمثالك وزادك الله من علمه وشكرا جزيلا لأخي الفاضل وصديقي المخلص ( fokash )1 point
-
وعليكم السلام ورحمة الله وبركاته كان من الأفضل أخي @algammal فتح موضوع جديد لطلبك المتعلق بتعديل كود ترحيل البيانات أو على الأقل إدراج إستفسارك داخل الموضوع الأصلي المخصص لذلك وذلك أن الموضوع لم يغلق بعد ونحرص دوما على تجنب تداخل المواضيع حتى لا يحدث إرتباك أو لخبطة للقارئ لاحقا على العموم نترك هذا التقدير الكريم لإدارة المنتدى والمشرفين بالنسبة لملاحظتك حول إختفاء ألوان علامات التبويب والروابط التشعبية (Hyperlinks) بعد الضغط على زر ترحيل البيانات فالأمر ناتج ببساطة عن أن الكود يقوم بحذف الأوراق الموجودة مسبقا التي تم ترحيل البيانات لها ثم يعيد إنشاء أوراق جديدة بنفس الأسماء وبما أن الورقة تحذف تماما يتم معها حذف جميع التنسيقات والروابط التشعبية لأنها كانت مرتبطة بالورقة المحذوفة وليست بالاسم فقط نظرا للتغييرات الجديدة على الملف يمكنا تفادي هذه المشكلة بتعديل بسيط على الكود من خلال: بعد إنشاء كل ورقة جديدة بناء على إسم الوظيفة إعادة تلوين التبويب باستخدام شرط Select Case يمكنك طبعا إضافة مهن جديدة وتخصيص ألوانها بنفس الطريقة For Each f In dest.Keys Set tmp = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)) tmp.Name = f: tmp.DisplayRightToLeft = True Select Case tmp.Name Case "طبيب": tmp.Tab.Color = RGB(128, 0, 128) Case "محامي": tmp.Tab.Color = RGB(101, 67, 33) Case "عامل": tmp.Tab.Color = RGB(255, 105, 180) ' يمكنك إضافة المزيد ' Case "مهندس": tmp.Tab.Color = RGB(...) End Select وكذلك نسخ الأشكال من ورقة معاشات للإحتفاظ بالإرتباط التشعبي مما يضمن إستمرار وظيفة التنقل بين الأوراق Dim Groupe As String: Groupe = "مجموعة 2" On Error Resume Next CrWS.Shapes(Groupe).Copy On Error GoTo 0 tmp.Range("C2").Select: tmp.Paste If tmp.Shapes.Count > 0 Then Set j = tmp.Shapes(tmp.Shapes.Count) CrWS.Range(harder).Copy: tmp.Range("A3").PasteSpecial xlPasteAll ليصبح الكود النهائي كما يلي : Sub TransferData() Const début As Long = 5, Height As Double = 20.25 Const départ As String = "A", Fin As String = "M" Const harder As String = "A3:M4" Dim Groupe As String: Groupe = "مجموعة 2" Dim CrWS As Worksheet, tmp As Worksheet, dest As Object Dim OnRng As Variant, i As Long, lastRow As Long, k As Variant, j As Shape Dim tbl As String, f As Variant, irow As Long, a() As Variant, n As Long, lr As Long On Error GoTo OnError Set CrWS = Sheets("معاشات"): Set dest = CreateObject("Scripting.Dictionary") lastRow = CrWS.Cells(CrWS.Rows.Count, départ).End(xlUp).Row If lastRow < début Then: MsgBox "لا توجد بيانات لترحيلها", vbExclamation: Exit Sub SetApp False OnRng = CrWS.Range(départ & début & ":" & Fin & lastRow).Value For i = 1 To UBound(OnRng, 1) tbl = Replace(Replace(Trim(OnRng(i, 5)), "/", "_"), "\", "_") If Len(tbl) > 0 Then dest(tbl) = Empty Next i For Each tmp In ThisWorkbook.Worksheets If Not tmp Is CrWS Then If dest.Exists(tmp.Name) Then On Error Resume Next: tmp.Delete: On Error GoTo OnError Next tmp For Each f In dest.Keys Set tmp = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)) tmp.Name = f: tmp.DisplayRightToLeft = True Select Case tmp.Name Case "طبيب": tmp.Tab.Color = RGB(128, 0, 128) Case "محامي": tmp.Tab.Color = RGB(101, 67, 33) Case "عامل": tmp.Tab.Color = RGB(255, 105, 180) End Select On Error Resume Next CrWS.Shapes(Groupe).Copy On Error GoTo 0 tmp.Range("C2").Select: tmp.Paste If tmp.Shapes.Count > 0 Then Set j = tmp.Shapes(tmp.Shapes.Count) CrWS.Range(harder).Copy: tmp.Range("A3").PasteSpecial xlPasteAll Application.CutCopyMode = False ReDim a(1 To UBound(OnRng, 1), 1 To UBound(OnRng, 2)) n = 0 For irow = 1 To UBound(OnRng, 1) If Trim(OnRng(irow, 5)) = f Then n = n + 1 For i = 1 To UBound(OnRng, 2): a(n, i) = OnRng(irow, i) Next i End If Next irow If n > 0 Then tmp.Range("A5").Resize(n, UBound(OnRng, 2)).Value = a CrWS.Range("A5:M" & n + 4).Copy tmp.Range("A5").PasteSpecial xlPasteFormats Application.CutCopyMode = False End If CrWS.Columns("A:M").Copy tmp.Columns("A:M").PasteSpecial xlPasteColumnWidths Application.CutCopyMode = False lr = tmp.Cells(tmp.Rows.Count, départ).End(xlUp).Row For i = 1 To lr: tmp.Rows(i).RowHeight = Height: Next i tmp.Rows(2).RowHeight = 24 k = Array("=COUNTIF($M$5:$M$" & lr & ", $B$3)", "=COUNTIF($F$5:$F$" & lr & ", $D$3)", _ "=COUNTIF($F$5:$F$" & lr & ", $G$3)") tmp.[C3].Formula = k(0): tmp.[E3].Formula = k(1): tmp.[H3].Formula = k(2) tmp.Range("A5:A" & lr).Formula = "=IF(B5<>"""",SUBTOTAL(3,$B$5:B5),"""")" tmp.[A4].Select Next f CrWS.Activate CleanUp: SetApp True MsgBox "تم ترحيل البيانات بنجاح", vbInformation Exit Sub OnError: Resume CleanUp End Sub Private Sub SetApp(ByVal enable As Boolean) With Application .ScreenUpdating = enable: .EnableEvents = enable: .DisplayAlerts = enable .Calculation = IIf(enable, xlCalculationAutomatic, xlCalculationManual) End With End Sub النتائج المتوقعة : توحيد البحث في شيت واحد v9.xlsb1 point
-
1 point
-
وعليكم السلام ورحمة الله وبركاته ,, جرب هذا التعديل !! Sub imad() Dim doc As Document Dim db As Object Dim rs As Object Dim f As FileDialog Set doc = ActiveDocument Set db = CreateObject("DAO.DBEngine.120").OpenDatabase(ActiveDocument.Path & "\10 - TMLEK.mdb") Set rs = db.OpenRecordset("qtsder") Application.ScreenUpdating = False While Not rs.EOF With doc.Content.Find .ClearFormatting .Text = rs.Fields(0).Value .Replacement.ClearFormatting .Replacement.Text = rs.Fields(1).Value .Execute Replace:=wdReplaceAll, _ Format:=True, _ MatchCase:=True, _ MatchWholeWord:=True, _ Wrap:=wdFindContinue End With rs.MoveNext Wend rs.Close db.Close Set rs = Nothing Set db = Nothing Application.ScreenUpdating = True MsgBox "تم الانتهاء من الاستبدال بنجاح", vbInformation + vbMsgBoxRight, "" End Sub افتح الملف المرفق على اصدار 2016 ،واخبرنا بالنتيجة مجلد جديد (2).zip1 point
-
و عليكم السلام ورحمة الله و بركاته تحياتي للأستاذ @Foksh الألوان تستخدم في كنترول الابتدائي و ذلك لعدم وجود طابعات ألوان فيتم كنتابة اللون . لذلك هناك حل بسيط بالمعادلات حيث يتم لصق المعادلة التالية في الخلية M7 ثم سحبها للأسفل: =IFS(I9>=85;"أزرق"; I9>=65;"أخضر"; I9>=50;"أصفر"; TRUE;"أحمر")1 point
-
وعليكم السلام ورحمة الله وبركاته ,, بداية أود أن أوضح لك أنه لا يمكن لأكسل التعرف على اسم اللون كما في طلبك ، ولكن يمكننا التحايل عليه بفكرة إلتفافية حول الموضوع ، حيث أولاً يمكن استخراج رقم ( كود ) اللون ، وبذلك أولاً سنستخدم دالة بسيطة تساعدنا في هذه المهمة كالآتي :- Function GetColorCode(rng As Range) As Long GetColorCode = rng.Interior.Color End Function الآن بعد أن حصلنا على النتيجة ، سنستخدم دالة تقوم بالتعرف على اللون الناتج من الدالة السابقة ومحاولة تقريبه الى أقرب درجة معروفة سنقوم بإدخال قيمها يدوياً داخل الدالة ، كالآتي :- Function GetApproximateColorName(rng As Range) As String Dim colorCode As Long, R As Integer, G As Integer, B As Integer colorCode = rng.Interior.Color R = colorCode Mod 256 G = (colorCode \ 256) Mod 256 B = (colorCode \ 65536) Mod 256 If R > 200 And G < 50 And B < 50 Then GetApproximateColorName = "أحمر" ElseIf R > 200 And G > 200 And B < 100 Then GetApproximateColorName = "أصفر" ElseIf R > G And R > B Then GetApproximateColorName = "أحمر" ElseIf G > R And G > B Then GetApproximateColorName = "أخضر" ElseIf B > R And B > G Then GetApproximateColorName = "أزرق" ElseIf R = G And G = B Then GetApproximateColorName = IIf(R < 128, "غامق", "فاتح") & " رمادي" Else GetApproximateColorName = "لون مختلط" End If End Function طبعاً قمت بتغيير الألوان في مثالك إلى الألوان الصريحة لكل لون ( الأخضر ، الأزرق ، الأصفر ، الأحمر ) . وبهذا ، سيتم الاستدعاء في الخلية التي تريد إدراج اسم اللون فيها بهذا الشكل :- =GetApproximateColorName(K7) طبعاً فقط ضع هذا الكود في الخلية L7 ثم اسحب تحديد الخلية الى باقي الخلايا لتطبيق الكود عليها جميعاً . وهذا ملفك بعد التعديل :- Book2.xlsm1 point
-
وعليكم السلام اهم شيء في موضوع هذه الطابعات هو ان يكون عندك برنامج تنصيب الطابعة من الشركة ، ولا تعتمد على تعريف الوندوز ، لأنه بعد التنصيب ، يجب عليك عمل بعض التعديلات على اعدادات الطابعة. 1. من صفحة الطابعات ، اختار خصائص الطابعة: . 2. وهنا سأعرض التخصيصات لطابعات مختلفة ، رجاء ملاحظة اسماء الطابعات: . هنا يجب ملاحظة ان بعض الطابعات تقطع الورقة حسب الاعدادات: بعد المستند او بعد كل ورقة . . وبما ان الطابعات الحرارية لا تحتاج الى مسافات/هامش لسحب الورقة ، فالافضل عمل هذا برمجيا : Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) On Error GoTo err_Detail_Format 'set the default printer margins With Application.Printers(0) .TopMargin = 0 .BottomMargin = 0 .LeftMargin = 0 .RightMargin = 0 End With . في التقرير ، وفي وضع التصميم ، اختار الطابعة (سواء بعرض 80مم او 58 مم) ، عليه تستطيع تصميم التقرير/الحقول بالطريقة العادية ، مع مراعاة عرض التقرير (ولا يهم الطول) ، وبالتجربة تستطيع تضبيط التقرير. التقارير بالبوصة (لاحظ العرض) ولا تنسى ان الطابعة تطبع باللون الاسود فقط (او اطياف اللون الرمادي) ، فتأكد من اختيار لون النص وحجمه ، وان الشعار يكون ابيض واسود (واما اذا كان ملون ، فسيتم طباعته باطياف اللون الرمادي).1 point
-
1. إعداد التقرير (Report) في Access أ. إنشاء التقرير: افتح قاعدة البيانات في Access. انتقل إلى تبويب Create > Report Design. صمم التقرير يدويًا أو استخدم Report Wizard لإنشاء فاتورة بسيطة. ب. تخصيص التقرير للطباعة الحرارية: العرض (Width): للطابعات الحرارية (عرض 58 مم أو 80 مم)، اضبط عرض التقرير في Property Sheet (وحدة القياس: سنتمترات أو بوصة😞 58 مم ≈ 2.28 بوصة. 80 مم ≈ 3.15 بوصة. مثال: ' لضبط العرض في كود VBA Reports("InvoiceReport").Width = 3.15 * 1440 ' (البوصة إلى Twips) المحتوى: أضف عناصر التقرير (مربعات النص) للبيانات الأساسية: اسم المتجر، التاريخ، رقم الفاتورة، العناصر، الإجمالي. استخدم خطوطًا بسيطة مثل Arial أو Courier New بحجم مناسب (مثال: 8-10pt للتفاصيل، 12pt للعناوين). 2. إعدادات الطباعة عبر VBA أ. تحديد الطابعة الحرارية: Sub SetThermalPrinter() Dim prt As Printer For Each prt In Application.Printers If prt.DeviceName Like "*Thermal*" Then ' استبدل بـاسم طابعتك Set Application.Printer = prt Exit For End If Next prt End Sub ب. ضبط إعدادات الطباعة: Sub PrintInvoiceReport() ' تعيين الطابعة الحرارية Call SetThermalPrinter ' ضبط إعدادات التقرير قبل الطباعة With Reports("InvoiceReport") .Printer.Orientation = acPortrait ' أو acLandscape إذا needed .Printer.PaperSize = acPRPSUser ' حجم ورقة مخصص .Printer.PaperWidth = 3.15 ' لبوصة (لـ 80 مم) .Printer.PaperHeight = 0 ' طول غير محدود (لفة ورق) End With ' طباعة التقرير DoCmd.OpenReport "InvoiceReport", acViewNormal DoCmd.PrintOut acPrintAll End Sub 3. تنسيق المحتوى للطباعة الحرارية أ. محاذاة النص: اضبط خاصية Text Align في مربعات النص إلى: Right للنصوص العربية. Left للأرقام. مثال لإضافة باركود: ب. إضافة باركود أو QR (اختياري): إذا كانت الطابعة تدعم الباركود، استخدم مكتبة خارجية مثل IDAutomation أو أنشئ صورة باركود في التقرير. ' إدراج صورة باركود في التقرير Me.ImageControl.Picture = "C:\Barcode\INV123.png" 4. قص الورق تلقائيًا (إذا كانت الطابعة تدعمه) بعض الطابعات تقص الورق بأمر ESC/POS. يمكن إرساله عبر VBA إذا كان هناك اتصال مباشر: Sub SendCutCommand() Dim prt As Object Set prt = CreateObject("WinSpool.WinPrinter") prt.DeviceName = "اسم الطابعة الحرارية" prt.Open prt.Write Chr$(29) & Chr$(86) & Chr$(0) ' أمر قص الورق prt.Close End Sub 5. نصائح مهمة اختبار الطباعة: استخدم Print Preview في Access قبل الطباعة الفعلية. تأكد من عدم قطع النصوص عند الحواف. الخطوط العربية: إذا ظهرت النصوص العربية كرموز غير مقروءة، استخدم خطوطًا تدعم Unicode مثل Arial أو Times New Arabic. البيانات الديناميكية: استخدم استعلام (Query) كمصدر بيانات للتقرير لملء الفاتورة تلقائيًا. مثال كامل لفاتورة بسيطة ' إنشاء فاتورة ديناميكية Sub GenerateInvoice() Dim report As Report Set report = CreateReport() ' إضافة عناصر إلى التقرير With report ' عنوان الفاتورة Dim lblTitle As Label Set lblTitle = CreateControl("InvoiceReport", acLabel) lblTitle.Caption = "فاتورة شراء" lblTitle.Top = 100 lblTitle.Left = 500 lblTitle.FontSize = 14 lblTitle.FontBold = True ' تفاصيل الفاتورة Dim txtDetails As TextBox Set txtDetails = CreateControl("InvoiceReport", acTextBox) txtDetails.ControlSource = "SELECT ProductName, Quantity, Price FROM InvoiceDetails" End With ' طباعة الفاتورة DoCmd.OpenReport "InvoiceReport", acViewPreview End Sub باستخدام هذه الإعدادات، يمكنك طباعة فواتير واضحة ومنظمة على الطابعة الحرارية مباشرة من Access VBA.1 point
-
@محمد هشام. برجاء من كل الاخوة الكرام الي كل من يعرف الاخ محمد هشام او لا يعرفه الي كل من ساعده الاخ محمد هشام او لم يساعده ان يدعو له من كل قلبه و بخالص الدعوات ان يشقي ابنه الغالي واتمنى من الادمن المحترم انه يثبت البوست لفترة وشكرا علي قبول البوست1 point
-
استاذ @mohamed_ets اولا كنا منتظرين اجابنك على اسئلة أستاذ @Foksh كي نساعدك . المهم 1- من تحليل الصورة الاولى :- حل مشكلة عدم القدرة على حفظ التغييرات في Microsoft Accessيبدو أنك تواجه مشكلة في حفظ التغييرات في قاعدة بيانات Access بسبب أن الملف مفتوح من قبل مستخدم آخر. إليك بعض الحلول الممكنة: الحلول المباشرة: إغلاق جميع نسخ Access وإعادة فتح الملف بحقوق حصرية: أغلق جميع نسخ Access المفتوحة افتح الملف مع الضغط على زر Shift أثناء الفتح أو استخدم خيار "فتح بحقوق حصرية" من قائمة File إعادة تشغيل الكمبيوتر: أحيانًا يعالج هذا المشكلة إذا كان هناك قفل على الملف بسبب عملية سابقة حلول أخرى: إنشاء نسخة جديدة من الملف: استخدم "Save As" لحفظ الملف باسم جديد أو استخدم "Compact and Repair Database" من قائمة Tools فحص وجود ملف .lck: ابحث عن ملف بنفس اسم قاعدة البيانات ولكن بامتداد .lck في نفس المجلد واحذفه إذا كنت تعمل على شبكة: تأكد من عدم وجود مستخدم آخر يصل إلى الملف تحقق من أذونات المجلد للتأكد من أن لديك حقوق الكتابة 1- من تحليل الصورة الثانية :- حل مشكلة "You do not have exclusive access to the database" في Access هذه المشكلة شائعة في Microsoft Access وتحدث عندما يحاول عدة مستخدمين تعديل التصميم في نفس الوقت، أو عندما يكون الملف مقفولاً. إليك الحلول التفصيلية: الحلول الفورية: إغلاق جميع نسخ Access وإعادة الفتح بحقوق حصرية: أغلق جميع نوافذ Access المفتوحة اضغط بزر الماوس الأيمن على ملف قاعدة البيانات اختر "فتح باستخدام" → Microsoft Access أثناء الفتح، اضغط مع الاستمرار على مفتاح Shift لفتحه في وضع الحصرية استخدام خيار "فتح بحقوق حصرية": شغّل برنامج Access أولاً (بدون فتح الملف) اذهب إلى File → Open حدد ملف قاعدة البيانات انقر على السهم الصغير بجوار زر Open واختر "Open Exclusive" حلول متقدمة: إصلاح قاعدة البيانات: من قائمة File اختر "Info" انقر على "Compact & Repair Database" احفظ نسخة جديدة من الملف حذف ملف القفل (.lck): اذهب إلى مجلد قاعدة البيانات ابحث عن ملف بنفس الاسم ولكن بامتداد .lck احذف هذا الملف (تأكد من عدم وجود أحد يستخدم قاعدة البيانات عند القيام بذلك) نسخ التقرير إلى قاعدة بيانات جديدة: أنشئ قاعدة بيانات جديدة فارغة استخدم خيار "Import" لاستيراد التقرير من القاعدة القديمة إلى الجديدة إذا كنت تعمل على شبكة: طلب من المستخدمين الآخرين الإغلاق: تأكد من عدم وجود مستخدمين آخرين يعدلون التصميم اطلب من الجميع إغلاق قاعدة البيانات مؤقتًا فحص أذونات الملف: تأكد أن لديك صلاحيات الكتابة على الملف والمجلد اضغط بزر الماوس الأيمن على الملف → Properties → Security نصائح وقائية: احفظ نسخة احتياطية من قاعدة البيانات بانتظام تجنب فتح قاعدة البيانات للتصميم من خلال الشبكة، انسخها محلياً أولاً استخدم "Split Database" إذا كان عدة مستخدمين يحتاجون الوصول جرب هذه الحلول بالترتيب، وعادةً ما يحل أحدها المشكلة. إذا استمرت المشكلة، قد تحتاج إلى فحص إضافي لإعدادات الشبكة أو أذونات الملفات. لاحظ بالتحليلين وجود عامل مشترك هو وجود ملف بنفس الاسم ولكن بامتداد .lck احذف هذا الملف (تأكد من عدم وجود أحد يستخدم قاعدة البيانات عند القيام بذلك)1 point
-
بعد اذن اخى الحبيب بن مصر جزاه الله خيرا هذه طرق عمل الدوائر الحمراء بالصور بالطرق العاديه ayman.rar1 point