نجوم المشاركات
Popular Content
Showing content with the highest reputation on 07/16/21 in all areas
-
جرب هذا الكود .... On Error Resume Next Me.Refresh Dim i i = Me.IDED If MsgBox("هل تريد إرجاع جهاز وطباعة الإستمارة؟", _ vbCritical + vbYesNo, _ "") = vbNo Then Exit Sub Else DoCmd.SetWarnings False DoCmd.RunSQL "INSERT INTO EMPDEV_ARCHIVES ( IDED, IDE, IDD, DATEG, STATUS, SystemS, NOTES2, DATER, RECEIPT, NOTES, IDD1, IDD2, Choix ) " & _ " SELECT EMPDEV.IDED, EMPDEV.IDE, EMPDEV.IDD, EMPDEV.DATEG, EMPDEV.STATUS, EMPDEV.SystemS, EMPDEV.NOTES2, EMPDEV.DATER, EMPDEV.RECEIPT, EMPDEV.NOTES, EMPDEV.IDD1, EMPDEV.IDD2, EMPDEV.Choix " & _ " FROM EMPDEV " & _ " WHERE (((EMPDEV.Choix)=True));" DoCmd.RunSQL "DELETE EMPDEV.Choix, EMPDEV.* " & _ " FROM EMPDEV " & _ " WHERE (((EMPDEV.Choix)=True));" DoCmd.SetWarnings True End If Me.Requery 'Me.Visible = False DoCmd.OpenReport "SCDEV_ARCHIVES", acViewPreview ', , "[IDED]=Forms![EMPDEVMENU]![IDED]", acWindowNormal DoCmd.Close acForm, Me.Name, acSaveNo 'DoCmd.OpenForm "mod1", , , "mcod=" & i5 points
-
ملفك رائع وبسيط أحييك على هذا العمل تكمن مشكلة بطء الملف في اعتمادك على معادلات المصفوفات بكثرة واستعمالها في عدد كبير من الصفوف 15000 صف لذلك إذا اقتصرنا على عمود واحد فيه هذه المعادلة التي تجلب الأرقام الفريدة في عمود الموديل سيكون الملف أسرع وعليه لقد قمت بإضافة عمود M في شيت الوارد وبه معادلة الموديل بدون تكرار (يمكن إخفاء هذا العمود) وسحبتها إلى 20 صفا فقط وإذا زادت أعداد الموديلات يمكن سحب المعادلة لأسفل أي عدد من الصفوف ولكن بدون زيادة عن الحاجة ثم قمت بجلب القيم الموجودة في هذا العمود في شيت المخازن والتسعير بمعادلة خفيفة جدا وتم سحب معادلات سيت المخزون والتسعير إلى 1000 صف فقط حيث أنه من غير المنطقي التعامل مع أكثر من 1000 صنف وإذا احتجت زيادة يمكن سحب المعادلات إلى أي عدد من السفوف بالتوفيق 2 نموزج مخازن معتز.xlsb3 points
-
3 points
-
3 points
-
3 points
-
ضع هذا الكود .... On Error GoTo err: ' Requires reference to Microsoft Office 15.0 Object Library. Dim fso As Object Set fso = CreateObject("scripting.filesystemobject") Dim fDialog As Office.FileDialog Dim varFile As Variant Dim destpath As Variant ' Clear listbox contents. Me.PicPath2 = "" ' Set up the File Dialog. Set fDialog = Application.FileDialog(msoFileDialogFilePicker) With fDialog ' Allow user to make multiple selections in dialog box .AllowMultiSelect = False ' Set the title of the dialog box. .title = "Please select one image" ' Clear out the current filters, and add our own. .Filters.Clear .Filters.Add "png image", "*.jpg" .Filters.Add "jpg image", "*.bmp" .Filters.Add "jpeg image", "*.png" .Filters.Add "jpg image", "*.jpeg" .Filters.Add "All Files", "*.*" ' Show the dialog box. If the .Show method returns True, the ' user picked at least one file. If the .Show method returns ' False, the user clicked Cancel. If .Show = True Then 'Loop through each file selected and add it to our list box. For Each varFile In .SelectedItems destpath = Application.CurrentProject.Path & "\" & "Pictures" & "\" & Me.Key & "." & Right$(varFile, Len(varFile) - InStrRev(varFile, ".")) FileCopy varFile, destpath Kill (varFile) Me.PicPath2 = destpath Me.Refresh Next Else MsgBox "لقد قمت بالنقر فوق إلغاء الأمر في مربع حوار الملف." End If End With Exit Sub err: MsgBox err.Description & " " & err.Number تم اضافة هذا الجزء Kill (varFile)3 points
-
اخي الكريم لما تفتح موضوع لا تكرر الموضوع مرة اخرى .... حتى يتمكن الزملاء من الاجابة تفضل ..... Me.kanory.DefaultValue = "#" & "7 / 11 / 2021" & "#"3 points
-
تفضل .... Me.kanory.DefaultValue = "#" & "7 / 11 / 2021" & "#"3 points
-
طيب قلنا انت كيف استخدمته ,,, وضح لنا .... أو ارفق مثال توضيحي لما تريد حتى نفهم ....3 points
-
3 points
-
و عليكم السلام و رحمة الله و بركاته تقبل الله من الجميع =INDEX(D3:M3;;MATCH(MAX(D5:M5);D5:M5;0)) اعلى-ادنى.xlsx2 points
-
تفضل أخي الكريم ضع هذه المعادلة في الخليةF5 واسحب يمينا =SUM(OFFSET($C$2,(COLUMN()-6)*3,0,3)) مع مراعاة إبعاد المجموع من آخر صف حيث يتم جمعه مع آخر خلية2 points
-
ملفك بعد التعديل السابق يعمل بكفاءة عالية حتى وإن وصلت الموديلات إلى 15000 ولكن هذا كود نسخ القيم الفريدة Sub mas_copyUnique() Sheets("الوارد").Range("D2:D15000").AdvancedFilter 2, , Sheets("المخزون").Range("B2"), 1 MsgBox "Done" End Sub للعلم ستحتاج إلى تنفيذ الكود بعد كل إضافة لموديل جديد فريد وهذه ميزة المعادلات عن الأكواد بالتوفيق2 points
-
أخي الكريم الفاصلة تختلف من جهاز لآخر حسب إعدادات النظام وتقريبا في حالتك الفاصلة هي الفاصلة المنقوطة وليست الفاصلة فقط لذلك يمكنك استعمال الفاصلة المنقوطة في المعادلة بدلا من الفاصلة لتصبح =IFERROR(INDEX(الرصيد!$J:$J;MATCH(C2;الرصيد!$C:$C;0));"") وهكذا في أي معادلة تنسخها من المنتدى تجعلها أولا موافقة لنظام جهازك بالتوفيق2 points
-
يمكنك إضافة عمود بعنوان الكمية المتبقية وتضع فيه المعادلة التالية في جدول1 و2 و3 و4 قبل عمود الملاحظات =IFERROR(INDEX(الرصيد!$J:$J,MATCH(C2,الرصيد!$C:$C,0)),"") وهي لجلب الكمية المتبقية لهذا الاسم ويمكنك استعمال التنسيق الشرطي لتلوينها إذا قلت عن صفر بالتوفيق2 points
-
اخي الكريم اتبع الشرح التالي في حال اردت اضافة بيانات الى جدول من حقول في النموذج غير منضمة اسهل طريقة بما أنك مبتدئ ان تستخدم الإستعلام الإلحاقي كما يلي بمجرد اختيار الجدول الذي سيتم الحاق البيانات به تبدء الأن اختيار حقول الجدول قم بإختيار الحقول التي ترغب بإضافة القيمة لها من النموذج تبقى الأن اضافة الحقول من النموذج داخل الإستعلام و هذا هو النموذج المستخدم كما ترى الحقول غير منضمة الأن نذهب للإستعلام لإضافة حقول النموذج داخل الإستعلام لإلحاق البيانات من النموذج الى الجدول ثم تضع اسماء الحقول كما يلي بعد تعبئة الحقول و حفظ الاستعلام الالحاقي تضع ازرار داخل النموذج لتشغيل الاستعلام و في حديث عند الضغط تضع التالي DoCmd.SetWarnings False DoCmd.OpenQuery " ضع هنا اسم الاستعلام الإلحاقي " DoCmd.SetWarnings True و كذلك الاستعلام التحديث بنفس الطريقة2 points
-
واذا اردت استخراج اسماء الطابعات برمجيا هذه الوحدة النمطية للحصول على اسماء الطابعات المثبتة في جهازك Public Function GetPrinters() As String Dim prn As Printer Dim strPrinter As String If Application.Printers.Count > 0 Then For Each prn In Application.Printers strPrinter = strPrinter & """" & prn.DeviceName & """;" Next GetPrinters = Left$(strPrinter, Len(strPrinter) - 1) End If End Function ويمكنك مناداة الوحدة النمطية اعلاه واظهار الاسماء في مربع تحرير داخل النموذج اكتب هذا الكود في حدث الفتح او التحميل للنموذج Dim strMsg As String Dim strTemp As String strTemp = GetPrinters() If Len(strTemp) = 0 Then Cancel = True strMsg = "No installed printers found." Else Me.cboPrinter.RowSource = strTemp End If باعتبار Me.cboPrinter هو اسم مربع التحرير في النموذج2 points
-
تفضل Private Declare Function SetDefaultPrinter Lib "winspool.drv" Alias "SetDefaultPrinterA" (ByVal pszPrinter As String) As Long Private Sub cmdprt_Click() ' تعيين الطابعة الافتراضية SetDefaultPrinter ("hp LaserJet 1000") ' أمر الطباعة DoCmd.OpenReport "yourReport", acViewNormal End Sub لست بحاجة الى ip حيث تجد اسم الطابعة في الحاسب الرئيس في شاشة الاجهزة والطابعات صحيح قد تكون الطابعات من النوع والاسم نفسه ولكن تجد في آخر الاسم ما يدل على الموقع2 points
-
و عليكم السلام و رحمة الله وبركاته في الخلية Q3 ضع الدالة التالية =SUBSTITUTE(TRIM(P3);CHAR(10);" -") قد يكون هذا طلبك و الله اعلم1 point
-
1 point
-
متشكر خالص لحضرتك وربنا يرضى عنك يارب وكل عام وحضرتك بخير<31 point
-
1 point
-
شكرا لكلماتك الطيبة وإذا كان ولابد ظهور رسالة يمكنك وضع المعادلة التالية في عمود الملاحظات في حالة وجود الكمية المتبقية في العمود F =IF(F2<0,"لا يمكن بيع هذه الكمية. لأن الكمية المتبقية بالسالب.","") ثم سحبها لأسفل1 point
-
اجسنت استاذي الفاضل الله يبارك فيك ويحفظك يا طيب جزاك الله خيرا اتعبت معاي نعم هذا هو المطلوب ممنون منك يا طيب ربي يخليك يارب1 point
-
أخي الفاضل لقد سبق وأخبرتني أن هذا الملف يتم مشاركته عبر الانترنت وأعتقد أنه في هذه الحالة لا يدعم أكواد vba التي تصنع الرسائل لذا اقترحت عليك هذه المعادلة لعرض الكمية المتبقية فلا يبيع أكثر من الكمية المتبقية1 point
-
ضع في القيمة الإفتراضية لحل السنة المالية ما يلي DLast("NowYaer", "EndYaer")1 point
-
لإضافة قيم لأكثر من جدول في نفس الوقت اتبع التالي Dim db As DAO.Database Dim sSQL As String On Error GoTo errorhandle ' الجدول الأول Set db = CurrentDb sSQL = "INSERT INTO [Table_Name1] (Column1, Column2,...) VALUES (Value1, Value2,....) " db.Execute sSQL ' الجدول الثاني sSQL = "INSERT INTO [Table_Name2] (Column1, Column2,...) VALUES (Value1, Value2,....) " db.Execute sSQL MsgBox "تم اضافة البيانات الى الجداول بنجاح", vbInformation + vbMsgBoxRight, "تأكيد" errorhandleexit: Exit Sub errorhandle: MsgBox Err.Description Resume errorhandleexit1 point
-
الملف المرفق يعمل عندي بدون مشاكل يا الله لم ألحظ أنك تستعمل أوفيس 2003 ودالة iferror غير مدعومة فيه لذا أنصحك بالتحول لأوفيس 2019 جرب استخدام if مع isna لتعمل مع أوفيس 2003 =IF(ISNA(INDEX(الرصيد!$J:$J,MATCH(C2,الرصيد!$C:$C,0))),"",INDEX(الرصيد!$J:$J,MATCH(C2,الرصيد!$C:$C,0))) بالتوفيق1 point
-
1 point
-
1 point
-
اين المشكلة انقري على الصف الذي به الكمية في العمود D وسيتم انشاء صفحة جديدة1 point
-
دعنا نجرب غير السطر الاول الذي هو في اعلى المحرر بهذا : Private Declare PtrSafe Function SetDefaultPrinter Lib "winspool.drv" Alias "SetDefaultPrinterA" (ByVal pszPrinter As String) As Long فقط تم اضافة PtrSafe اعتقد لا يلزم لانه عند النقر على الزر فالحدث يقوم بتغيير الطابعة الافتراضية الى الأمر الجديد اولا ثم تتم الطباعة1 point
-
السلام عليكم اولا وقبل كل شي انا مبتدي لا احد يقولي ما هكذا تورد يا سعد الابل ولكن حبيت اشارك بالي اعرفه قد يكون ليس المطلوب وليس حوله ولكن هي دلو ادلي بها مع الكل وتقبلو اكلامي بصدر رحب Request.accdb1 point
-
يا مرحبا بمعلمي أبو جودي الطريقة الأولى فيها شبه من الدوت نت تحميل المعلومات المدخلة للجدول المعين في الكود مع مربعات النصوص والحقول المرتبطة بها عن طريق الكود بالنسبة للاسرع كلا الطرق تؤدي إلى روما وأنا مع معلمي واستاذي جعفر لا نبحث عن التعقيد الطريق الموصول إلى الهدف بيسر وسهولة ويؤدي الغرض على اكمل وجه نسلكه والله اعلم وأجل1 point
-
1 point
-
وعليكم السلام 🙂 جرب هذا التعديل ، ورجاء تغيير المتغير XXX برقم صحيح : If [mo] = 1 Then Me.موعد1.Visible = Not (موعد1.Visible) Else Me.موعد1.Visible = False End If If [br] <= XXX Then Me.z.Visible = Not (z.Visible) Else Me.z.Visible = False End If جعفر1 point
-
1 point
-
وعلشان يكتمل الموضوع ، ومن ارشيفي ، ولا اعرف من عمل هذه البرامج ، اليك مرفقين: 1. تحديد عدد السجلات في التقرير ، 2. تحديد عدد السجلات في النموذج المستمر ، جعفر عدد السجلات للنموذج المستمر v.2.mdb تحديد عدد السجلات في التقرير.mdb1 point
-
شكرا لكلماتك الطيبة صعب جدا الفلتر بمعامل or لكن الحمد لله الذي وفقني في التوصل إليها يمكنك تغيير المعادلة في G4 وهي هذه المعادلة =@INDEX('6'!B:B,INDEX(4^8-LARGE((رصيد>0)*(رصيد>=$E$1)*(4^8-ROW(رصيد)),ROWS(G$4:G4)),0)) طريقة تغيرها كما يلي: 1- تكتب في الخلية E1 المبلغ المراد وهو -60000 2- حدد الخلية G4 ثم اضغط ( Ctrl+shift+سهم لأسفل ) ليقوم بتحديد النطاق من G4:G68 3- اكتب في شريط المعادلة ما يلي: =IFERROR(INDEX('6'!B:B,SMALL(IF($E$1>رصيد,ROW(رصيد),IF(رصيد>0,ROW(رصيد),"")),ROW()-3)),"") 4- اضغط Ctrl+shift+enter لأنها معادلة مصفوفات بالتوفيق1 point
-
أ/ محمد صالح حقيقة انا مستغرب كيف عمل معك الملف ظهر لي نفس الخطا عند الضغط على زر تنفيد الملف كان في وضع المشاركة تم الغاء تفعيله حتى يعمل تحياتي1 point
-
1 point
-
السلام عليكم =========== اخى الحبيب يجيى بارك الله فيك على الكود الصغير جدا "كبير جدا فى المقام" اخى اللحبيب عماد "ابداع" الحبيب الغالى ابو عبدالله " تعبتنا معاك يا عم الحاج" مافيش اروع من كده اخى goda509129 --------------- ولاثراء الموضوع هذا الكود الذى يتميز بعدة مميزات 1) يمكن طباعة الورقة طوليا او عرضيا بتغير هذا الجملة فى الكود CenterVertically = True Orientation = xlPortrait الى CenterHorizontally = True Orientation = xlLandscape كما يمكنك تحديد "هد" للصفحة يتكرر مع كل صفحة ويمكنك تغيرة فى الجملة PrintTitleRows = "$1:$1" كما يمكنك تظبيط الصفحة اتوماتيكيا من الجملة FitToPagesWide = 1 FitToPagesTall = 1 الميزة الثالثة والاخيرة يخيرك بين عدة طباعات اذا كان لديك اكثر من طباعة تحياتى Copy of كود طباعة مدى متغير.rar1 point
-
السلام عليكم تظهر رسالة تجاوز السعة عندما اريد انشاء استعلام حسابي و لا اعرف السبب و انا متاكد ان المعادلة صحيحة و لكن هل المشكلة بسبب عدد الاستعلامات الكثيرة الي انشئتها و هل هناك حل؟1 point
-
بسم الله الرحمن الرحيم لا أدري ماذا أصاب برامج مايكروسوفت بجهازي فكلما حاولت الدخول إلى الأكسس أو الوورد... تظهر لي رسالة تبلغني بأنني قمت بعملية غير شرعية وعندما حاولت إزالة Office XP من جهازي تظهر لي رسالة أخرى مفادها أن Msiexec قام بعملية غير شرعية وسيتم إيقافه وعندما حاولت تنصيب Microsoft Office 97 أو 2000 تظهر لي نفس الرسالة فماذا علي أن أفعل ساعدوني أرجوكم :') :') :') :') :') :') :') :')1 point
-
بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته،، لدي مشكلة أود التخلص منها . وهي عند تنفيذ النموذج (يحوي عدد من السجلات والأوامر ) إذا حركت السكرول الموجود في الفأرة فإن البيانات تنتقل للسجل الذي يليه، أي لو كان لدي جدول بيانات طلاب مدرسة، ولنفرض أن أول سجل هو للطالب محمد والسجل الثاني للطالب سعد، بطيعة الحال لو نفذت النموذج للجدول فإنه يخرج لي بيانات أول سجل، أي المتعلقة بالطالب محمد. الملاحظ وانا داخل النموذج لو حركت السكرول ( الزر الدائري الموجود بين الزر الايمين والايسر في الفأرة ) للاسف يعطيني السجل الثاني اي بيانات الطالب سعد .. السؤال : كيف أمنع المستخدم من التنقل بين السجلات عن طريق السكرول الموجود في الفأرة ؟ وشكرا1 point
-
مرفق مثال لنموذج فاتورة يتكون من نموذج F1 وآخر فرعي F2 عند ادخال بيانات الفاتورة وبعد الانتقال الى النموذج F2 وعند حقل رقم الصنف قم بالضغط على زرF9 سيظهر نموذج يوضح رقم الصنف واسمه وسعر بيعه ورصيده . لادخال الصنف فى الفاتورة اضغط F9 مرة أخرى . المشكلة هنا : النموذج الفرعي ( F2 ) لا يقبل أصناف أخرى .وطبعا أي فاتورة ممكن تحتوى على أكثر من صنف . كانت هناك طريقة قديمة وشغالة وهي قم باستبدال النموذج F2_11 بدلا من النموذج F2 واربطه مع النموذج F1 ستجد أن الفاتورة تقبل أكثر من صنف . لعل المطلوب يكون واضح . بالمناسبة فكرة F9 مقتبسه من أفكار خبيرنا أبو هادي . أشرف خليل F9.rar1 point
-
السلام عليكم عندي نموزج ويوجد عملية بسيطة به وهي الطرح فعندما مثلا نطرح الرقم 623.5 من 435.6 تظهر القيمة 187.90000000000001 ومن الممكن ايظا يحدث عند حساب مثلا 623.5 يطرح منه 623.5 يكون الناتج ُُE87668686+23223 لماذا يحدث هذا الخطا وكيف معالجته حيث انه لا يظهرفي كل مرة أ رجوا المساعدة علي فهم كيف يحدث هذا الخطأ وكيفية معالجته حيث انني لا أريد ان يكون الرقم محدود بأرقام عشرية ======= مع تحياتي1 point
-
السلام عليكم عندي مجلد في المستندات يحتوي على 6000 صورة تقريبا , هل هناك من إمكانية بعمل جدول على الأكسس بأسماء هذه الصور مرة واحدة ... أقصد أن لا أقوم بفتح جدول على الأكسس وأقوم بتسجيل إسماء الصور... صورة صورة ... طبعا هذه تحتاج لوقت كبير ...هل من حل لأختصار هذا الوقت ... الرجاء الأفادة فالموضوع يعني لي الكثير ...ويخفف عني عناءا كبيرا..1 point
-
السلام عليكم ،، سأرسرد لكم هذا الكود لتوضحو لي شيئا منه: If Me.RecordsetClone.RecordCount = 0 Then MsgBox "لايوجد شرح حسب بحثك.", vbOKOnly, "تنبيه" Me.FilterOn = False Me!زر_البحث.Caption = "البحث عن شرح" Else نتيجة.Visible = True Me.RecordsetClone.MoveLast نتيجة.Caption = "عدد الشروحات حسب البحث :" & vbCrLf _ & Me.RecordsetClone.RecordCount End If ما هي وظيفة RecordsetClone في هذا الكود ؟ وماذا تعني كلمة vbCrLf ؟ وشكرا جزيلا لكم....1 point
-
أخوتي السلام عليكم وبعد عندي استعلام فيه بيانات مكرره - حسب الجدول - سؤالى ما هو الطريق لجعل الاسم يظهر بدون تكرار1 point