-
Posts
9998 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
406
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
وعليكم السلام 🙂 سهلة ، في الاستعلام ، اذا الحقول اللي تريد تقارنهم A و B ، المعادلة تصبح : R: iif([A] = [B] , "OK" , "Not OK") ولتلافي الحقول الفارغة R: iif(nz([A],"|") = nz([B],"|") , "OK" , "Not OK") وعلشان الحبايب ، وعلشان تشوف كيف ان الحروف العربية قلبت الكود R: iif(nz([A],"|") = nz([B],"|") , "كله تمام يا معلم" , "لا لا ، الموضوع يحتاج تدخل من المعلم الكبير علشان يشوف لنا المشكله دي") وبعدين استخدم المعيار لتصفية "Not OK" 🙂 جعفر
-
كود لاستعراض المجلدات و الحصول على مسار المجلد
jjafferr replied to ابراهيم - ابو ريان's topic in قسم الأكسيس Access
لهذا السبب ، الطريقة الافضل لك ، هي عمل سؤال جديد ، حتى يستطيع الاعضاء المعاصرون من الرد على سؤالك ، وبسرعة 🙂 جعفر -
كود لاستعراض المجلدات و الحصول على مسار المجلد
jjafferr replied to ابراهيم - ابو ريان's topic in قسم الأكسيس Access
اخي اسلام 🙂 هذا الموضوع من 12 سنه ، فلا تتوقع رد من اصحابه !! هذا الرابط سيفيدك : اجعل برنامجك يعمل على النواتين 32بت و 64بت - قسم الأكسيس Access - أوفيسنا (officena.net) جعفر -
الحمدلله 🙂 غير صحيح ، والصحيح ان الارقام يتم التعامل معها بطريقة اسرع في قواعد البيانات 🙂 اما سبب قلب الرموز ، فهي بسبب اللغة العربية ، ولكن لا تهتم بهذا التغيير ، لأن الكمبيوتر يقرأها بالطريقة الصحيحة ، كما في العمود الذي على اليمين : . والدليل ان الكود يقارن بين الحلقين ، ويأتي بالنتيجة الصحيحة 🙂 جعفر
-
رجاء تجرب النتيجة الان 🙂 اصبحت الدالة هكذا: Function Add_RMZ() On Error GoTo err_Add_RMZ Dim rstT As DAO.Recordset Dim rstR As DAO.Recordset Dim rstX As DAO.Recordset Set rstT = CurrentDb.OpenRecordset("Select * From TAB") Set rstR = CurrentDb.OpenRecordset("Select * From TAB_RMZ") Set rstX = CurrentDb.OpenRecordset("Select * From TAB_RMZ_X") rstT.MoveFirst Do Until rstT.EOF rstR.MoveFirst Do Until rstR.EOF 'Debug.Print 'Debug.Print rstR!RMZ, rstT!NASS 'Debug.Print "-----------------" If InStr(rstT!NASS, rstR!RMZ & " ") > 0 Or InStr(rstT!NASS, rstR!RMZ & vbCrLf) > 0 Then 'Found it 'But is it already in TAB_MRZ_X rstX.FindFirst "[MNO]=" & rstT!MNO & " And [RMZno]=" & rstR!RMZno If rstX.NoMatch Then rstX.AddNew rstX!MNO = rstT!MNO rstX!RMZno = rstR!RMZno rstX.Update End If 'rstX.NoMatch End If 'InStr rstR.MoveNext Loop 'rstR rstT.MoveNext Loop 'rstT Exit_Add_RMZ: rstT.Close: Set rstT = Nothing rstR.Close: Set rstR = Nothing rstX.Close: Set rstX = Nothing MsgBox "Done" Exit Function err_Add_RMZ: If Err.Number = 3021 Then Else MsgBox Err.Number & vbCrLf & Err.Description End If Resume Exit_Add_RMZ End Function . جعفر 1361.RMZ02.accdb.zip
-
استعملت هذه الدالة: Function Add_RMZ() On Error GoTo err_Add_RMZ Dim rstT As DAO.Recordset Dim rstR As DAO.Recordset Dim rstX As DAO.Recordset Set rstT = CurrentDb.OpenRecordset("Select * From TAB") Set rstR = CurrentDb.OpenRecordset("Select * From TAB_RMZ") Set rstX = CurrentDb.OpenRecordset("Select * From TAB_RMZ_X") rstR.MoveFirst rstT.MoveFirst Do Until rstR.EOF Start_Here: 'Debug.Print 'Debug.Print rstR!RMZ, rstT!NASS 'Debug.Print "-----------------" If InStr(rstT!NASS, rstR!RMZ) > 0 Then 'Found it 'But is it already in TAB_MRZ_X rstX.FindFirst "[MNO]=" & rstT!MNO & " And [RMZno]=" & rstR!RMZno If rstX.NoMatch Then rstX.AddNew rstX!MNO = rstT!MNO rstX!RMZno = rstR!RMZno rstX.Update End If End If If rstR.EOF = False And rstT.EOF = False Then rstR.MoveNext ElseIf rstT.EOF Then Exit Do End If Loop If rstR.EOF = True And rstT.EOF = False Then rstR.MoveFirst rstT.MoveNext GoTo Start_Here End If Exit_Add_RMZ: rstT.Close: Set rstT = Nothing rstR.Close: Set rstR = Nothing rstX.Close: Set rstX = Nothing MsgBox "Done" Exit Function err_Add_RMZ: If Err.Number = 3021 Then Else MsgBox Err.Number & vbCrLf & Err.Description End If Resume Exit_Add_RMZ End Function . واعرف فيها ملاحظات 😁 جعفر 1361.RMZ02.accdb.zip
-
انا فهمي بطيء بعض الاوقات 😁 رجاء اعطني مثالين اثنين ، علشان اقدر اقتدي بهم 🙂 جعفر
-
على العموم ، هذا عملك وانت ادرى به 🙂 وشو المطلوب الآن ، هل نفس الطلب حسب السؤال ، او الحل الغريب (اللي محتاجين تفاصيله ، ومثال عليه) 🙂 جعفر
-
وعليكم السلام 🙂 السؤال ، ما فائدة هذا العمل ؟ جعفر
-
وهنا يأتي الابداع ، كل مبرمج يتفنن في عمله 🙂 للتجربة ، قمت بإستخدام الكود من الرابط ، ونتيجة الجدول كانت غير صحيحة/كاملة : . لذا ، فهذا الميدان يا حميدان ، تستطيع الاستفادة من ذاك الكود وتطوعه لحاجتك ، او بالتحليل تفهم ملف النص ، وتشارك في كود يعمل 🙂 جعفر
-
وانا سأوضح قصد اخوي ابو ابراهيم ، ولكن بالنظر في الملف بطريقة اخرى ، ليست الشفرة ، وانما استيراد البيانات الى جدول مؤقت ، وباستعلامات إلحاقية 🙂 - عملت برنامج اكسس جديد ، ثم استوردت من ملف النص IAS_Out_Cs_Detail.txt ، ثم نتابع طريقة الاكسس التلقائية لإستيراد الملف الى جدول جديد tbl_tmp ، وبدون تنظيف ، - عملت نسخ لجميع بيانات الجدول والصقتها في صفحة اكسل ، حتى يكون التحليل سهل : الحقول الصفراء والبرتقالية والمربع الاحمر ، هي معلومة واحدة ، اي ان جميع هذه الحقول لسجل واحد (رجاء المتابعة لشرح هذا) ، الحقول الصفراء متكررة مرتين ، فمثل ما قال اخوي ابو ابراهيم ، ممكن جعلها في جدول مستقل ، وفي الكود اشار اليه (If row Like) ("مركز*"Then ) ، الحقول البرتقالية كذلك ممكن جعلها في جدول مستقل (ElseIf row Like) ("الحساب*" Then) ، ونلاحظ بأن الحقول ابتداءً من field16 لسنا بحاجة اليها ، لأنها موجودة في المربع الاحمر ، وهذا ما اشار اليه اخوي ابو ابراهيم لما قال: "يوجد في هذا الملف بيانات خارجة عن الصف" ، والبيانات في المربع الاحمر هي للجدول الثالث ، وهذا الجدول يجب ان يحتوي على "رقم سجل" للجدول الاول ، و "رقم سجل" للجدول الثاني : . وبهذه الطريقة ، نعمل استعلام الحاقي لبيانات كل جدول ، واستعمال المعايير المناسبة لتنظيف البيانات قبل ادخالها للجدول 🙂 طريقة العمل تكون : 1. الاكسس يعمل اول جدول تلقائيا ، ونطلب منه ان لا يستورد الحقول التي لا حاجة لنا بها ، ثم في نهاية نطلب منه حفظ طريقة الاستيراد : . 2. نعمل استعلام الحاقي لكل جدول (قد نحتاج الى 3 استعلامات او اكثر) ، وتنظيف البيانات بإستخدام المعايير المناسبة ، 3. ثم عمل كود ليقوم بعمل 1 (طبها الاستيراد سيكون من نفس اسم الملف ولن يتغير ، فلابد لنا من عمل طريقة لهذه النقطة) و 2 🙂 وطبعا كود اخوي ابو ابراهيم جاهز وانظف واسهل للفهم 🙂 جعفر
-
المساعدة تنسيق زر داخل النمودج مع الصورة
jjafferr replied to ازهر عبد العزيز's topic in قسم الأكسيس Access
وعليكم السلام 🙂 بما انك اخترت ان تكون الصورة خلفية للنموذج (وليست كائن مستقل) ، فالصورة سيتغير مكانها بحجم الشاشة اذا استعملت Center (اي انها ستكون في منتصف الشاشة دائما) : . لذا وجب عليك استعمال Top Left بحيث مكانها لا يتغير ، ومن البداية ، العب في الصورة ، واضف المساحات الفارغة التي تحتاج اليها من فوق ومن اليسار ، وعلى اساسها سيكون الزر دائما ثابت 🙂 جعفر- 1 reply
-
- 1
-
-
عند فتح البرنامج تظهر رسالة إشعار الأمان (معدل)
jjafferr replied to أبو. سعود's topic in قسم الأكسيس Access
وعليكم السلام 🙂 تحتاج ان تعمل مجلد آمن : جعفر -
انت ارفقت 3 ملفات ، بالاضافة الى ملفك الاصل ، فيصبحوا 4 ملفات ، فهل هذا مجموع الملفات ، او ان هناك ملفات اخرى قد تخرج في المستقبل ؟ طلبك في انشاء جدول خاص (وبعدين استعلامات ، ونماذج ، وتقارير لكل جدول) لكل ملف لا يتماشى مع نظام قواعد البيانات ، فالطريقة الصحيحة هي استخدام نفس الجداول الموجودة ، ولكن بإضافة حقل يميز كل نوع من انواع الملفات . جعفر
-
الظاهر هذه رسالة من اعدادات امان الوندوز ، فانا لا تظهر لي هذه الرسالة لما افتح الملف من : الكمبيوتر المحلي ، من الشبكة ، من الانترنت !! جرب هذه الطريقة ActiveX WebBrowser القديمة ، وطريقتك موجودة ولكنها مخفية ، ويمكنك حذفها لاحقا. جعفر 1360.1.نسخ الملفات.accdb.zip
-
آمين يا رب العالمين 🙂
-
هذا كل اللي عملته: Option Compare Database Dim web As Object ' Private Sub Form_Current() If Len(Me.txtPath & "") = 0 Then web.Navigate "about:blank" Else web.Navigate Me.txtPath End If End Sub Private Sub Form_Open(Cancel As Integer) Set web = Me.WebBrowser28.Object End Sub جعفر 1360.نسخ الملفات.accdb.zip
-
بما ان المرفق واضح ، ولكي تستفيد وتعرف مكان الخطأ في كودك ، رجاء ارفاق ما عملته 🙂 جعفر
-
طلب مساعدة بخصوص طباعة من يوزر فوورم
jjafferr replied to Prince Mo3taz's topic in منتدى الاكسيل Excel
عفوا الاخ هاني قد تستغرب من قدرة الاساتذة في الرد على الكثير من المواضيع ، وبدون مرفق ، واذا احتاجوا اليه ، فسيطلبونه 🙂 جعفر -
وعليكم السلام 🙂 الجواب هنا جعفر
-
هذا كل اللي تحتاج اليه : dim strQuery as string strQuery="Sale_Daily" DoCmd.OpenQuery strQuery جعفر
-
حياك الله 🙂 كلامي هنا عن تكرار البصمة بدون فاصل: وبما انك لم ترد علينا بإمكانية استعمال صيغة accdb ، والتي بها نستطيع التحكم في الوقت الفاصل بين البصمة والاخرى ، لذا سأعطيك استعلام حذف البيانات الاضافية والذي عملت عليه سابقا: . 1. الاستعلام الذي يعطيك اول قيمة (الدخول T_Min) وآخر قيمة لليوم (الخروج T_Max) ، . 2. نفس بيانات الجدول CHECKINOUT ، ولكن بإضافة حقل للتاريخ ، ولا نستخدمه مباشرة ، وانما استعلام الحذف التالي يستعمله ، . 3. استعلام الحذف : . وقوته في المعيار ليحصر لبيانات المتكررة: Between (SELECT top 1 DateAdd('s','1',[CHECKTIME]) FROM CHECKINOUT As C WHERE C.USERID= [qry_InOut].[USERID] And DateSerial(Year(C.[CHECKTIME]),Month(C.[CHECKTIME]),Day(C.[CHECKTIME]))=[qry_InOut].[D] ORDER BY [CHECKTIME]) And (SELECT TOP 1 DateAdd('s','-1',[CHECKTIME]) FROM CHECKINOUT As C WHERE C.USERID= [qry_InOut].[USERID] And DateSerial(Year(C.[CHECKTIME]),Month(C.[CHECKTIME]),Day(C.[CHECKTIME]))=[qry_InOut].[D] ORDER BY [CHECKTIME] DESC) جعفر 1356.1.att2000.accdb.zip
-
الفرق بين سرعة الاستجابة LinkChildFields و recordset
jjafferr replied to rey360's topic in قسم الأكسيس Access
يمكن كذلك ربط الاكسس بـ SQL Server عن طريق ODBC وتكون الجداول مربوطة بواجهة الاكسس ، وتستعمل الاكسس بطريقة عادية : . جعفر