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

jjafferr

أوفيسنا
  • Posts

    9,871
  • تاريخ الانضمام

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

  • Days Won

    403

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

  1. وعليكم السلام 🙂 اخي الفاضل سعد ، انت عامل جداولك بصيغة الاكسل ، وهناك مجموعة اقتراحات علشان تضبط جداولك: 1. بما ان جميع الحقول متشابهة في الجداول ، تستطيع جمعها في جدول واحد ، وخصوصا هناك حقل اسمه "رقم الصف" ، فلن تكون هناك مشكلة ، 2. يجب تقسيم الجدول اعلاه الى اكثر من جدول ، بحيث كل جدول يكون له حقوله التي لا تتكرر ، مثلا المدرسة وبقية بياناتها تكون في جدول آخر ، وبيانات الطالب الثابته (مثل الاسم والرقم القومي والديانه ووو) في جدول ، وبياناته المتغيرة في جدول آخر (مثل الصف والترم والسداد واستلام الكتب والعام الدراسي وووو). وطريقة ربط الجداول تكون عن طريق حقل واحد في الجدول الاخر ، مثلا جدول متغيرات الطالب يكون فيه حقل رقم المدرسة (ورقم المدرسة حقل في جدول المدرسة) ، بينما جدول الطالب وجدول متغيرات الطالب يكون فيهم "رقم الطالب" 3. بالطريقة اعلاه ، سيكون عدد الحقول في كل جدول اقل بكثير من الموجود حاليا، 4. ثم نربط الجداول مع بعض في استعلام ، ويكون الاستعلام مصدر لبيانات النماذج والتقارير. وبعدين ارجع اسال سؤالك عن "عرض الاسماء في النموذج" 🙂 جعفر
  2. تفضلي ، نستعمل Parent للاشارة الى النموذج الرئيسي DoCmd.OpenForm "URINE", , , "[ID]=" & Me.Parent!ID Forms!urine!ID = Me.Parent!ID Forms!urine!code = Me.Parent!code Forms!urine!T.date = Me.Parent!T.date
  3. وعليكم السلام 🙂 لفتح نموذج اسمه URINE ، ونقل بيانات الحقول ID,CODE, T.date اليه DoCmd.OpenForm "URINE", , , "[ID]=" & Me.ID Forms!urine!ID = Me.ID Forms!urine!code = Me.code Forms!urine!T.date = Me.T.date جعفر
  4. اه نسيت هاي 🙂 انا شخصيا اُفضل ان اقسم سطر الكود الى عدة اسطر ، بحيث كل سطر يكون واضح ، اعرف وين بدايته ، وين نهايته (وبدون ما ادوخ راسي مع بقية الاسطر الاخرى ، فلو انك اتبعت طريقتي ، ما كنت تقع في الخطا هذا 🙂 خليني افكك سطرك الى عدة اسطر (على طريقتي) ، وبتشوف بنفسك : انت عملت qdf.Connect = "ODBC;DRIVER=SQL Server;SERVER=" & Me.server_name & ";" & "UID=" & Me.user_name & ";" & Trusted_Connection = no & "DATABASE=" & Me.database_name & ";""" (شوف مشاركتي السابقة)بينما اذا فككت السطر اعلاه على طريقتي qdf.Connect = "ODBC;DRIVER=SQL Server;SERVER=" & Me.server_name & ";" & _ "UID=" & Me.user_name & ";" & _ Trusted_Connection = no & _ "DATABASE=" & Me.database_name & ";""" المفروض يكون واضح لك مكان الخطأ
  5. رجاء ، لما تضع كود في المنتدى ، وعلشان يظهر بالطريقة الصحيحة : في قائمة رسائل التحرير ، هناك ايقونة بهذا الشكل: <> ، رجاء انقر عليها ، وستفتح لك نافذة جديدة ، وهنا تضع الكود 🙂 مو كفاية نشوف السطر اللي عليه الخطأ ، ولكن نريد نعرف رسالة الخطأ كذلك 🙂 والآن الى حل الخطأ ، رجاء استعمل هذا السطر بدل سطرك qdf.Connect = "ODBC;DRIVER=SQL Server;SERVER=" & Me.server_name & ";UID=" & Me.user_name & ";Trusted_Connection = no;DATABASE=" & Me.database_name & ";" . جعفر
  6. تفضل: 'strConnectionString="ODBC;DSN=database_name;UID=username;PWD=password;DBQ=ADPR;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;BTD=F;BNF=F;BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=T;MDI=F;CSR=F;FWC=F;FBS=64000;TLO=O;MLD=0;ODA=F;" 'التحكم في جميع المتغيرات Dim strConnectionString As String strConnectionString="ODBC;DSN=" & Me.database_name & ";" & _ "UID=" & Me.username & ";" & _ "PWD=" & Me.password & ";" & _ "DBQ=" & Me.ADPR & ";" & _ "DBA=" & Me.W1 & ";" & _ "APA=" & Me.T1 & ";" & _ "EXC=" & Me.F1 & ";" & _ "FEN=" & Me.T2 & ";" & _ "QTO=" & Me.T3 & ";" & _ "FRC=" & Me.Ten1 & ";" & _ "FDL=" & Me.Ten2 & ";" & _ "LOB=" & Me.T4 & ";" & _ "RST=" & Me.T5 & ";" & _ "BTD=" & Me.F2 & ";" & _ "BNF=" & Me.F3 & ";" & _ "BAM=" & Me.IfAllSuccessful & ";" & _ "NUM=" & Me.NLS & ";" & _ "DPM=" & Me.F4 & ";" & _ "MTS=" & Me.T6 & ";" & _ "MDI=" & Me.F5 & ";" & _ "CSR=" & Me.F6 & ";" & _ "FWC=" & Me.F7 & ";" & _ "FBS=" & Me.64000 & ";" & _ "TLO=" & Me.O1 & ";" & _ "MLD=" & Me.Zero1 & ";" & _ "ODA=" & Me.F8 & ";" 'او التحكم في اسم السيرفر واليوزر وكلمة السر strConnectionString="ODBC;DSN=" & Me.database_name & ";" & _ "UID=" & Me.username & ";" & _ "PWD=" & Me.password & ";" & _ "DBQ=ADPR;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;BTD=F;BNF=F;BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=T;MDI=F;CSR=F;FWC=F;FBS=64000;TLO=O;MLD=0;ODA=F;"
  7. وعليكم السلام 🙂 هل تريد تمرير قيمة اخرى بدلا عن "MyPassthroughQuery" جعفر
  8. تفضل يا سيدي اعمل اغلق النموذج/التقرير اولا (لاحظ مافيه اسم النموذج) ، ثم افتح النموذج الآخر لاحقا . لماذا ؟ شوف المقطع التالي: . جعفر
  9. جرب تقلب الكود ، كالتالي DoCmd.Close acForm, Me.Name DoCmd.OpenForm "main" وأريد اضافة الكود لإغلاق التقرير المفتوح DoCmd.Close report, Me.Name DoCmd.OpenForm "main" . او خلينا نشوف اللي عملته ، نشوف وين الخطأ
  10. عندك الكود ، واعمل هذا التغيير : بدل Me.Results.BackColor = RGB(0, 255, 0) 'green اكتب Me.Results = "اخضر" . وهكذا مع بقية الشروط
  11. وعليكم السلام 🙂 عمل جميل ، وعالي العال 🙂 كنت ناوي اشتغل عليه البارحة واخلي اللاعب يلعب بالماوس (مسك وافلات) ، ولكن ما شاء الله فعل ، وما صار عندي وقت 😞 جعفر
  12. تفضل ، الله يطول في عمرك 1611.البيان.accdb.zip
  13. وعليكم السلام 🙂 قاعدة ذهبية: لا تبدأ اسماء الكائنات او الحقول بأرقام. اسم حقل التاريخ اصبح iDate ، واسم حقل النتائج اصبح Results . انا عملت تغيير في خلفية الحقل Results على اسا قيمة iDate : Private Sub Form_Current() Call iDate_AfterUpdate End Sub Private Sub iDate_AfterUpdate() 'send the date properly Call Check_Dates(DateSerial(Year(Me.iDate), Month(Me.iDate), Day(Me.iDate))) End Sub Function Check_Dates(D As Date) 'Debug.Print DateSerial(Year(D), Month(D), Day(D)) If (Day(D) >= 1 And Month(D) >= 1) And (Day(D) <= 31 And Month(D) <= 3) Then Me.Results.BackColor = RGB(0, 255, 0) 'green ElseIf (Day(D) >= 1 And Month(D) >= 4) And (Day(D) <= 30 And Month(D) <= 6) Then Me.Results.BackColor = RGB(0, 0, 255) 'blue ElseIf (Day(D) >= 1 And Month(D) >= 7) And (Day(D) <= 30 And Month(D) <= 9) Then Me.Results.BackColor = RGB(255, 0, 0) 'red ElseIf (Day(D) >= 1 And Month(D) >= 10) And (Day(D) <= 31 And Month(D) <= 12) Then Me.Results.BackColor = RGB(0, 0, 0) 'black End If End Sub . جعفر
  14. اخي الفاضل 🙂 هل حاولت عمل ماكرو ؟ في الواقع اللي انت تريده يمكن لأي هاوي عمله ، فشد حيلك وحاول ، واحنا نساعدك لما تحصل على صعوبة 🙂 جعفر
  15. نعم الصفحة فيها رابط التنزيل ، وطريقة تنصيب البرنامج ، وشرح طريقة العمل وووو وهذا رابط التنزيل المباشر: https://www.skrol29.com/download/download.php?file=v2016_183.zip&sid=1 جعفر
  16. اسهل طريقة هو الرجوع الى نفس المحادثة مع الذكاء الصناعي ، واخبره عن الخطأ اعلاه ، وسيقوم باعطائك حلول 🙂 صعوبة التدخل في تعديل كود ، هو معرفة فكرة المبرمج في عمل المتغيرات ، وتسلسل التطبيق كذلك. اما اذا تريد مساعدة في عمل جديد ، فاطرح موضوع جديد ، بأمثلة من واقع برنامجك ، والشباب ما بيقصروا معاك ان شاء الله 🙂 جعفر
  17. اولا: . ثم يفتح لك هذا النموذج ، 1. اكتب اسم الحقل (الكلمة التي تريد البحث عنها) الذي تريد ان تبحث عنه في جميع كائنات البرنامج ، حسب ما تم التأشير عليه من جداول واستعلامات وتقارير ونماذج وكود ، 4. انقر البحث ، فيعطيك قائمة بكل كائن فيه هذه الكلمة (تنقر مرتين فيفتح لك الكائن ، وتقدر تغير الكلمة يدويا) ، وبعد ان تطمئن انه لا يوجد خلط وكل شيء واضح ، يمكنك النقر على رقم 2 وتكتب كلمة التغيير/الاستبدال التلقائي لهذه الكلمة في جميع الكائنات.
  18. وعليكم السلام 🙂 احد البرامج اللي ما اقدر استغني عنها في كل كمبيوتر اساسي ابرمج عليه ، هو هذا البرنامج :https://www.skrol29.com/us/vtools.php وفيه بحث/استبدال في قاعدة البيانات كاملة 🙂 وهنا بعض البرامج الاخرى اللي تعمل نفس الشئ: جعفر
  19. وعليكم السلام 🙂 اما انا فلم افلح مع الذكاء الصناعي !! ما ادري ، يمكن اسألتي صعبة 😁 الخطأ يقول: اول قيمة في الدالة ، نوع المتغير studentID في الدالة IsTeacherAssigned هو Integer . بينما بدلا عن تدخل قيمة Integer ، انت ادخلت قيمة من نوع: . الخطأ في السطر: . سهله 🙂 جعفر
  20. تفضل 🙂 الحقل في النموذج الرئيسي ، ومخفي : . جعفر 1609.One_Query_Several_Forms.accdb.zip
  21. وعليكم السلام 🙂 هذه طريقتي في تفكيك الكود الى اسطر ، كما انه مافي داعي لتكرار اسم الجدول لكل حقل ، إلا اذا كان هناك ربط بين اكثر من جدول ، وهناك اسماء حقول متشابهه ، حينها يجب استعمال اسم الجدول واسم الحقل معا : Dim mySQL as string mySQL="SELECT ID, tdate, code, age, hgb, hgb_s, rbc, rbc_s, hct, hct_s," mySQL=mySQL & " hgbp, mcv, mcv_s, mch, mch_s, mchc, mchc_s, rdwcv, rdwcv_s," mySQL=mySQL & " rdwsd, rdwsd_s, plt, plt_s, pct, pct_s, pdw, pdw_s, mpv, mpv_s," mySQL=mySQL & " wbc, wbc_s, netp, netp_s, lymp, lymp_s, monp, monp_s, eosp, eosp_s," mySQL=mySQL & " basp, basp_s, net, net_s, lym, lym_s, mon, mon_s, eos, eos_s, bas, bas_s," mySQL=mySQL & " MIDp, MIDp_s, Mid, MID_s, comment, segmp, segmp_s, bandp, bandp_s, segm, segm_s," mySQL=mySQL & " [band], band_s, WBC_HISTOGRAM, RBC_HISTOGRAM, PLT_HISTOGRAM" mySQL=mySQL & " FROM CBC_tbl" mySQL=mySQL & " WHERE ID=" & [Forms]![visit_frm]![ID] Me.RecordSource = mySQL . . لما يكون عندك استعلام ، الاكسس يعمل له Compile ، ويعمل له شيء اسمه Query plan (خطة عمل الاستعلام) ، فيكون اسرع لان الاكسس عمل طريقه تنفيذيه للاستعلام حسب المعايير والفرز (يعني يقوم بعمل اي معبار قبل الآخر ، ووهل يعمل الفرز قبل تطبيق المعيار وفهرسة الحقول لها دور كبير في عمل هذه الخطة) ، (ويمكنك انزال برنامج تستطيع من خلاله رؤية هذه الخطة وطريقة عملها ، وحتى عمل التغيير عليها ، هنا https://isladogs.co.uk/jet-showplan-manager/index.html ، وللعلم ، فانا اعرف عن خطة عمل الاستعلام اكثر من عقدين ولكني لم اتدخل في عملها الى الآن 🙂)، بينما لما نعمل الاستعلام عن طريق الكود (وهذا يحدث في كل مرة يقرأ بها الاكسس الكود) ، فيقوم الاكسس بعمل خطة عمل ، ومن ثم تنفيذ الاستعلام. ولكن وبعد ان اصبحت الكمبيوترات سريعة ، ففارق الوقت في الفترة التي يأخذها الاكسس في تنفيذ كِلا الاستعلامين ، تُعتبر شبه لا شيء ، ولكن الافضل (ولعدة اسباب ، وخصوصا عند عمل التغيير) والاسرع ، هو عمل الاستعلام شخصيا 🙂 القاعدة الذهبية في فهرسة حقول الاكسس هي: كل حقل تعمل معيار او فرز (سواء في الاستعلام او الكود او فلترة في النموذج او التقرير). ومن هذه القاعدة ، يجب ان يكون حقل ID في جدولك ، مفهرس 🙂 . طريقة فلترة (استعمال المعيار في الاستعلام) ، هي افضل وبأقل كود من استعمال التصفية/الفلترة في النموذج (Me.Filter والذي نحتاج الى عدة اسطر كود للتصفية وتشغيله وحذفه ، وفي عدة احداث) ، اما طريقة عمل التصفية في الاستعلام ، حسب المتغير الذي في النموذج: في الاستعلام ، في الحقل الذي نريد وضع المعيار عليه ، نكتب مسار متغير المعيار كاملا ، مثل Forms!visit_frm!ID ، او اذا كان في نموذج فرعي Forms!visit_frm!SubForm_Name!ID ، ويكون الاستعلام اعلاه مصدر بيانات النموذج visit_frm ، وفي النموذج يكون عندنا سواء مربع نص او مربع سرد او مربع قائمة ، وعلى حدث "بعد التحدبث" للحقل بعد كتابة القيمة فيه او اختيار القيمة ، نكتب me.Requery ، العيب في هذه الطريقة هو ، لا يمكنك استعمال هذا الاستعلام إلا بهذا النموذج ، فلو اردنا استعمال الاستعلام اعلاه مع المسار التالي Forms!myfrm!ID ، فلن يعمل ونظطر لعمل استعلام آخر له. والطريقة التي اتعامل معها في برامجي هي نفس الطريقة اعلاه ، ولكن : في برامجي ، هناك دائما نموذج اساسي لا يتم اغلاقه (frm_1 مثلا) ، واعمل فيه حقول نص مخفية ، مثل ID ، وفي الاستعلام اعلاه ، اعمل المعيار بهذا المسار: Forms!frm_1!ID ، ثم في النموذج visit_frm او myfrm ، وفي حدث "بعد التحديث" للحقل ، اكتب قيمة ID الى النموذج frm_1 ، ثم اشغل الاستعلام ، هكذا: Forms!frm_1!ID = Me.ID Me.Requery بهذه الطريقة يصبح الاستعلام مرن ويمكن استعمال معياره لاكثر من نموذج 🙂 جعفر
  22. وعليكم السلام ورحمة الله وبركاته فكرة جميلة في استخدام قواعد البيانات في امور لسنا معتادين عليها ، شكرا جزبلا لمشاركة الفكرة والبرنامج 🙂 جعفر
  23. همممم يتم الاحتفاظ بـ Login_Name في ملف صلاحيات المستخدمين mdw. ، واللي كان يُستخدم في الاكسس 2003 فما قبل ، والموجود في في الاكسس 2007 فما فوق ولكنه ليس لاستخدام المستخدمين 🙂 لهذا السبب ، وعند استخدام الكود الذي عرضته انا (والذي لا يحتاج الى معرفة مكان هذا الملف ، ومن المعروف ان المسؤول بإمكانه عمل ملف mdw لكل برنامج حسب مستخدميه ، ويعيد تسمية الملف) ، او كود قراءة ملف ldb. (للاكسس 2003 فما قبل) او laccdb. (للاكسس 2007 فما فوق) الذي عرضته انت ، فالملف لا يوجد به اسماء المستخدمين ، وانما به قطعاً Computer_Name والذي ياخذه من الوندوز 🙂 جعفر
  24. اخي محمد 🙂 رجاء اختيار افضل اجابة من اجابات الشباب، ولبس اجابتك 🙂 جعفر
×
×
  • اضف...

Important Information