بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
-
Posts
9975 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
406
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
بتغيير بسيط على كود اخوي موسى ، ليتماشى مع الاستعلام : DD: Calcdiffy([vdate1], [vdate2]) جعفر
-
جرب هاي: ListBoxEnhancedVer15.accdb
-
افتح النموذج في وضع التصميم ، ثم في وضع العرض 🙂
-
واقعا هي الطريقة المثلى والاكثر مرونه 🙂 ويمكنك استخدام مثال هذا المرفق: http://lebans.com/DownloadFiles/ListBoxEnhanced.zip جعفر
-
كارنيهات باستخدام باركود ماتركس - QR code
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
وعليكم السلام 🙂 اهلا وسهلا بك في المنتدى 🙂 تفضل واخبرنا مشكلتك هنا حتى يستفيد الجميع ، فالمنتدى لفائدة الجميع 🙂 جعفر- 119 replies
-
- 2
-
-
- pdf417
- باركود ماتركس
-
(و1 أكثر)
موسوم بكلمه :
-
استفسار في جملة Option Explicit محرر الاكواد (معدل)
jjafferr replied to السبيل1's topic in قسم الأكسيس Access
اخي الفاضل ، قوانين المنتدى لا تسمح بـ : 11. ممنوع طرح أكثر من سؤال في موضوع واحد ليسهل البحث عن المواضيع لاحقا. 12. يمنع وضع سؤال لا علاقة له بالموضوع الموضوع فيه التساؤل أو ليس له مناسبة في وضعه معه. فرجاء متابعة الموضوع ، منه 🙂 جعفر -
استفسار في جملة Option Explicit محرر الاكواد (معدل)
jjafferr replied to السبيل1's topic in قسم الأكسيس Access
اذا استخدمت عبارة Option Explicit في صفحة الكود ، ولم تقم بتعرييف المتغير ، فلما تشغل البرنامج ، تلقائيا سيعطيك رسالة خطأ ، على المتغير الذي لم يتم تعرييفه (حتى وان كان هذا المتغير في نموذج/تقرير/وحدة نمطية لا تخص النموذج الذ تم فتحه ، هو خطأ ويحذرك الاكسس عنه) ، ولتجنب الحصول على الخطأ من البداية ، ومعرفة هذه المتغيرات الغير معرّفه ، استعمل Debug < Compile . جعفر -
استفسار في جملة Option Explicit محرر الاكواد (معدل)
jjafferr replied to السبيل1's topic in قسم الأكسيس Access
حتى اذا محترف آخر يشوف الكود اللي انا عملته ، يمكن يكون عنده ملاحظه عليه ، فلا تهتم ، فاذا الكود شغال ، انتهيت من اول واهم خطوة ، والباقي تحصل عليه بالتجربة 🙂 نضع فيه هذه العبارة Option Explicit في جميع صفحات الكود ، ولكن ، ضعه في صفخة ، ثم Debug < Compile ، فتظهر لك المتغيرات التي تحتاج الى عمل Dim لها ، وتنتقل للصفحة التالية ، وهكذا . جعفر -
استفسار في جملة Option Explicit محرر الاكواد (معدل)
jjafferr replied to السبيل1's topic in قسم الأكسيس Access
اليك هذا الموضوع البسيط ، وبدون ان ترى المشاركات ، حل السؤال على ورقة ، سطر بسطر ، واكتب النتائج ، والآن ، ترجم نفس الخطوات الى اسطر برنامج ، اكتب سطر ، وشوف النتيجة ، ثم اكتب السطر التالي ، وشوف النتيجة ، وهكذا تضيف اسطر الكود 🙂 وبعد ان يعمل برنامجك نوعا ما ، تقدر تستفيد من المشاركات ، وطبعا مو لازم كودك يكون مثل المشاركات ، هناك الف طريقة للبرمجة 🙂 المبرمج مثل الطباخ ، عنده طرق واساليب لاستعمال نفس المكونات ، واعطاء طبخات مختلفه لها 🙂 بس يعني اذا تعلمت تطبخ بيض عيون ، تسمي نفسك طباخ ، وتكون عارف كل الطبخ ، لا طبعا !! رحلة الالف ميل تبدأ بطبق بيض العيون 🙂 جعفر -
وعليكم السلام 🙂 انا اختلف مع اخوي ابو جودي ، والجواب: نعم تقدر 🙂 ولكن بسبب التصميم ، فما جميع الانواع يكون عرض بياناتها تكون مقبولة 🙂 جعفر
-
انا تعمّدت وعملت التصدير من استعلام ، فعندك مرونه في زيادة الحقول ، او ربط مجموعة جداول مع بعض في الاستعلام 🙂 اذا ما قدرت تعمل المطلوب ، اخبرنا بالتفاصيل ، وان شاء الله تحصل على الجواب 🙂 جعفر
-
وعليكم السلام 🙂 الطريقة التي تريدها لا تصلح !! عندك الكثير من الحالات ، مثل: نوع الحقل ، واستخدام دوال خاصة ، وووو اليك ما توصلت له ، وبتعرف قصدي من الملاحظات اعلاه: Function Do_SQL(strTableName As String, frm As Form) As String Dim ctl As Control Dim mySQL As String, mySQL_f As String, mySQL_v As String 'mySQL_f = Fields 'mySQL_v = Values ' 'filed names to reveal field Types, examples: 'str_Name > Text 'dt_Today > Date ' For Each ctl In frm.Controls If ctl.ControlType <> acLabel And ctl.ControlType <> acCommandButton Then 'fields mySQL_f = mySQL_f & ", " & ctl.Name 'values Select Case ctl.Name 'special cases Case "Uname", "UPassword", "FullName", "lvlAnsr1", "lvlAnsr", "lvlAnsr3", "Umail" mySQL_v = mySQL_v & ", Encoder('" & ctl.Value & "')" Case Else If Left(ctl.Name, 3) = "str" Then 'text mySQL_v = mySQL_v & ", '" & ctl.Value & "'" ElseIf Left(ctl.Name, 2) = "dt" Then 'Date mySQL_v = mySQL_v & ", #" & ctl.Value & "#" Else 'the normal mySQL_v = mySQL_v & ", " & ctl.Value End If End Select End If 'ctl.ControlType Next ctl 'remove the initial comma mySQL_f = Mid(mySQL_f, 2) mySQL_v = Mid(mySQL_v, 2) mySQL = "INSERT INTO " & strTableName mySQL = mySQL & " ( " & mySQL_f & " ) " mySQL = mySQL & " SELECT " mySQL = mySQL & mySQL_v Debug.Print mySQL End Function . لهذا السبب ، مشاركتي السابقة هي افضل طريقة للتعامل مع هذا النوع من الاستعلامات 🙂 جعفر
-
وعليكم السلام 🙂 استخدمت نتائج Debug.print في الكود تبعك ، ثم حولته الى استعلام (اتضح انه استعلام الحاقي) ، حتى ابدأ من هنا 🙂 طريقتي: اعمل الاستعلام بالطريقة المعتادة: . هذه المسمات لا قيمة ولا فائدة منها ، ويمكننا ان نحذفها ، لأن الاكسس بيعطينا اسم جديد لأي حقل مافيه اسم : . جميع الحقول في الاستعلام تحتاج الى قيمة ، فيجب ان تكون جميع هذه القيم متغيرات ، وعددها 12 حقل ، بالاضافة الى اسم الجدول ، ولتبسيط هذه العملية ، سأستخدم اسم الحقل المراد الاضافة اليه بالاضافة الى الرقم 9 ، مثل: IDUser9 ، IDGroup9 ، بتحويل الاستعلام الاصل الى SQL ، نحصل على هذه الجملة: INSERT INTO UsystbllvlUsers( IDUser,IDGroup,UName,UPassword,FullName,lvlQ1 ,lvlAnsr1,lvlQ2 ,lvlAnsr2,lvlQ3 ,lvlAnsr3,Umail ) SELECT 1 AS IDUser, 3 AS IDGroup, Encoder("admin") AS UName, Encoder("admin") AS UPassword, Encoder("admin") AS FullName, 20 AS lvlQ1, Encoder("administrator") AS lvlAnsr1, 20 AS lvlQ2, Encoder("admin") AS lvlAnsr2, 20 AS lvlQ3, Encoder("managaer") AS lvlAnsr3, Encoder("admin@admin.com") AS Umail; ومن هنا سأبدأ عملية التغيير الى كود ، والهدف بعد الدقة ، هو سهولة الوصول الى الحقول المتشابهة ، اي الحقل والحقل الذي ستاتي منه البيانات ، 1. تفكيك جزئي الجملة ، الجزء الى والجزء من ، وتحويل جميع علامات " الى ' في الجملة (ما عدا التي يجب ان تبقى) : mySQL = "INSERT INTO UsystbllvlUsers( IDUser,IDGroup,UName,UPassword,FullName,lvlQ1 ,lvlAnsr1,lvlQ2 ,lvlAnsr2,lvlQ3 ,lvlAnsr3,Umail )" mySQL = mySQL & " SELECT 1 AS IDUser, 3 AS IDGroup, Encoder('admin') AS UName, Encoder('admin') AS UPassword, Encoder('admin') AS FullName, 20 AS lvlQ1, Encoder('administrator') AS lvlAnsr1, 20 AS lvlQ2, Encoder('admin') AS lvlAnsr2, 20 AS lvlQ3, Encoder('managaer') AS lvlAnsr3, Encoder('admin@admin.com') AS Umail" 2. تفكيك كل جزء الى اسم الجدول ، ثم السطر الثاني يكون اسماء الحقول ، ولنسمي هذه الاسطر 1، 2، 3، 4 mySQL = "INSERT INTO " & UsystbllvlUsers mySQL = mySQL & " ( IDUser,IDGroup,UName,UPassword,FullName,lvlQ1 ,lvlAnsr1,lvlQ2 ,lvlAnsr2,lvlQ3 ,lvlAnsr3,Umail )" mySQL = mySQL & " SELECT " mySQL = mySQL & " 1 AS IDUser, 3 AS IDGroup, Encoder('admin') AS UName, Encoder('admin') AS UPassword, Encoder('admin') AS FullName, 20 AS lvlQ1, Encoder('administrator') AS lvlAnsr1, 20 AS lvlQ2, Encoder('admin') AS lvlAnsr2, 20 AS lvlQ3, Encoder('managaer') AS lvlAnsr3, Encoder('admin@admin.com') AS Umail" ثم ندرج السطر الثاني والرابع تحت بعض (مؤقتا) ، حتى لا نخطأ ، ويكون الحقل من والى تحت بعض (لاحظ الفاصلة بين الحقول) : وعليه ، يصبح السطرين mySQL = mySQL & " ( IDUser, IDGroup, UName, UPassword, FullName, lvlQ1, lvlAnsr1, lvlQ2 , lvlAnsr2, lvlQ3 , lvlAnsr3,Umail )" mySQL = mySQL & " IDUser9, IDGroup9, Encoder('" & UName9 & "'), Encoder('" & UPassword9 & "'), Encoder('" & FullName9 & "'), lvlQ19, Encoder('lvlAnsr19'), lvlQ29, Encoder('lvlAnsr9'), lvlQ39, Encoder('lvlAnsr39'), Encoder('Umail9')" ثم نقوم بتغيير السطر حتى يأخذ المتغيرات (بدلا من مجرد وجودها في السطر الثاني) ، وهنا العمل الفعلي : الآن تم تعديل الكود لكي يستعمل المتغيرات ، ويمكنك استعماله بهذه الطريقة : mySQL = "INSERT INTO " & UsystbllvlUsers mySQL = mySQL & " ( IDUser, IDGroup, UName, UPassword, FullName, lvlQ1, lvlAnsr1, lvlQ2, lvlAnsr2, lvlQ3, lvlAnsr3,Umail )" mySQL = mySQL & " SELECT " mySQL = mySQL & IDUser9 & ", " & IDGroup9 & ", Encoder('" & UName9 & "'), Encoder('" & UPassword9 & "'), Encoder('" & FullName9 & "')," & lvlQ19 & ", Encoder('" & lvlAnsr19 & "'), " & lvlQ29 & ", Encoder('" & lvlAnsr9 & "'), " & lvlQ39 & ", Encoder('" & lvlAnsr39 & "'), Encoder('" & Umail9 & "')" فيصبح الكود النهائي بالشكل الذي انت تريده ، ولاحظ اهمية كتابة رقم الحقل بحيث الجزء الآخر يأخذ نفس الرقم ، فيسهل عليك معرفة كل جزء من الكود : Function Run_SQL(UsystbllvlUsers9, IDUser9, IDGroup9, UName9, UPassword9, FullName9, lvlQ19, lvlAnsr19, lvlQ29, lvlAnsr29, lvlQ39, lvlAnsr39, Umail9) Dim mySQL As String mySQL = "INSERT INTO " & UsystbllvlUsers9 mySQL = mySQL & "( IDUser," '1 mySQL = mySQL & "IDGroup," '2 mySQL = mySQL & "UName," '3 mySQL = mySQL & "UPassword," '4 mySQL = mySQL & "FullName," '5 mySQL = mySQL & "lvlQ1 ," '6 mySQL = mySQL & "lvlAnsr1," '7 mySQL = mySQL & "lvlQ2 ," '8 mySQL = mySQL & "lvlAnsr2," '9 mySQL = mySQL & "lvlQ3 ," '10 mySQL = mySQL & "lvlAnsr3," '11 mySQL = mySQL & "Umail )" '12 mySQL = mySQL & " SELECT " mySQL = mySQL & IDUser9 & ", " '1 mySQL = mySQL & IDGroup9 & ", " '2 mySQL = mySQL & " Encoder('" & UName9 & "'), " '3 mySQL = mySQL & " Encoder('" & UPassword9 & "'), " '4 mySQL = mySQL & " Encoder('" & FullName9 & "'), " '5 mySQL = mySQL & lvlQ19 & ", " '6 Questions '6 mySQL = mySQL & " Encoder('" & lvlAnsr19 & "'), " '7 mySQL = mySQL & lvlQ29 & ", " '6 Questions '8 mySQL = mySQL & " Encoder('" & lvlAnsr29 & "'), " '9 mySQL = mySQL & lvlQ39 & ", " '6 Questions '10 mySQL = mySQL & " Encoder('" & lvlAnsr39 & "'), " '11 mySQL = mySQL & " Encoder('" & Umail9 & "') " '12 'Debug.Print mySQL DoCmd.SetWarnings False DoCmd.RunSQL mySQL DoCmd.SetWarnings True End Function . وتناديه بإرسال قيم هذه المتغيرات : Call Run_SQL(tbl_Name,IDUser, IDGroup, UName, UPassword, FullName, lvlQ1, lvlAnsr1, lvlQ2, lvlAnsr2, lvlQ3, lvlAnsr3, Umail) جعفر
-
وعليكم السلام 🙂 اي حقل يخبرنا عن الشهر؟ انا استعملت [تاريخ البداية] ، واذا كان غير ، فرجاء تغير الاسم هنا : . وفي هذا النموذج تختار الشهر والسنه ، ويتم التصدير لنفس مجلد البرنامج ، ويكون الملف باسم: Client_Year-Month ، مثل Client_2021-10.xlsx . وهذا كود التصدير: Dim xls_File As String xls_File = Application.CurrentProject.Path & "\Clients_" & Me.iYear & "-" & Me.iMonth & ".xlsx" DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "qry_Export_to_Excel", xls_File, True جعفر 1503.تصدير.zip
-
نعم تقدر تستفيد من هذه الطريقة 🙂 قام حظك ابو جودي 🙂 جعفر
- 22 replies
-
- 2
-
-
- ابا جودى
- حقول إجبارية
- (و7 أكثر)
-
وعليكم السلام 🙂 في اعدادات الاكسس ، قم بإختيار status bar (في الدائرة الحمراء) . فلما تأتي للنموذج ، تجد ان القيمة موجودة هنا (السهم الاحمر) 🙂 . لذلك ، استخدم Tag بدلا عن Status Bar Text ، لأن الاكسس قد يستعمل هذه الخاصية ، وتختفي علامة * ويتم استبدالها بقيمة اخرى🙂 جعفر
- 22 replies
-
- 2
-
-
- ابا جودى
- حقول إجبارية
- (و7 أكثر)
-
مشكلة في حساب عدد الاسابيع مع التواريخ بالحلقات التكرارية
jjafferr replied to AliAli47's topic in قسم الأكسيس Access
طبعا اعرف هذا الشيء ، فهذه هي الحاسة السابعة للمبرمج 🙂 جعفر -
مشكلة في حساب عدد الاسابيع مع التواريخ بالحلقات التكرارية
jjafferr replied to AliAli47's topic in قسم الأكسيس Access
وهذه مشاركتي مع اخوي ابوجودي 🙂 استعمل النموذج frm_Generate_Weeks . وهكذا اصبح الكود: Private Sub cmd_Calc_Click() 'all weeks of the year 'Week Number, Saturday, Thursday 'do we have a Year If Len(Me.iYear & "") = 0 Then MsgBox "رجاء ادخال السنه التي تريد العمل عليها" Me.iYear.SetFocus Exit Sub End If 'Do we have iYear data in the table? If DCount("*", "semaine", "Year([dates1])=" & Me.iYear) Then MsgBox "الجدول به بيانات سنة " & Me.iYear & vbCrLf & vbCrLf & _ "لا يمكن الاستمرار" Exit Sub End If Dim D As Date, Date_1 As Date, Date_2 As Date Dim i As Integer, W As Integer Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Select * From semaine") For i = 0 To 366 D = DateAdd("d", i, "1-1-" & Me.iYear) If D >= "31-12-" & Me.iYear Then Exit For If Weekday(D) = 7 Then Date_1 = D 'Saturday Date_2 = DateAdd("d", 5, Date_1) 'Thursday W = W + 1 rst.AddNew rst!n_semaine = W rst!dates1 = Date_1 rst!dates2 = Date_2 rst.Update 'Debug.Print W & vbTab & Date_1 & vbTab & Date_2 End If Next i MsgBox "Done" End Sub جعفر Week, Saturday, Thursday of the year.zip -
فرز التاريخ، اذا كانت البيانات في حقل نص (معدل)
jjafferr replied to salim07's topic in قسم الأكسيس Access
وعليكم السلام 🙂 بالاضافة الى ملاحظة اخوي حسين ، فقوانين المنتدى تتطلب ان يكون لكل سؤال موضوع خاص 🙂 جعفر -
انا عن نفسي ، لم استخدم هذه الطريقة ابداً في اي من برامجي ، وإنما استخدم طريقة اكسس التقليدية 🙂 طبعا هذا لا يعني ان لا يكون هناك حالات خاصة في المستقبل قد استعملها فيها 🙂 بكلام آخر ، انا دائما استخدم طرق اكسس التقليدية : 1. استخدم ربط الجداول بالطريقة العادية ، 2. لا اعمل اخفاء للجداول والاستعلامات والنماذج و.. 3. استخدم قوائم زر الفأرة اليمين ، 4. واستخدم العمود الفقري وقوة الاكسس ، الاستعلامات العادية ، والجأ الى الكود وقت الحاجة ، 5. وووو جعفر
-
وعليكم السلام 🙂 تفضل: Private Sub Command4_Click() Call ApendData("MyTable", Me) End Sub Function ApendData(strTableName As String, frm As Form) Dim db As DAO.Database Dim rs As DAO.Recordset Dim ctl As Control Set db = CurrentDb() Set rs = db.OpenRecordset(strTableName) rs.AddNew For Each ctl In frm.Controls If ctl.ControlType <> acLabel And ctl.ControlType <> acCommandButton Then rs.Fields(ctl.Name) = ctl.Value End If Next ctl rs.Update rs.Close End Function جعفر ApendDataByRecordset.zip
-
اخفاء واظهار صور في نموذج مستمر ( مرفق مثال )
jjafferr replied to hosslom's topic in قسم الأكسيس Access
الآن عندك بحر من الحلول 🙂 هلا والله بالمتواضع 🙂 جعفر -
اخفاء واظهار صور في نموذج مستمر ( مرفق مثال )
jjafferr replied to hosslom's topic in قسم الأكسيس Access
تم تعديل الطريقة الاولى ، بتسمية الاستعلام qry_Show_imgs1 ، والنموذج Form1 ، وتمت الاستفادة من جزئية من كود اخوي حسين @د.كاف يار لضبط المسار تلقائيا (مع اني جربته سابقا ولم يعمل لسبب ما!!) ، شكرا اخوي حسين 🙂 وتم اضافة طريقة ثانية للعمل ، بإضافة الصور الى جدول خاص بها (لأن الصور محدودة وصغيرة فلن تأثر كثيرا على حجم البرنامج) ، فما صرنا محتاجين الى صور خارج البرنامج ، وعليه ، الاستعلام qry_Show_imgs2 ، والنموذج Form2 ، يقومان بالعمل 🙂 جعفر 1501.2.icons_3.zip -
اخفاء واظهار صور في نموذج مستمر ( مرفق مثال )
jjafferr replied to hosslom's topic in قسم الأكسيس Access
السلام عليكم 🙂 في النموذج المستمر ، لا يمكن عمل شيء لحقل دون آخر ، إلا استعمال التنسيق الشرطي 🙂 الطريقة الاخرى ، ان يكون هناك حقل لمسار للصور: هذا المجلد الذي فيه الصور . الاستعلام مصدر بيانات النموذج ، وفيه مسار الصور ، 1- يجب تغيير المسار يدويا ، 2- اسم الصورة هو دمج (مو جمع) الحقلين Completed و Printed . لاحظ اسم الملفات . والنتيجة . جعفر icons_3.zip