اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

jjafferr

أوفيسنا
  • Posts

    9911
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    404

كل منشورات العضو jjafferr

  1. وعليكم السلام 🙂 اخي الفاضل ، ياريت تتوسع في شرحك بالتفصيل ، فكلما كان شرحك افضل وبمثال ، لوجدت الردود تكون اسرع ، ولكن لما اسؤال يكون مبهم ، فيتباطئ الاعضاء في الرد وينتقلون لموضوع آخر !! اذا كان سؤالك: ما هي طريقة اخفاء كلمة "Microsoft Access" من رسالة التنبيه هذه: . فالجواب ، انظر الى هذا المثال: . في الرابط: . جعفر
  2. وعليكم السلام 🙂 ارسلت لك رسالة على الخاص بهذا الخصوص ، بس الظاهر انك ما قرأت الرسالة الى الآن 🙂 جعفر
  3. السلام عليكم 🙂 1. تم عمل الحقل text_1 في الجدول ، 2. في النموذج ، تم تحويل حقل text_1 الى حقل نص عادي ، 3. لما تختار من القائمة Head_1 ، تظهر لك رسالة تطلب منك التأكيد على ملئ بيانات الحقل text_1 ببيانات الحقل Head_1 ، . وهذا هو كود تعبئة البيانات: Private Sub Head_1_AfterUpdate() Dim Msg, Style, Title, Response Msg = "ستقوم بتعبأة الحقل" & vbCrLf & _ " text_1 " & vbCrLf & _ "ببيانات الطالب من الحقل" & vbCrLf & vbCrLf & _ Me.Head_1 & " < " & Me.Head_1.Column(1) Style = vbYesNo + vbCritical + vbDefaultButton2 ' Define buttons. Title = "هل انت متأكد" ' Define title. Response = MsgBox(Msg, Style, Title) If Response = vbYes Then ' User chose Yes. DoCmd.SetWarnings False mySQL = "UPDATE Stu_select SET text_1 = " & [Forms]![تلاميذ محددين]![Head_1] mySQL = mySQL & " WHERE perm3=True" DoCmd.RunSQL mySQL DoCmd.SetWarnings True Me.Requery End If End Sub جعفر 1425.تحديد عناصر قائمة منسدلة وربطها بأخري.accdb.zip
  4. وعليكم السلام 🙂 اخي الفاضل ، من قوانين المنتدى: 2-يجب استخدام خاصيةالبحث قبل طرح السؤال توفيرا للوقت و الجهد. فلو بحث هكذا: . فستحصل على الكثير من المواضيع 🙂 جعفر
  5. ممكن ولكن بعد ان تقوم بتعديل التالي: لذا، يجب عليك ان تجعل هذا الحقل مرتبط بحقل في الجدول
  6. نعم يؤديان نفس المهمة ، ولكنها ليسا لزيادة السرعة 🙂 البرنامج يستطيع القيام بالمعادلات بشكل سريع ، ولكنك عندما تطلب منه او تسمح له بأن يُظهر/يعرض نتائج هذه المعادلات على الشاشة ، فالعرض يأخذ وقت ، وخصوصا اذا عندك اوامر اعادة عرض البيانات مثلا ، لذا ، بإستخدام الامر Me.Painting = False او DoCmd.Echo False ، فإننا نطلب من البرنامج بعدم إظهار/عرض التغييرات على الشاشة ، وانما إظهار/عرض النتائج النهائية فقط والتي تكون بعد الامر Me.Painting = True او DoCmd.Echo True ، لهذا السبب تلاحظ سرعة في الاداء 🙂 جعفر
  7. بس انت سابقا قلت: . للتعديل: بدل هاي Me.text_1.RowSource = "SELECT " & Me.Head_1 & " FROM Stu_select WHERE stu_code='" & Me.stu_code & "'" استعمل هاي Me.text_1.RowSource = "SELECT " & Me.Head_1 & " FROM Stu_select" . جعفر
  8. وعليكم السلام 🙂 تفضل 🙂 جعفر 1426.Delete.accdb.zip
  9. وعليكم السلام 🙂 اي من هذه الاعدادات تقصد ، فلا يمكن الجواب على سؤال عام 🙂 جعفر
  10. سيدي الفاضل الدكتور الحلبي 🙂 تم إعادة العمل ، بناء على الشرح 🙂 جعفر 1422.حذف من الفرعي.accdb.zip
  11. السلام عليكم 🙂 هذه الوحدة النمطية تقوم بإدخال القيم مربع التحرير والسرد 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
  12. وعليكم السلام 🙂 نفس المعادلة التي اعطيتك هنا: اذا كانت الفارزة بين الرقمين هي علامة "-" . اجعل مصدر بيانات الحقول كالتالي: الرقم الاول =Mid([NNAME],1,InStr([NNAME],"-")-1) الرقم الثاني =Mid([NNAME],InStr([NNAME],"-")+1) . جعفر
  13. وعليكم السلام 🙂 قد يفيدك هذا الرابط جعفر
  14. وعليكم السلام 🙂 هل تظهر الرسالة للإدخالات الجديدة او حتى للبيانات القديمة؟ جرب البرنامج الذي في الرابط ، للواجهة والجداول جعفر
  15. الحمدلله 🙂 وعليكم السلام اخوي موسى 🙂 جعفر
  16. في الواقع انا اتعمد ان اجعل الكود سلس وبسيط ومقسّم الى عدة اسطر ، وذلك لهدف ان تكون البرمجه مرنه لتغييرات المبرمج ، واحاول الابتعاد عن اختزال الكود قدر المستطاع 🙂 بالنسبة لإختيار السجلات في جملة Where ، عندك عدة اختيارات ، منها مربع الاختيار (نعم/لا) ، ومنها اي حقل له رقم/قيمة فريدة تدل على السجل ، لهذا السبب ، ترى اني استخدمت النوعين معا ، فبالاضافة الى قيم الحقل TNO (في مصفوفة في الكود) ، فقد قمت بإختيار مربع الاختيار MoveX (في الجدول) كذلك ، ويمكنك استعمال النوعين خارج النموذج ، وحتى عند اغلاق النموذج ، فقيمة TempVars!tmpVars_DoIn تكون موجودة طوال فترة عمل البرنامج ، الى ان يتم غلق البرنامج ، او اعطاء قيمة اخرى للمتغير ، او حذف بياناته. جعفر
  17. تفضل 🙂 قبل الاختيار ، سترى ان لون زر "الغي الاختيار" لونه اسود . وعند الاختيار ، سيتحول لونه الى الاحمر ، ليحذرك بأنه هناك اختيار سابق تم تخزينه في المتغير 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
  18. تفضل 🙂 لا نستخدم الزر ، وانما نستخدم زر مسك الفأرة : 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
  19. وعليكم السلام 🙂 استخدم هذا الكود للحقول المختارة: 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] جعفر
  20. برنامجك يقوم بهذا العمل. وللأسف ما فهمت المطلوب !! جعفر
  21. السلام عليكم 🙂 المبرمج قفل البرنامج بتحويله الى صيغة accde ، ولا يمكن فتحه ، واذا فيه طلب لتعديل البرنامج ، فيجب على المبرمج الرجوع الى النسخة المفتوحة وعمل التغييرات عليها 🙂 جعفر
  22. هذا معناه انك ما تريد توصيل حالي ، وما مستعجل 😁 جعفر
  23. محتاج توضيح اكثر عن العمل لوسمحت ، لأن ظاهر العمل هنا نسخ بيانات من جدول الى آخر !! جعفر
×
×
  • اضف...

Important Information