بحث مخصص من جوجل فى أوفيسنا
Custom Search
|
-
Posts
10020 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
408
نوع المحتوي
التقويم
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
السلام عليكم 🙂 المنتدى مليء بالمواضيع الدسمة ، كل الذي عليك فعله هو ، البحث جعفر
-
الحمدلله اننا على نفس الموجة
-
انعم واكرم بعمان واهلها الافاضل واصحابكم هم اصحابنا 😎 الله يسلمك ، اخوي زاهر عنده خطأ فني وما فهم السالفة اصحابنا اللي اتكلم عنهم ، اللي البخور يعزمهم ، تراهم اللي يطيرون جعفر
-
اووووه نسيت انك من متابعين مسيرتي مع اخونا الاستاذ فايز 🙂 جعفر
-
هممم ، يعني تريد تخبر اخوي خالد اني عماني ، وتريده يتحرّز بالبخور ، للعلم ، البخور يعزم اصحابنا جعفر
-
السلام عليكم 🙂 لما نستخرج معلومة في نص ، فيجب مراعاة ان المعلومات الموجودة امامنا الآن غير كاملة ، فمثلا من بيانات البرنامج المرفق ، بدلا عن: "اللغة العربية 2 الشعبة 2 " قد يكون عندنا شُعب برقمين ، او/ومواد برقمين ، مثل: "اللغة العربية 12 الشعبة 21 " على هذا الاساس ، فلا يمكننا الاعتماد على مكان وجود الرقم الثابت ، فنضطر على الاعتماد على الاشياء الاخرى الثابتة ، مثل كلمة "الشعبة" و المسافة " " التي قبلها وبعدها ، واحيانا نقرأ النص من اول حرف فيه ، بينما في احيان اخرى من آخر حرف فيه ، مثلا ، للحصول على رقم الشعبة Sh ، بحثت من آخر النص inStrRev على المسافة " " الاولى (بس في واقع الامر هي المسافة الاخير لما نقرأ من بداية النص) ، بينما للحصول على الصف ، بحثت من اول النص على كلمة "الشعبة" : . والنتيجة . جعفر 1244.stu_Table.accdb.zip
-
علشان يكون برنامجك ناجح ، اعتبر ان به عشرات الآلاف من السجلات ، على الاقل !! الطريقة الوحيدة للحصول على معلومة معينة في قواعد البيانات ، من بين مئات او آلاف او ملايين السجلات ، هو الاستعلام : قد يكون الاستعلام العادي الذي يسمح لنا الاكسس عمله بالطريقة التقليدية السهلة (وللعلم ، فالاكسس كان يتفوق على الكثير من قواعد البيانات العملاقة بهذه الميزة ، اما الباقين فكانوا يستعملون الكود !!) ، او الاستعلام في الكود بإستخدام SQL ، او الاستعلام بطريقة Recordset ، او بطريقة اسهل ، وهي الاستعلام بطريقة DSum او DLookup او DCount او DMax او بقية عائلة الدوال التي تبدأ بـ D (اذن فهي استعلام ايضا)**1 . يمكننا عمل استعلام مجاميع بواسطة الاستعلام العادي ، مع وضع معرّف السجل ID (وبهذه الطريقة يعمل الاستعلام مرة واحدة للحصول على المعلومة وجمعها) ، وقد نحتاج الى استعمال هذا الاستعلام كمصدر بيانات لإستعلام آخر عادي لإظهار بقية البيانات (يعني استعلام مجاميع 1 + استعلام عادي 1 = استعلامين) ، بينما عند وضع DSum في الاستعلام ، فإن الاستعلام يقوم بعمله كإستعلام عادي ، بالاضافة الى استعلام DSum لكل سجل (يعني 1 + استعلامات بعدد السجلات) ، لهذا السبب تجد انه بطئ جدا ، ويمكنك القاء نظرة هنا لمقارنة السرعة ، وبالخصوص آخر مقارنة وهي للـ DLookup في استعلام : جعفر **1 : هذه الطريقة لا تعمل عند ربط الاكسس مع SQL Server ، كنت اعتقد ان هذه الطريقة موجودة في الاكسس فقط ، وقد افادني اخي الاستاذ خالد @kha9009lid بأنها تعمل مع اوراكل بنفس طريقة عملها مع اكسس ولكن بدون الحاجة الى علامات التنصيص والاقواس [] وايضا تعمل مع قاعدة بيانات بيس الخاصة بتطبيق اوبن اوفيس بنفس الطريقة
-
اضافة تاريخ اليوم و اسم الفرع عند تصدير الى اكسيل
jjafferr replied to AMINYOUSIF's topic in قسم الأكسيس Access
السلام عليكم 🙂 اذا تسمح لي اخي ابوالبشر ، ومن واقع التجربة ، الافضل عند استعمال التاريخ في اسم الملف ، ان يكون سنه - شهر - يوم ، حتى يصبح فرز اسماء الملفات في المجلد بتسلسل تاريخ الحفظ🙂 DoCmd.OutputTo acOutputQuery, "Q_001", acFormatXLS, CurrentProject.Path & "\" & "كشف حساب" & "-" & a & "-" & Format(Date, "yyyy-mm-dd") & ".xls", True جعفر -
ما شاء الله عليك اخوي خالد ، ذاكرتك قوية 🙂 جعفر
-
يا الله ، بقفل الدكان واترك لك الجمل بما حمل ، وتصبح على خير 🙂 جعفر
-
في الجدول ، ما عندك امكانية تغييره برمجيا (ممكن ولكن باكواد طويلة ومعقدة) ، لذا ، فنحن نستعمل هذا الطريقة في النموذج للكمبوبوكس 🙂 . جعفر
-
يا اخي ، لو قلت هالكلام من قبل ، كنت بتلقاني متابع بصمت الى ان الله سبحانه وتعالى يفرجها عليك برجوعه ، لأني اعرف انك معذور في الحيرة 🙂 جعفر
-
هذا اللي لاحظته من مجريات السؤال 🙂 اجمع افكارك ، علشان السؤال التالي يكون متكامل ان شاء الله 🙂 جعفر
-
استاذ فايز ، اذا تعديل أخير ويخلص مشروعك ، فتوكل على الله وتابع جعفر
-
وعليكم السلام 🙂 اتفق مع اخوي خالد 100% ، والميزة هي انك تقدر تحسب النتائج بسهولة بهذه الطريقة 🙂 بس هل لاحظت ان علاقاتك خطأ !! . جعفر عفوا ، ما انتبهت انك عامل Lookup في الجداول ، وهذه احد الشعلات اللي اتجنبها 100% في برامجي !!
-
السلام عليكم 🙂 الاستاذ فايز ، يقول المثل: اذا حبيبك عسل لا تلحسه كله (مع الاعتذار لأخوي حسين) 🙂 صحيح ان اخوي حسين ما يقصر وما يرد لك طلب ، ولكن اللي اشوفه ان سؤالك صار مشروع رجاء مراعاة قوانين المنتدى ، سؤال لكل موضوع 🙂 جعفر
-
-
طريقة اظهار الصورة على شكل دائري في النموذج
jjafferr replied to بلال بلال's topic in قسم الأكسيس Access
الاستاذ بلال ، رجاء ارفاق الحجم الصحيح ، لأن كلمة "تصغير" لا معنى لها !! -
وعليكم السلام 🙂 المنتدى مليء بمثل هذه المواضيع ، استخدم خاصية البحث وستجد المطلوب ان شاء الله 🙂 جعفر
-
وعليكم السلام 🙂 لا تستخدم دوال Dsum, Dlookup, Dcount ..... في الاستعلام ، فأنت تكون قد حكمت على الاستعلام بالبطئ الشديد !! اعمل اول استعلام ، يكون استعلام مجاميع واجمع فيه (بدل Dsum) ، ثم اعمل استعلام آخر ، يكون احد مصدر بياناته هو استعلام المجاميع اعلاه ، ومصادر البيانات الاخرى ، واعمل بينهم علاقة حتى تكون السجلات صحيحة 🙂 جعفر
-
مشكلة استعلام crosstab في حال عدم وجود الحقل
jjafferr replied to Ahmed.IQ's topic in قسم الأكسيس Access
وعليكم السلام 🙂 هذا الرابط به الجواب على طلبك جعفر -
السلام عليكم 🙂 معلومات اضافية عن هذا الموضوع جعفر
-
السلام عليكم أخي الاستاذ حسين 🙂 انت اكبر من ان تسعك مثل هذه الكلمات ، ويشرفني ان ازف اليك شكر وتقدير مني شخصيا 🙂 وشكر وتقدير من ادارة الموقع لجميع المساهمين في نشر العلم في هذا الموقع 🙂 جعفر
-
شكرا اخوي خالد 🙂 اخي يوسف: للتوضيح ، هذا ما فعله اخوي خالد لحل مشكلة الرسائل 🙂 في الاستعلام الجدولي ، او الاستعلام الذي يستعمل الاستعلام الجدولي ، لما يكون عندك اي معلمة/اشارة الى حقل في نموذج ، يجب إعلام/إخبار الاستعلام بمكان ونوع هذه الحقول ، هكذا: . جعفر
-
وعليكم السلام 🙂 سيدي الفاضل ، سؤالك مهم ، ولكن صيغة الكود غير صحيحة !! لما نقول ان Dlookup بطيء ، فمقارنته تكون مع نتائج استعلام بدون Dlookup ، اما لما نقول لا تستعملوا Dlookup ، فهو في الاستعلام ، مثل: . اما اذا كانت مقارنتك في الكود بين Dlookup و Recordset : 1. لإستخراج قيمة واحدة فقط ، فطبيعي Recordset تكون ابطأ ، لأنها تعمل نسخة من البيانات وتحتفظه في الذاكرة المؤقته RAM في الكمبيوتر ، فهذه العملية تأخذ وقت ، 2. إستخراج اكثر من قيمة/سجل ، فيكون Recordset اسرع ، لأنه بعد حفظ القيمة في ذاكرة الكمبيوتر ، يكون الحصول على البيانات منها اسرع ، ولكن بشرط ان تعمل الكود بالطريقة الصحيحة (انظر الكود) ، انا عملت نسخة من الجدول test واسميته test2 ، وعملت حقل tst مفهرس، لأنك تستخدمه كمعيار للحصول على النتائج التي تريدها ، ثم ضغط واصلاح للبرنامج حتى يستفيد البرنامج من فهرست الحقل، وعليه ، اصبح جلب النتائج من الجدول الثاني اسرع بكثير !! اليك بعض التجارب التي عملتها للجدولين : Option Compare Database Private Sub Commande0_Click() Dim t, t11, t12, t13, t14, t21, t22, t23, t24 As Single Dim r As Long 'table test '1 Dlookup t = Timer r = Nz(DLookup("id", "test", "tst='mohamed'"), 0) t11 = Timer - t t11 = Format(t11, "#0.0####") '2 qry_test t = Timer r = DCount("*", "qry_test") t12 = Timer - t t12 = Format(t12, "#0.0####") '3 Recordset_1 t = Timer r = fff_1("test", "mohamed") t13 = Timer - t t13 = Format(t13, "#0.0####") '4 Recordset_2 t = Timer r = fff_2("test", "mohamed") t14 = Timer - t t14 = Format(t14, "#0.0####") 'table test2 '1 Dlookup t = Timer r = Nz(DLookup("id", "test2", "tst='mohamed'"), 0) t21 = Timer - t t21 = Format(t21, "#0.0####") '2 qry_test t = Timer r = DCount("*", "qry_test2") t22 = Timer - t t22 = Format(t22, "#0.0####") '3 Recordset_1 t = Timer r = fff_1("test2", "mohamed") t23 = Timer - t t23 = Format(t23, "#0.0####") '4 Recordset_2 t = Timer r = fff_2("test2", "mohamed") t24 = Timer - t t24 = Format(t24, "#0.0####") Debug.Print "Dlookup:" & vbCrLf & _ "table test: " & t11 & vbTab & " test2: " & t21 & vbCrLf Debug.Print "qry_test, test2:" & vbCrLf & _ "table test: " & t12 & vbTab & " test2: " & t22 & vbCrLf Debug.Print "Recordset_1:" & vbCrLf & _ "table test: " & t13 & vbTab & " test2: " & t23 & vbCrLf Debug.Print "Recordset_2:" & vbCrLf & _ "table test: " & t14 & vbTab & " test2: " & t24 MsgBox "Done" End Sub Public Function fff_1(tbl_Name As String, tt2 As String) As Long Dim db As DAO.Database Dim rs As DAO.Recordset Dim rr As Long Set db = CurrentDb Set rs = db.OpenRecordset("Select id, tst From " & tbl_Name) rs.FindFirst "[tst]='" & tt2 & "'" If rs.NoMatch Then fff_1 = 0 Else fff_1 = rs!id End If rs.Close: Set rs = Nothing End Function Public Function fff_2(tbl_Name As String, tt2 As String) As Long Dim db As DAO.Database Dim rs As DAO.Recordset Dim rr As Long Set db = CurrentDb Set rs = db.OpenRecordset("Select id, tst From " & tbl_Name & " WHERE tst='" & tt2 & "'") rs.MoveLast: rs.MoveFirst fff_2 = rs.RecordCount rs.Close: Set rs = Nothing End Function والنتائج من "كمبيوتري القديم" بالثواني واجزاء من الثانية : Dlookup: table test: 0.1875 test2: 0.0 qry_test, test2: table test: 0.375 test2: 0.00391 Recordset_1: table test: 1.19531 test2: 0.17578 Recordset_2: table test: 0.38281 test2: 0.00391 اما اذا وضعنا الدالة Dlookup في استعلام ، وهو الخطأ ، فنتيجة الاستعلام التالي ، والوقت الذي اخذته: والوقت الذي اخذته بالثانية وجزء من الثانية 997.8555 جعفر