-
Posts
9903 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
404
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
مساعدة في كود حذف عدة سجلات بعد نسخها إلى جدول آخر
jjafferr replied to nssj's topic in قسم الأكسيس Access
وعليكم السلام 🙂 تفضل 🙂 جعفر 1426.Delete.accdb.zip -
وعليكم السلام 🙂 اي من هذه الاعدادات تقصد ، فلا يمكن الجواب على سؤال عام 🙂 جعفر
-
سيدي الفاضل الدكتور الحلبي 🙂 تم إعادة العمل ، بناء على الشرح 🙂 جعفر 1422.حذف من الفرعي.accdb.zip
-
تحديد عناصر قائمة منسدلة وربطها بقائمة أخري
jjafferr replied to محمود أبوسيف's topic in قسم الأكسيس Access
السلام عليكم 🙂 هذه الوحدة النمطية تقوم بإدخال القيم مربع التحرير والسرد Head_1 ، الدالة List_Table_Fields تأخذ مسمى الحقل الذي في الجدول ، واذا لم يكن هناك مسمى ، فتقوم بوضع اسم الحقل ، ويتم إضافة عمودين لمربع التحرير والسرد Head_1 ، الاول اسم الحقل (وعرضه صفر حتى لا يظهر في القائمة) ، والآخر مسمى الحقل (والذي يظهر في القائمة) : Public Function List_Table_Fields(cmb As ComboBox) As String On Error GoTo err_List_Table_Fields Dim tbdf As TableDef Dim fld As DAO.Field Dim iField_Caption As String Dim Field_Type As String For Each tbdf In CurrentDb.TableDefs If tbdf.Name = "Stu_select" Then For Each fld In tbdf.Fields iField_Caption = fld.Properties("Caption") Field_Type = DataType_Fields(fld.Type) 'fListseparator is from Regional setting, list separator 'add the items for the ComboBox Row Source cmb.AddItem fld.Name & fListseparator & iField_Caption 'Debug.Print tbdf.Name & vbTab & fld.Name & vbTab & Field_Type & vbTab & iField_Caption Next fld End If Next tbdf Exit_List_Table_Fields: Set tbdf = Nothing: Set fld = Nothing Exit Function err_List_Table_Fields: If Err.Number = 3270 Then 'this field does not have a caption for it, give it the field name iField_Caption = fld.Name Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Function Public Function DataType_Fields(DF) Select Case DF 'Case 4 ' DataType_Fields = "AutoNumber" Case 10 DataType_Fields = "Text" Case 12 DataType_Fields = "Memo" Case 4 DataType_Fields = "LongInt" Case 2 DataType_Fields = "Byte" Case 3 DataType_Fields = "Integer" Case 6 DataType_Fields = "Single" Case 7 DataType_Fields = "Double" Case 15 DataType_Fields = "Replication" Case 8 DataType_Fields = "DateTime" Case 5 DataType_Fields = "Currency" Case 1 DataType_Fields = "YesNo" Case 11 DataType_Fields = "OLEObject" Case 12 DataType_Fields = "Hyperlink" Case 101 DataType_Fields = "Attachment" End Select End Function . ولا عليك من الدالة DataType_Fields ، فوضعتها هنا حتى يكون موضوع حقول الجدول متكامل 🙂 اما الوحدة النمطية fRegional_Settings_info ، فمنها اخذت الفارزة بين قيم مصدر بيانات السطر Head_1 ، ويتم اخذ القيمة من اعدادات الوندوز ، فالنظام الامريكي يستخدم الفاصلة ([كود التلميذ], [الصف], [النوع]) ، بينما النظام العربي يستخدم الفاصلة المنقوطة ([كود التلميذ]; [الصف]; [النوع]) Option Compare Database Option Explicit ' This code was originally written by Dev Ashish. ' It is not to be altered or distributed, ' except as part of an application. ' You are free to use it in any application, ' provided the copyright notice is left unchanged. ' ' Code Courtesy of ' Dev Ashish ' Public Const LOCALE_ILANGUAGE = &H1 ' language id Public Const LOCALE_SLANGUAGE = &H2 ' localized name of language Public Const LOCALE_SENGLANGUAGE = &H1001 ' English name of language Public Const LOCALE_SABBREVLANGNAME = &H3 ' abbreviated language name Public Const LOCALE_SNATIVELANGNAME = &H4 ' native name of language Public Const LOCALE_ICOUNTRY = &H5 ' country code Public Const LOCALE_SCOUNTRY = &H6 ' localized name of country Public Const LOCALE_SENGCOUNTRY = &H1002 ' English name of country Public Const LOCALE_SABBREVCTRYNAME = &H7 ' abbreviated country name Public Const LOCALE_SNATIVECTRYNAME = &H8 ' native name of country Public Const LOCALE_IDEFAULTLANGUAGE = &H9 ' default language id Public Const LOCALE_IDEFAULTCOUNTRY = &HA ' default country code Public Const LOCALE_IDEFAULTCODEPAGE = &HB ' default code page Public Const LOCALE_SLIST = &HC ' list item separator Public Const LOCALE_IMEASURE = &HD ' 0 = metric, 1 = US Public Const LOCALE_SDECIMAL = &HE ' decimal separator Public Const LOCALE_STHOUSAND = &HF ' thousand separator Public Const LOCALE_SGROUPING = &H10 ' digit grouping Public Const LOCALE_IDIGITS = &H11 ' number of fractional digits Public Const LOCALE_ILZERO = &H12 ' leading zeros for decimal Public Const LOCALE_SNATIVEDIGITS = &H13 ' native ascii 0-9 Public Const LOCALE_SCURRENCY = &H14 ' local monetary symbol Public Const LOCALE_SINTLSYMBOL = &H15 ' intl monetary symbol Public Const LOCALE_SMONDECIMALSEP = &H16 ' monetary decimal separator Public Const LOCALE_SMONTHOUSANDSEP = &H17 ' monetary thousand separator Public Const LOCALE_SMONGROUPING = &H18 ' monetary grouping Public Const LOCALE_ICURRDIGITS = &H19 ' # local monetary digits Public Const LOCALE_IINTLCURRDIGITS = &H1A ' # intl monetary digits Public Const LOCALE_ICURRENCY = &H1B ' positive currency mode Public Const LOCALE_INEGCURR = &H1C ' negative currency mode Public Const LOCALE_SDATE = &H1D ' date separator Public Const LOCALE_STIME = &H1E ' time separator Public Const LOCALE_SSHORTDATE = &H1F ' short date format string Public Const LOCALE_SLONGDATE = &H20 ' long date format string Public Const LOCALE_STIMEFORMAT = &H1003 ' time format string Public Const LOCALE_IDATE = &H21 ' short date format ordering Public Const LOCALE_ILDATE = &H22 ' long date format ordering Public Const LOCALE_ITIME = &H23 ' time format specifier Public Const LOCALE_ICENTURY = &H24 ' century format specifier Public Const LOCALE_ITLZERO = &H25 ' leading zeros in time field Public Const LOCALE_IDAYLZERO = &H26 ' leading zeros in day field Public Const LOCALE_IMONLZERO = &H27 ' leading zeros in month field Public Const LOCALE_S1159 = &H28 ' AM designator Public Const LOCALE_S2359 = &H29 ' PM designator Public Const LOCALE_SDAYNAME1 = &H2A ' long name for Monday Public Const LOCALE_SDAYNAME2 = &H2B ' long name for Tuesday Public Const LOCALE_SDAYNAME3 = &H2C ' long name for Wednesday Public Const LOCALE_SDAYNAME4 = &H2D ' long name for Thursday Public Const LOCALE_SDAYNAME5 = &H2E ' long name for Friday Public Const LOCALE_SDAYNAME6 = &H2F ' long name for Saturday Public Const LOCALE_SDAYNAME7 = &H30 ' long name for Sunday Public Const LOCALE_SABBREVDAYNAME1 = &H31 ' abbreviated name for Monday Public Const LOCALE_SABBREVDAYNAME2 = &H32 ' abbreviated name for Tuesday Public Const LOCALE_SABBREVDAYNAME3 = &H33 ' abbreviated name for Wednesday Public Const LOCALE_SABBREVDAYNAME4 = &H34 ' abbreviated name for Thursday Public Const LOCALE_SABBREVDAYNAME5 = &H35 ' abbreviated name for Friday Public Const LOCALE_SABBREVDAYNAME6 = &H36 ' abbreviated name for Saturday Public Const LOCALE_SABBREVDAYNAME7 = &H37 ' abbreviated name for Sunday Public Const LOCALE_SMONTHNAME1 = &H38 ' long name for January Public Const LOCALE_SMONTHNAME2 = &H39 ' long name for February Public Const LOCALE_SMONTHNAME3 = &H3A ' long name for March Public Const LOCALE_SMONTHNAME4 = &H3B ' long name for April Public Const LOCALE_SMONTHNAME5 = &H3C ' long name for May Public Const LOCALE_SMONTHNAME6 = &H3D ' long name for June Public Const LOCALE_SMONTHNAME7 = &H3E ' long name for July Public Const LOCALE_SMONTHNAME8 = &H3F ' long name for August Public Const LOCALE_SMONTHNAME9 = &H40 ' long name for September Public Const LOCALE_SMONTHNAME10 = &H41 ' long name for October Public Const LOCALE_SMONTHNAME11 = &H42 ' long name for November Public Const LOCALE_SMONTHNAME12 = &H43 ' long name for December Public Const LOCALE_SABBREVMONTHNAME1 = &H44 ' abbreviated name for January Public Const LOCALE_SABBREVMONTHNAME2 = &H45 ' abbreviated name for February Public Const LOCALE_SABBREVMONTHNAME3 = &H46 ' abbreviated name for March Public Const LOCALE_SABBREVMONTHNAME4 = &H47 ' abbreviated name for April Public Const LOCALE_SABBREVMONTHNAME5 = &H48 ' abbreviated name for May Public Const LOCALE_SABBREVMONTHNAME6 = &H49 ' abbreviated name for June Public Const LOCALE_SABBREVMONTHNAME7 = &H4A ' abbreviated name for July Public Const LOCALE_SABBREVMONTHNAME8 = &H4B ' abbreviated name for August Public Const LOCALE_SABBREVMONTHNAME9 = &H4C ' abbreviated name for September Public Const LOCALE_SABBREVMONTHNAME10 = &H4D ' abbreviated name for October Public Const LOCALE_SABBREVMONTHNAME11 = &H4E ' abbreviated name for November Public Const LOCALE_SABBREVMONTHNAME12 = &H4F ' abbreviated name for December Public Const LOCALE_SABBREVMONTHNAME13 = &H100F Public Const LOCALE_SYSTEM_DEFAULT& = &H800 Public Const LOCALE_USER_DEFAULT& = &H400 Const cMAXLEN = 255 Private Declare PtrSafe Function apiGetLocaleInfo Lib "kernel32" _ Alias "GetLocaleInfoA" (ByVal Locale As Long, _ ByVal LCType As Long, ByVal lpLCData As String, _ ByVal cchData As Long) As Long '''' Function CountryName() As String Dim lngLocale As Long Dim strLCData As String, lngData As Long Dim lngX As Long strLCData = String$(cMAXLEN, 0) lngData = cMAXLEN - 1 lngX = apiGetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SCOUNTRY, strLCData, lngData) If lngX <> 0 Then CountryName = Left$(strLCData, lngX - 1) End If End Function '''' Function fLocaleInfo(lngLCType As Long) As String Dim lngLocale As Long Dim strLCData As String, lngData As Long Dim lngX As Long strLCData = String$(cMAXLEN, 0) lngData = cMAXLEN - 1 lngX = apiGetLocaleInfo(LOCALE_USER_DEFAULT, lngLCType, strLCData, lngData) If lngX <> 0 Then fLocaleInfo = Left$(strLCData, lngX - 1) End If End Function Function fLOCALE_IMEASURE() As String ' 0 = metric, 1 = US Dim lngLocale As Long Dim strLCData As String, lngData As Long Dim lngX As Long strLCData = String$(cMAXLEN, 0) lngData = cMAXLEN - 1 lngX = apiGetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_IMEASURE, strLCData, lngData) If lngX <> 0 Then fLOCALE_IMEASURE = Left$(strLCData, lngX - 1) End If End Function Function fListseparator() As String Dim lngLocale As Long Dim strLCData As String, lngData As Long Dim lngX As Long strLCData = String$(cMAXLEN, 0) lngData = cMAXLEN - 1 lngX = apiGetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SLIST, strLCData, lngData) If lngX <> 0 Then fListseparator = Left$(strLCData, lngX - 1) End If End Function . فعند حدث "تحميل النموذج" يتم اضافة اسماء ومسميات الحقول Call List_Table_Fields(Head_1) فتظهر هكذا . وعند حدث "عند التركيز" على مربع تحرير وسرد text_1 يتم عمل كود بيانات صفه : Private Sub text_1_GotFocus() Me.text_1.RowSource = "SELECT " & Me.Head_1 & " FROM Stu_select WHERE stu_code='" & Me.stu_code & "'" End Sub . الى الآن وكل شيء تمام 🙂 ولكن ، ولأن الحقل text_1 غير مرتبط بحقل في الجدول ، فأي قيمة تختارها له ، فإنها ستنطبق على بقية سجلات النموذج المستمر ، . فيجب عليك معرفة ماذا تريد عمله هنا 🙂 جعفر 1425.تحديد عناصر قائمة منسدلة وربطها بأخري.accdb.zip -
وعليكم السلام 🙂 نفس المعادلة التي اعطيتك هنا: اذا كانت الفارزة بين الرقمين هي علامة "-" . اجعل مصدر بيانات الحقول كالتالي: الرقم الاول =Mid([NNAME],1,InStr([NNAME],"-")-1) الرقم الثاني =Mid([NNAME],InStr([NNAME],"-")+1) . جعفر
-
قاعدة البيانات لا تعمل نهائيا عند نقلها على جهاز اخر
jjafferr replied to Ahmed Fahmy 2022's topic in قسم الأكسيس Access
وعليكم السلام 🙂 قد يفيدك هذا الرابط جعفر -
وعليكم السلام 🙂 هل تظهر الرسالة للإدخالات الجديدة او حتى للبيانات القديمة؟ جرب البرنامج الذي في الرابط ، للواجهة والجداول جعفر
-
تنفيذ الأمر في السجلات التي يتم تحديدها بالفأرة فقط
jjafferr replied to nssj's topic in قسم الأكسيس Access
الحمدلله 🙂 وعليكم السلام اخوي موسى 🙂 جعفر -
تنفيذ الأمر في السجلات التي يتم تحديدها بالفأرة فقط
jjafferr replied to nssj's topic in قسم الأكسيس Access
في الواقع انا اتعمد ان اجعل الكود سلس وبسيط ومقسّم الى عدة اسطر ، وذلك لهدف ان تكون البرمجه مرنه لتغييرات المبرمج ، واحاول الابتعاد عن اختزال الكود قدر المستطاع 🙂 بالنسبة لإختيار السجلات في جملة Where ، عندك عدة اختيارات ، منها مربع الاختيار (نعم/لا) ، ومنها اي حقل له رقم/قيمة فريدة تدل على السجل ، لهذا السبب ، ترى اني استخدمت النوعين معا ، فبالاضافة الى قيم الحقل TNO (في مصفوفة في الكود) ، فقد قمت بإختيار مربع الاختيار MoveX (في الجدول) كذلك ، ويمكنك استعمال النوعين خارج النموذج ، وحتى عند اغلاق النموذج ، فقيمة TempVars!tmpVars_DoIn تكون موجودة طوال فترة عمل البرنامج ، الى ان يتم غلق البرنامج ، او اعطاء قيمة اخرى للمتغير ، او حذف بياناته. جعفر -
تنفيذ الأمر في السجلات التي يتم تحديدها بالفأرة فقط
jjafferr replied to nssj's topic in قسم الأكسيس Access
تفضل 🙂 قبل الاختيار ، سترى ان لون زر "الغي الاختيار" لونه اسود . وعند الاختيار ، سيتحول لونه الى الاحمر ، ليحذرك بأنه هناك اختيار سابق تم تخزينه في المتغير TempVars!tmpVars_DoIn ، وتم الافصاح عن هذا المتغير في اعلى كود النموذج ، حتى يمكنه اضافة القيم: Dim tmpVars_DoIn as TempVars وكلما تختار سجلات اخرى ، فإن المتغير يضيف هذه السجلات الى المتغير . هذا الكود يقوم بإضافة ارقام الحقل TNO (يمكنك اختيار اي حقل يدل على رقم السجل) الى المتغير ، بحيث يكون المتغير يحتوي على مصفوفة بهذه الطريقة: 34 ,33 , 13 ,12 , 0 Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) 'Me.SelHeight = to specify or determine the number of selected rows 'Me.SelTop = to specify or determine which row (record) is topmost in the current selection Dim i As Integer Dim rst As dao.Recordset Set rst = Me.RecordsetClone rst.MoveFirst If Me.SelHeight = 0 Then Exit Sub ' Move to the first selected record. rst.Move Me.SelTop - 1 For i = 1 To Me.SelHeight TempVars!tmpVars_DoIn = TempVars!tmpVars_DoIn & ", " & rst![TNO] 'add the selected TNO to tmpVars_DoIt rst.MoveNext Next i 'show the selected in the Form 'اذا لا تريد تحديث النموذج، اوقف عمل السطر التالي Call TempVars_Use_Click 'change the button color, so that the user know somwthing is selected already Me.TempVars_Clear.ForeColor = vbRed 'Debug.Print TempVars!tmpVars_DoIn End Sub . ولما تريد استخدام اياستعلام (انا استعملت الكود الذي وضعته انت) ، يمكنك استخدام الكود التالي المحتوي على البيانات التي تم تحديدها : Mid(TempVars!tmpVars_DoIn, 3) . هذا كود زر الغي التحديد: Private Sub TempVars_Clear_Click() TempVars!tmpVars_DoIn = 0 'change the color to black, indicating nothing is selected Me.TempVars_Clear.ForeColor = vbBlack End Sub . وهذا كود استخدم سجلات التحديد Private Sub TempVars_Use_Click() 'remove the initial comma 'TempVars!tmpVars_DoIn = Mid(TempVars!tmpVars_DoIn, 3) CurrentDb.Execute "UPDATE TAB SET MOVEX = -1 WHERE TNO In (" & Mid(TempVars!tmpVars_DoIn, 3) & ")" 'show the selected in the Form 'اذا لا تريد تحديث النموذج، اوقف عمل السطر التالي Me.Requery End Sub . جعفر 1423.1.Record Selector.accdb.zip -
تنفيذ الأمر في السجلات التي يتم تحديدها بالفأرة فقط
jjafferr replied to nssj's topic in قسم الأكسيس Access
تفضل 🙂 لا نستخدم الزر ، وانما نستخدم زر مسك الفأرة : Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) 'https://stackoverflow.com/a/1670110 'https://stackoverflow.com/a/18793073 'Me.SelHeight = to specify or determine the number of selected rows 'Me.SelTop = to specify or determine which row (record) is topmost in the current selection Dim i As Integer Dim rst As dao.Recordset Set rst = Me.RecordsetClone If Me.SelHeight = 0 Then Exit Sub rst.MoveFirst ' Move to the first selected record. rst.Move Me.SelTop - 1 'its slow to refresh, so don't show it Me.Painting = False For i = 1 To Me.SelHeight rst.Edit rst![MOVEX] = -1 rst.Update rst.MoveNext Next i Me.SelHeight = 0 'unSelect the Records Me.Painting = True 'show the Records values End Sub جعفر 1423.select.accdb.zip -
تنفيذ الأمر في السجلات التي يتم تحديدها بالفأرة فقط
jjafferr replied to nssj's topic in قسم الأكسيس Access
وعليكم السلام 🙂 استخدم هذا الكود للحقول المختارة: UPDATE TAB SET TAB.MOVEX = -1 WHERE ((Not (TAB.MOVEX)=[Forms]![FRM2]![MOVEX])); ويمكنك استخدام UPDATE TAB SET MOVEX = -1 WHERE Not MOVEX=[Forms]![FRM2]![MOVEX] وفي صيغة الكود CurrentDb.Execute "UPDATE TAB SET MOVEX = -1 WHERE Not MOVEX=" & [Forms]![FRM2]![MOVEX] جعفر -
برنامجك يقوم بهذا العمل. وللأسف ما فهمت المطلوب !! جعفر
-
السلام عليكم 🙂 المبرمج قفل البرنامج بتحويله الى صيغة accde ، ولا يمكن فتحه ، واذا فيه طلب لتعديل البرنامج ، فيجب على المبرمج الرجوع الى النسخة المفتوحة وعمل التغييرات عليها 🙂 جعفر
-
المساعدة !! هل يمكن البحث عن طريق checkbox
jjafferr replied to walid7799's topic in قسم الأكسيس Access
هذا معناه انك ما تريد توصيل حالي ، وما مستعجل 😁 جعفر -
محتاج توضيح اكثر عن العمل لوسمحت ، لأن ظاهر العمل هنا نسخ بيانات من جدول الى آخر !! جعفر
-
المساعدة !! هل يمكن البحث عن طريق checkbox
jjafferr replied to walid7799's topic in قسم الأكسيس Access
حياالله من يانا وجاب طارينا 🙂 الله يسلمك انت لم تحدد طريقة الاستلام ، وعليه نحدد طريقة الارسال ، واذا قلبك قوي ، ممكن يصلك حالا (ولقد اعذر من انذر) 😲😬 جعفر -
السلام عليكم اخي السيد 🙂 اليس من الجميل ان يرى بقية الاعضاء طريقة حل مشكلتك ، حتى يستفيدوا منها كذلك ، فهذا ما يقوم عليه المنتدى ، تبادل الافكار والحلول 🙂 لهذا السبب ، من قوانين المنتدى: اضغط هنـــــــــامن فضلك لقراءة القواعد كاملة المحظورات 21. يُمنع منعا باتا الإجابة على سؤالك أو أي حوار فني على الخاص أو إلى بريدك الخاص، الفائدة يجب أن تعم. يجب عدم الاستجابة لأي طلب على الخاص. كما يمنع ذكر وسائل التواصل الخاص أو البريد الإليكتروني في المشاركات لتعم الفائدة. وسيتم حذف وسائل التواصل أو البريد حال إضافتها. اما بالنسبة لحجم المرفق ، فيمكنك عمل ضغط واصلاح لبرنامجك ، ثم استعمال برنامج ضغط winrar او winzip او 7z لضغط البرنامج ، ثم ارفاقه هنا ، او رفعه على احد مواقع رفع الملفات ، وتوضع لنا رابط تنزيل الملف 🙂 جعفر
-
السلام عليكم 🙂 وهنا ستجد طرق اخرى جعفر
-
سلسلة تعديل msgbox سلسلة تغير خصائص MsgBox والاستفادة القصوى منها
jjafferr replied to king5star's topic in قسم الأكسيس Access
تجارب جميلة 🙂 جعفر -
🙂
-
العفو اخي الكريم ، لا يوجد داعي للإعتذار 🙂 وشكرا جزيلا لتجوابك 🙂 وسيتم نقل المرفق الى المشاركة الاصلية 🙂 جعفر
-
اضافة معيار جديد للفلتر ببرنامج الدائن وتصديرالى الاكسيل
jjafferr replied to abouelhassan's topic in قسم الأكسيس Access
متابع 🙂