بحث مخصص من جوجل فى أوفيسنا
Custom Search
|
-
Posts
9,871 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
403
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
تشغيل استعلام او تقرير باختيار اكثر من كود السجل
jjafferr replied to ابو عبد الله العراقي's topic in قسم الأكسيس Access
وعليكم السلام ورحمة الله وبركاته العمل سهل للتقرير : اعمل تقرير غير مقيد بمعيار ، ولنسميه rpt ، وضع هذا الكود لفتح التقرير : Dim strIN As String strIN = InputBox("رجاء ادخل ارقام الدول، بينهم فاصلة") DoCmd.OpenReport "rpt", acViewPreview, , "[ConID] IN(" & strIN & ")" -
الظاهر انك تريد تعمل شيء مثل القاموس ، بمعنى اذا المستخدم كتب اي جزء من الكلمة ، فيجب جلب الكلمة الكاملة لها ، مثلا نستخدم كلمة positive : اذا المستخدم كتب اي من الكلمات التالية ، فيجب ان نظهر كلمة positive : positiv positi posit posi pos po اذا كان تخميني صحيح ، فعندك 3 طرق لعمل هذا: 1. تعمل جدول فيه حقلين: حقل مختصر الكلمة ، وحقل الكلمة كاملة ، وانا اوصي بهذه الطريقة ، لأنك لا يجب ان تتدخل برمجيا كلما زادت الكلمات ، وانما تعمل نموذج وتجعل المستخدم يدخل الكلمات ، وتقوم بإدخال جميع الاحتمالات المختصرة ، ومقابلها تكتب الكلمة الكاملة ، مثل الصورة التالية ، ثم تستخدم امر مثل DLoopUp لجلب الكلمة الكاملة : . 2. تعمل نفس الشيء اعلاه ، ولكن في الكود ، هكذا : If Me.Text16 Like "*positive*" Or _ Me.Text16 Like "*positiv*" Or _ Me.Text16 Like "*Positi*" Or _ Me.Text16 Like "*posit*" Or _ Me.Text16 Like "*posi*" Or _ Me.Text16 Like "*Pos*" Then Me.Text18 = "HIGH" ElseIf Me.Text16 Like "*LESS THAN*" Or _ Me.Text16 Like "*LESS THA*" Or _ Me.Text16 Like "*LESS TH*" Or _ Me.Text16 Like "*LESS T*" Or _ Me.Text16 Like "*LESS*" Or _ Me.Text16 Like "*LES*" Then Me.Text18 = "LOW" End If . 3. يجب ان تكون لغة الكيبورد هي العربية ، وتعمل نفس الشيء اعلاه ، ولكن من خلال اعدادات برنامجك :
-
طلب مساعده في فتح نموذج بالكود عند عدم تحقق الشرط
jjafferr replied to imad2024's topic in قسم الأكسيس Access
نعم ممكن ، ولكن لأي سجل؟ يعني تريد المستخدم يدخل البيانات ، ولما يغلق النموذج ، يعرف اي من بياناته غلط !! وبعدين اي معلومة تعتبر المعلومة الصحيحة ، num1 او num2 اذا اردتنا ان نغيرها !! مع وجود الرسالة ، عملت لك تنسيق شرطي ، اذا القيمتين لا يساوون بعض ، فالحقلين يكونون بلون مختلف . يجب عليك تحليل طريقة العمل ، وبعدين ممكن توصل الى الطريقة الاصح للحل 🙂 1591.تجريبي.accdb.zip -
طلب مساعده في فتح نموذج بالكود عند عدم تحقق الشرط
jjafferr replied to imad2024's topic in قسم الأكسيس Access
وعليكم السلام 🙂 1. انت تريد ان يتم فتح النموذج "رسالة" اذا قيمة الحقلين غير متساويين في السجل ، وليس على مستوى النموذج ، فعليه يجب ان تضع الكود على حدث "بعد تحديث" الحقل الثاني "نص2" (و الافضل لك ان تكتب اسماء الحقول بمعنى الحقل ، وليس نص1 .... ) ، 2. يجب ان تعطي اسم الحقل الذي في النموذج ، وليس اسم الحقل في الجدول/الاستعلام : -
البرنامج لا يعمل عند نقله الى الشبكة (معدل)
jjafferr replied to Mohammed Alsakka's topic in قسم الأكسيس Access
وعليكم السلام اخوي محمد 🙂 في المرة القادمة ان شاء الله ، رجاء مراعاة قوانين المنتدى بوضع عنوان للموضوع يشرح المشكلة 🙂 شرحك غير واضح !! رجاء تشرح المشكلة بطريقة اخرى ، والافضل ان تكون بخطوات ، وتشرح لنا ايش بالضبط المشكلة. جعفر -
-
الافضل ترفق لنا المشكلة ، وتخبرنا وين المشكلة 🙂
-
وعليكم السلام 🙂 الظاهر هذا الكود في VBA ، فخليني اعلمك كيف تصطاد🙂 اجعل كودك هكذا : dim mySQL as string mySQL="SELECT * FROM tblVacation where (((tblVacation.emp_code)= " & [TempVars]![EmpIdTemp] & " )) ORDER BY vacationstartdate Asc;" debug.print mySQL . في اسفل النافذة بتحصل على كود مثل التالي: SELECT * FROM tblVacation where (((tblVacation.emp_code)= 1234 )) ORDER BY vacationstartdate Asc; . انسخ الكود ، افتح استعلام جديد ، ولما تجيك نافذة اختيار الجداول ، اغلق النافذة ، ثم انقر بالفأرة اليمين في منتصف الاستعلام ، واختار SQL الصق الكود اعلاه ، ثم اختار Design ، فتحصل على استعلام عادي ، واضف الشرط الجديد ، ثم انقر الزر اليمين ، و اختار SQL مرة اخرى ، فتحصل على الكود المطلوب : . والآن يمكن تنظيف الكود كالتالي: من SELECT [VacationLife] AS Expr1, * FROM tblVacation WHERE ((([tblVacation].[emp_code])=1234) AND (([VacationLife])="سارية")) ORDER BY vacationstartdate; الى SELECT [VacationLife], * FROM tblVacation WHERE [emp_code]=1234 AND [VacationLife]='سارية' ORDER BY vacationstartdate ثم الى "SELECT [VacationLife], * FROM tblVacation WHERE [emp_code]= " & [TempVars]![EmpIdTemp] & " AND [VacationLife]='سارية' ORDER BY vacationstartdate"
-
وعليكم السلام 🙂 ايش رايك انت بنفسك تتأكد من هذه المعلومة 🙂 في الواقع الاكسس يحفظ جميع تفاصيل تصاميم النماذج والتقارير وبقية كائنات البرنامج كقيمة نصية ، وعند النقر على الزر كما في الصورة ادناه ، فسيحول الاكسس معلومات هذا النموذج الى ملف نصي ، وسيفتحه لك : . لما يفتح الملف ، ابحث عن كلمة Auto_ID حتى تعرف الجواب على سؤالك ، فالبيانات ستكون عن الحقل الاصفر وبقية اعداداته (طبعا بقية تفاصيل النموذج موجودة في ملف النص) 🙂 ---------------------------------------------------------------------------------- ولتعم الفائدة ويكتمل الموضوع : هذه الاوامر لحفظ جميع كائنات الاكسس الى ملفات نص ، و اوامر لقراءة ملفات النص وتحويلها الى كائنات في برنامج لاكسس : Public Sub ExportDatabaseObjects() ' https://access-programmers.co.uk/forums/showthread.php?t=99179 On Error GoTo Err_ExportDatabaseObjects Dim db As Database Dim td As TableDef Dim d As Document Dim c As Container Dim i As Integer Dim sExportLocation As String Dim strSql As String Set db = CurrentDb() sExportLocation = "C:\YOURLOCATION\" 'For Each td In db.TableDefs 'Tables ' If Left(td.Name, 4) <> "MSys" Then ' DoCmd.TransferText acExportDelim, , td.Name, sExportLocation & "Table_" & td.Name & ".txt", True ' End If 'Next td Set c = db.Containers("Forms") For Each d In c.Documents strSql = "insert into _ApplicationObjectList ( ObjType, ObjName, ObjLocation ) " & _ "select " & acForm & " as ObjType, '" & d.Name & "' as ObjName, '" & sExportLocation & "Form_" & d.Name & ".txt" & "' as ObjLocation;" db.Execute strSql, dbSeeChanges Application.SaveAsText acForm, d.Name, sExportLocation & "Form_" & d.Name & ".txt" Next d Set c = db.Containers("Reports") For Each d In c.Documents strSql = "insert into _ApplicationObjectList ( ObjType, ObjName, ObjLocation ) " & _ "select " & acReport & " as ObjType, '" & d.Name & "' as ObjName, '" & sExportLocation & "Report_" & d.Name & ".txt" & "' as ObjLocation;" db.Execute strSql Application.SaveAsText acReport, d.Name, sExportLocation & "Report_" & d.Name & ".txt" Next d Set c = db.Containers("Scripts") For Each d In c.Documents strSql = "insert into _ApplicationObjectList ( ObjType, ObjName, ObjLocation ) " & _ "select " & acMacro & " as ObjType, '" & d.Name & "' as ObjName, '" & sExportLocation & "Macro_" & d.Name & ".txt" & "' as ObjLocation;" db.Execute strSql Application.SaveAsText acMacro, d.Name, sExportLocation & "Macro_" & d.Name & ".txt" Next d Set c = db.Containers("Modules") For Each d In c.Documents strSql = "insert into _ApplicationObjectList ( ObjType, ObjName, ObjLocation ) " & _ "select " & acModule & " as ObjType, '" & d.Name & "' as ObjName, '" & sExportLocation & "Module_" & d.Name & ".txt" & "' as ObjLocation;" db.Execute strSql Application.SaveAsText acModule, d.Name, sExportLocation & "Module_" & d.Name & ".txt" Next d For i = 0 To db.QueryDefs.count - 1 strSql = "insert into _ApplicationObjectList ( ObjType, ObjName, ObjLocation ) " & _ "select " & acQuery & " as ObjType, '" & db.QueryDefs(i).Name & "' as ObjName, '" & sExportLocation & "Query_" & db.QueryDefs(i).Name & ".txt" & "' as ObjLocation;" db.Execute strSql Application.SaveAsText acQuery, db.QueryDefs(i).Name, sExportLocation & "Query_" & db.QueryDefs(i).Name & ".txt" Next i Set db = Nothing Set c = Nothing MsgBox "All database objects have been exported as a text file to " & sExportLocation, vbInformation Exit_ExportDatabaseObjects: Exit Sub Err_ExportDatabaseObjects: MsgBox Err.Number & " - " & Err.Description Resume Exit_ExportDatabaseObjects End Sub ------------------------- Sub RestoreDatabaseObjects() Dim strSql As String Dim rs As DAO.Recordset strSql = "select * from _ApplicationObjectList" Set rs = CurrentDb.OpenRecordset(strSql) If Not rs.BOF And Not rs.EOF Then rs.MoveFirst While (Not rs.EOF) Debug.Print rs.Fields("ObjName") Application.LoadFromText rs.Fields("ObjType"), rs.Fields("ObjName"), rs.Fields("ObjLocation") rs.MoveNext Wend End If rs.Close Set rs = Nothing End Sub ===================== for the new TableDataMacro To export: SaveAsText acTableDataMacro, "TableName", "C:\PathToFile\DataMacro.xml" To import: LoadFromText acTableDataMacro, "TableName", "C:\PathToFile\DataMacro.xml" جعفر 1589.SaveToText.mdb.zip
-
وعليكم السلام اخوي ابوخليل 🙂 نعم هذا البديل موجود ويمكن استعماله كذلك ، وتنفيذ فارق الوقت على الحاسبات سيكون بنفس الطريقة اعلاه 🙂 جعفر
-
صارت معانا😁 بس بوجه عام حتى في مثل الحالات، وقت الكمبيوتر المحلي ووقت السيرفر لن يتغيروا، إلا إذا بطارية motherboard الحاسبة المحليةخربانه، بس هذا كذلك يؤثر على الوقت عند تشغيل الكمبيوتر، فلما نفتح البرنامج يتصلح الوضع اثناء عمل البرنامج😊 جعفر
-
ارجوا المساعدة في عمل اشعار او تنبيه عند تغير البيانات
jjafferr replied to 2023 yahia's topic in قسم الأكسيس Access
السلام عليكم اخي يحى 🙂 رجاء لا تفتح اكتر من موضوع لنفس السؤال 🙂 للإستمرار في هذا الموضوع ، رجاء المتابعة على هذا الرابط : . يُغلق -
السلام عليكم اخوي ابو احمد 🙂 عندي سببين اللي ما خلوني استعمل تاريخ/وقت الخادم مباشرة: الشبكة ضعيفة ، وكل ثانية في البرنامج مهمة ، فمناداة وقت الخادم حوالي 1000 مرة خلال ساعة ، وبواسطة بين 2-3 مستخدمين ، كان بيشكل بطئ في البرنامج ، ايام زمان كنا نقدر وبكل بساطة تغيير وقت الكمبيوتر المحلي ، اما هذه الايام ، فيجب ان يكون عندك صلاحية مسؤول ، وبالتالي تجيك رسالة تسألك اذا اردت تغيير التاريخ/الوقت ، واذا نقرت على لا ، ضاع الشغل كله 😁 ولا تنسى اني انادي هذه الدوال مرة وحدة فقط ، عند فتح البرنامج فقط 🙂 هل فيه شيء آخر ممكن اكون سهوت عنه ، ويمكنك تفيدني فيه 🙂 جعفر
-
عملت لك فيديو يعطيك الطريقة : . وهذا هو الكود : (([tbl_Months].[Months_Georgian] Like "*يو*")) AND ([tbl_Months].[Months_Hijri] Like "*جمادي*") . كما ان مساعد اكسس اعطانا هذه الامثلة: This example uses the Like operator to compare a string to a pattern. Dim MyCheck MyCheck = "aBBBa" Like "a*a" ' Returns True. MyCheck = "F" Like "[A-Z]" ' Returns True. MyCheck = "F" Like "[!A-Z]" ' Returns False. MyCheck = "a2a" Like "a#a" ' Returns True. MyCheck = "aM5b" Like "a[L-P]#[!c-e]" ' Returns True. MyCheck = "BAT123khg" Like "B?T*" ' Returns True. MyCheck = "CAT123khg" Like "B?T*" ' Returns False. 1586.ABO.mdb.zip
-
العفو اخي الكريم ، رجاء اعطنا تفاصيل وامثلة اكثر ، علشان نفهم الموضوع كاملا ، ولا تنسى ان مرفقك مافيه بيانات علشان ممكن نفهم منها !! وشو قصدك في: ساعدنا بامثلة وبيانات علشان نساعدك في الحل
-
السلام عليكم 🙂 استعملت برنامج اخوي عمر ضاحي ، وعملت عليه التعديل المطلوب حسب طريقة استخدامي للباركود في برامجي ، انا استخدم Code39 ، لعمل البرنامج ، ما لك علاقة بخط الباركود ، البرنامج تلقائيا ينصبه عند فتح البرنامج ، ويحذفه عند الانتهاء من البرنامج 🙂 هناك خاصية لعمل الليبلات في تقارير الاكسس ، مجرد تختار من الليبلات العالمية الموجودة ، او تعمل ليبلك الخاص (كما عملته انا بهذه الخطوات) : . . فيقوم الاكسس بتعديل مسافات الحواف 1587.Label.zip
-
وعليكم السلام 🙂 القائمة موجودة ، إلا اذا انت اخفيتها 🙂
-
السلام عليكم 🙂 اعطنا بعض الامثلة لكلمات نُدخلها في Text16 وماذا تريد ان ترى في Text18
-
عند المرور على مكونات القائمة اريد لكل مكون ان يظلل
jjafferr replied to hamdy1111's topic in قسم الأكسيس Access
وعليكم السلام 🙂 بدلا عن Listbox ، اعمل نموذج جدولي ، واضبط الاعدادات ، وخليه مثل Listbox ، وبتقدر تعمل طلبك 🙂- 1 reply
-
- 1
-
السلام عليكم 🙂 - تم الغاء الجدول tbl_V_Seq ، - تم اضافة الحقل Seq الى الجدول tblVacations ، - يمكنك نقل هذه الدالة الى برنامج الواجهة ، واستعماله هناك ، - يجب استعمال هذه الدالة مرة واحدة فقط ، لأنها في كل مرة تحذف البيانات السابقة ، - اقترح اضافة الحقل Seq الى نموذج الاجازات ، ويدويا تعطيه: رقم التسلسل للاجازة السابقة ، اذا كانت الاجازة الجديدة استمرار للاجازة السابقة ، الرقم التسلسل التالي. Option Compare Database Option Explicit Function Make_Groups() 'نريد عمل لكل اجازات مستمرة ، مجموعة خاصة بها 'وبما انه لا توجد معلومة مميزة في السجل لتوضح الفرق بين الاجازة العادية والاجازة المستمرة 'فوجب التفكير في عمل هذه المجموعات 'ورأيت ان اسهل طريقة لعمل هذه المجموعات ، هو عمل رقم مسلسل لكل سجل 'فالاجازات المستمرة يكون لها نفس الرقم ، وعند انتهائها ، فالسجل التالي يحصل على الرقم المسلسل التالي ' ' 'بعد تحليل البيانات، اتضح ان الاجازة المستمرة معناها 'تاريخ بداية الاجازة الجديدة = تاريخ نهاية الاجازة السابقة + 1 (يوم واحد) ' 'فعليه، بدأنا بأول اجازة وتم اعطاءها رقم مسلسل 'ثم ننتقل الى السجل التالي ، ونتأكد من نتائج المعادلة اعلاه 'فإذا كانت النتيجة نفسها ، فمعناه انها اجازة مستمرة ونعطي السجل نفس الرقم 'واذا كانت الاجازة منقطعة ، فنقوم بإضافة 1 الى الرقم المسلسل ، وهكذا ' ' 'tbl_V_Seq تم الغاء الجدول 'واضافة الحقل Seq 'الى الجدول 'tblVacations ' Dim rstV As DAO.Recordset Dim rstVG As DAO.Recordset Dim Seq As Long Dim Last_EndDate As Date 'rstV = tblVacation بيانات الجدول 'rstVG = tblVacation Group By emp_code ارقام الموظفين بدون تكرار من الجول 'تنظيف الحقل Seq من البيانات السابقة CurrentDb.Execute ("UPDATE tblVacation SET Seq = Null") 'ارقام الموظفين بدون تكرار، والفرز تصاعدي Set rstVG = CurrentDb.OpenRecordset("SELECT emp_code FROM tblVacation GROUP BY emp_code ORDER BY emp_code") rstVG.MoveFirst 'حلقة دوران حتى نشمل جميع الموظفين Do Until rstVG.EOF 'سجلات كل موظف Set rstV = CurrentDb.OpenRecordset("SELECT * FROM tblVacation WHERE emp_code=" & rstVG!emp_code) 'اذا لا توجد بيانات للموظف، ابدأ التسلسل 1 If rstV.RecordCount = 0 Then 'No Record Seq = 1 End If 'اول قيمة للمقارنة ، ونجعلها فارغة Last_EndDate = 0 'حلقة دوران لمقارنة سجلات الموظف Do Until rstV.EOF 'اذا تاريخ نهاية الاجازة تساوي تاريخ نهاية الاجازة السابقة+1 If rstV!VacationStartDate = Last_EndDate Then 'نعم 'اعمل تعديل على السجل، واعطيه رقم التسلسل السابق rstV.Edit rstV!Seq = Seq rstV.Update Else 'لا 'اعمل تعديل على السجل، واعطيه رقم التسلسل السابق+1 rstV.Edit Seq = Seq + 1 rstV!Seq = Seq rstV.Update End If 'تاريخ نهاية الاجازة+1 Last_EndDate = rstV!VacationEndDate + 1 rstV.MoveNext Loop rstVG.MoveNext Loop rstV.Close: Set rstV = Nothing rstVG.Close: Set rstVG = Nothing MsgBox "Done" End Function جعفر 1581.1.سجل المحضرين_be.accdb.zip
-
السلام عليكم 🙂 للتجربة والتأكد من اني فهمت الموضوع ، رجاء عمل التالي: 1. شغل الدالة Make_Groups ، وذلك بكتابة اسمها في الاسفل ، ورجاء التأكد ان علامة الاستفهام بالانجليزي ، ثم انقر على زر Enter على الكيبورد . عندما تنتهي الدالة من عملها ، ستظهر لك رسالة "Done" ، عندها رجاء تشغيل الاستعلام qry_Vacations والتأكد بأن بياناتها كما تريد 🙂 الدالة تضع بياناتها في الجدول tbl_V_Seq ، وهو جدول تجميع الاجازات المستمرة 🙂 1581.سجل المحضرين_be.accdb.zip
-
في احد برامجي عملت نفس طريقتك ، "برواز" نموذج فرعي ، واستعملت النماذج الفرعية داخله (بدلا عن عمل تبويب لكل نموذج فرعي) ، في الواقع العمل كان اكثر صعوبة واخذ جهد اكبر في العمل ، لأنه يجب ان نشير "للبرواز" في كل خطوة ، وفي نفس الوقت نشير لإسم النموذج الفرعي لكل عملية خاصة به ، وبدلا عن التبويب للإنتقال من نموذج فرعي لآخر ، استعمل Navigation buttons ، والتي لا يمكن ربطها/لصقها مع النموذج ، سواء الرئيسي او الفرعي !! ولكن ، البرنامج لا يزال الافضل ولا يوجد له مثيل في المؤسسات 🙂
-
وهل جربت مثالي؟ للعلم ، انت لم تخبرنا الى الآن كيف تريد عمل النموذج الفرعي ، فنحن هنا اعطيناك الكود الذي يقوم بالعمل ، وانت تضع الكود الصحيح على الزر الصحيح على الحدث الصحيح
-
تفضل 🙂 اضف النموذج الفرعي ، ثم قم بالتعديل على البيانات ، ثم انقر على زر تعديل ، وحاول تعديل البيانات. كود عدم السماح بتعديل بيانات النموذج الفرعي: Private Sub x22_Click() Me.frm.Form.AllowEdits = False End Sub 1583.Database32.accdb True يعني اسمح (بالتعديل ، او الاضافة او ... ) False يعني لا تسمح (بالتعديل ، او الاضافة او ... )
-
عملت لك التعديل في مشاركتي السابقة 🙂