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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    406

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

  1. وعليكم السلام 🙂 انا اعرف انك ما تريد هذه الحلول ، ولكني اضعها هنا علشان اللي يرد يعرف انك ما تريد رد مثلها : استعلام عن طريق VBA - قسم الأكسيس Access - أوفيسنا (officena.net) جعفر
  2. حياك الله 🙂 الكود يأخذ بيانات حقل جدول الوورد الى المتغير myValue واللي حجمه يسمح ببيانات بحجم حوال 2 جيجابايت فقط ، من رؤيتي السريعة ، نظرت الى بداية ونهاية بعض الحقول ، والنتيجة كانت صحيحة ، اما التجربة والتأكد النهائي فهو عليك 🙂 انا لاحظت بعض الاضافات على حقلي Col_1 و Col_2 ، وحذفتهم بهذا الكود: بدلا عن !Col_3 = myValue جرب !Col_3 = Replace(myValue, Chr(7), "") جعفر
  3. همممم انا الآن جربت جميع روابط الصفحة الاولى ، وجميعها شغال ويتم انزال المرفق !! جعفر
  4. اخي الفاضل: اذا بحثت في المنتدى ستجد الكثير والكثير من المواضيع ، جعفر
  5. اخي عاطف 🙂 كنت اعتقد انك تريد مساعدتنا في عمل تقرير ، واذا بك تريدنا نعمل برنامج !! اذا تريد مساعدة ، فيجب عليك ان تجهز البيانات في صفحات اكسل كالتالي (هذا من واقع البيانات اللي رأيتها) : 1. صفحة لمعلومات الطالب: رقم تسلسل الطالب الاسـم النوع تاريخ الميلاد 2. صفحة بمعلومات المؤسسة: رقم تسلسل المؤسسة التعليمية المؤسسة التعليمية المنطقة الأزهرية الإدارة التعليمية المعهد 3. صفحة لمعلومات الطلب للسنة الدراسية: رقم تسلسل الطالب الحالة الفصل العام الدراسي رقم تسلسل المؤسسة التعليمية 4. صفحة للحضور والغياب: رقم تسلسل الطالب التاريخ حضور/غياب وبعدها ممكن ان نأتي للأكسس 🙂 جعفر
  6. وعليكم السلام 🙂 اذا اردت دمج اكثر من استعلام مع بعض ، فيجب استخدام استعلام التوحيد Union query ، ولعمل استعلام التوحيد: 1. ان يكون عدد الحقول الظاهره لكل استعلام ، هي نفسها لجميع الاستعلامات ، 2. اذا كان ناقصك حقل في احد الاستعلامات ، اضف حقل فارغ ، 3. نستعمل الامر Union او Union All بين استعلام وآخر. جعفر
  7. السلام عليكم 🙂 نستطيع ان نستورد جدول الوورد الى الاكسس مباشرة : . وهذا الكود يقوم بالعمل: Private Sub cmd_From_Word_Click() ' 'https://bytes.com/topic/access/insights/961343-importing-ms-word-tables-into-ms-access-tables-using-vba ' 'modified by jjafferr, 2021-01-07 ' Dim i As Long Dim myValue As String 'Dim appWord As Word.Application, doc As Word.Document Dim appWord As Object, doc As Object Dim dbs As DAO.Database, rst As DAO.Recordset, strDoc As String Set appWord = CreateObject("Word.Application") 'establish an instance of word strDoc = CurrentProject.Path & "\1322.تحويل أكسس.doc" 'set string to document path and file Set doc = appWord.Documents.Open(strDoc) 'establish the document appWord.Visible = False Set dbs = CurrentDb 'establish the database to use (this is our current Database) Set rst = dbs.OpenRecordset("tbl_From_Word") 'establish the recordset With doc.Tables(1) 'target table 1 in People.docx For i = 1 To .Rows.Count 'cycle through rows in Tables(1) [we skip the first row because the table has headers] With rst .AddNew 'creating a new record myValue = doc.Tables(1).Cell(i, 1).Range.Text ![Col_1] = Replace(Replace(myValue, Chr(13), ""), Chr(7), "") 'remove the extra characters myValue = doc.Tables(1).Cell(i, 2).Range.Text ![Col_2] = Replace(Replace(myValue, Chr(13), ""), Chr(7), "") myValue = doc.Tables(1).Cell(i, 3).Range.Text ![Col_3] = myValue .Update 'update the whole record End With Next 'go to next row in Tables(1) End With rst.Close: Set rst = Nothing 'close and clear recordset dbs.Close: Set dbs = Nothing 'close and clear database doc.Close: Set doc = Nothing 'close and clear document appWord.Quit: Set appWord = Nothing 'close and clear MS Word Me.Requery MsgBox "Done" End Sub . ولا تنسى تغيير اسم ومسار ملف الوورد في المتغير strDoc حسب الوضع في كمبيوترك ، جعفر 1322.تحويل.accdb.zip
  8. وعليكم السلام 🙂 هذا معناه ان البرنامج الذي يعمل الباركود ، كان تجريبيا ، وانتهت فترة التجربة ، والآن يجب عليك شراءه 🙂 ولكن هناك بدائل اخرى في المنتدى لعمل الباركود ، مجانا ، فما عليك إلا ان تبحث 🙂 جعفر
  9. السلام عليكم 🙂 فيه مغالطة وعدم وضوح الفرق عند الكثيرين بين حقل الترقيم التلقائي (المعرف الذي ينشأه الاكسس في الجدول) ، وبين حقل تسلسل تلقائي. فحقل الترقيم التلقائي (و كلام اخوي ابو خليل من ذهب 🙂) : اما حقل التسلسل التلقائي ، فهناك طرق لعمله : 1. اذا اردته في التقرير فقط ، 2. اذا اردته في الاستعلام والنموذج ، 3. اذا اردته في الجدول (مثل عمل ترقيم مستمر مثل سندات الصرف ، او فواتير سنوية) : عمل حقل بصيغة رقم (او نص ، حسب المطلب) ، وبرمجيا في النموذج تقوم بإضافة 1 اليه ، وبعدة طرق ، وابسط هذه الطرق : ترقيم تلقائي يتجدد كل سنة - قسم الأكسيس Access - أوفيسنا (officena.net) جعفر
  10. تفضل : . انا شرحت لك هنا: الآن وقد تم عمل جميع المتطلبات ، فإذا عندك سؤال جديد ، رجاء عمل موضوع جديد لسؤالك 🙂 جعفر 1311.3.Data.accdb.zip
  11. حياك الله 🙂 في تعديل بسيط ، حيث تم اضافة مربع النص NoFocus في النموذج الفرعي ، ويجب ان لا تجعله مخفي ، ويمكنك ان تجعله تحت اول زر امر اذا اردت ، السبب في احتياجه هو ، عندما نختار مادة وتظهر لنا رسالة بياناتها (طبعا انت لن تستعمل الرسالة ، وانما ستستخدم بياناتها 🙂) ، فلا تستطيع ان تختار من القائمة الرئيسية مرة اخرى : . واما في الكود ، فقد تم اضافته في كود النموذج الفرعي ، هكذا: . جعفر 1321.1.RestTest111.accdb.zip
  12. السلام عليكم 🙂 انا عملت تغيير في النموذج ، واصبح بسيط : . بس هذه طريقة المجلدات . كود النموذج الرئيسي: Option Compare Database Option Explicit Private Sub cmd_quit_Click() DoCmd.Close acForm, Me.Name End Sub Private Sub Form_Load() Dim rst As DAO.Recordset Dim Pics_Path As String Dim RC As Long, i As Long 'the main buttons Set rst = CurrentDb.OpenRecordset("Select [FN],[Resturant] From Query_S_S Where S_S is not null Order By S_S") rst.MoveLast: rst.MoveFirst: RC = rst.RecordCount For i = 1 To 6 'path to the pitures folder Pics_Path = Mid(Application.CurrentProject.Path, 1, InStrRev(Application.CurrentProject.Path, "\") - 1) Me("cmd" & i).Caption = rst!Resturant Me("cmd" & i).Picture = Pics_Path & "\my foto333\" & rst!FN rst.MoveNext Next i rst.Close: Set rst = Nothing 'show if 1st button clicked Me.WhichCMD = 1 Call sfrm_Controls End Sub Function cmd_Click() Me.WhichCMD = Right(Screen.ActiveControl.Name, 1) Call sfrm_Controls End Function Function sfrm_Controls() On Error GoTo err_sfrm_Controls Dim rst As DAO.Recordset Dim Pics_Path As String Dim RC As Long, i As Long, iStart As Long Dim ctl As Control 'the main buttons Set rst = CurrentDb.OpenRecordset("Select [FN],[ID], [iName] From qry_Table1 Where S_S=" & Me.WhichCMD & " Order By ID") rst.MoveLast: rst.MoveFirst: RC = rst.RecordCount For i = 1 To RC 'path to the pitures folder, then path with file name Pics_Path = Mid(Application.CurrentProject.Path, 1, InStrRev(Application.CurrentProject.Path, "\") - 1) Pics_Path = Pics_Path & "\my foto333\" & rst!FN Me("sfrm_items")("c" & i).BackColor = Me("cmd" & WhichCMD).BackColor 'Back Color Me("sfrm_items")("c" & i).ForeColor = Me("cmd" & WhichCMD).ForeColor 'Fore Color Me("sfrm_items")("c" & i).Caption = rst!INAME 'Caption 'picture If Dir(Pics_Path) <> "" Then Me("sfrm_items")("c" & i).Picture = Pics_Path Else 'file type was not found, trye jpg Me("sfrm_items")("c" & i).Picture = Mid(Pics_Path, 1, Len(Pics_Path) - 3) & "jpg" End If Me("sfrm_items")("c" & i).Tag = rst!ID 'ID in Tag , so when clicking on the button we know which one Me("sfrm_items")("c" & i).Visible = True 'show the control rst.MoveNext Next i 'hide all subform controls For Each ctl In Me("sfrm_items").Controls Me("sfrm_items")("c" & i).Visible = False i = i + 1 Next Exit_sfrm_Controls: rst.Close: Set rst = Nothing Exit Function err_sfrm_Controls: If Err.Number = 2220 Then 'No picture Me("sfrm_items")("c" & i).Picture = "" Resume Next ElseIf Err.Number = 2465 Then 'we passed the number of controls Resume Exit_sfrm_Controls Else MsgBox Err.Number & vbCrLf & Err.Description End If End Function . ولما تنقر على اي من ازرار النموذج الفرعي ، تحصل على . وكود النموذج الفرعي: Option Compare Database Option Explicit Function myItems() 'get the items detail Dim A As String Dim x() As String Dim Resturant As String, S_S As Double, INAME As String, sal_price As Double, Qty1 As Integer, ID As Long A = DLookup("Resturant & '|' & S_S & '|' & INAME & '|' & sal_price & '|' & Qty1", "TABL1", "[ID]=" & Screen.ActiveControl.Tag) x = Split(A, "|") Resturant = x(0) S_S = x(1) INAME = x(2) sal_price = x(3) Qty1 = x(4) ID = Screen.ActiveControl.Tag MsgBox "Resturant =" & x(0) & vbCrLf & _ "S_S =" & x(1) & vbCrLf & _ "INAME =" & x(2) & vbCrLf & _ "sal_price =" & x(3) & vbCrLf & _ "Qty1 =" & x(4) & vbCrLf & _ "[ID]=" & Screen.ActiveControl.Tag End Function جعفر 1321.1.RestTest111.accdb.zip
  13. اخي الشامل 🙂 اذا كانت البيانات ذو اهمية ، فيمكنك الاتصال مع احد الشركات المتخصصه في استرجاع بيانات الاكسس ، وسيخبروك عن التكلفة وعن مايمكنهم استرداده ، ومنها هذه الشركة : EverythingAccess.com File Upload Form جعفر
  14. هذه يمكن ان تعمل لها وحدات نمطية ، بدل كتابتها في الاستعلام مباشرة 🙂 جعفر
  15. وعليكم السلام اخوي ابو الكرم 🙂 الآن تذكرت موضوع سابق مع اخونا السهران ، وصادفت نفس مشكلة التاريخ ، فقمت بعلاجها بطريقة تشبه طريقتك ، عن طريق الدالة DateFormat : هدية: استخدام التاريخ بطريقة تعمل مع مجموعة السجلات - قسم الأكسيس Access - أوفيسنا (officena.net) وعليه ، يصبح الكود : Dim myWhere As String myWhere = "[pc]='" & [Text0] & "'" myWhere = myWhere & " And [StartDate]=" & DateFormat([StartDate]) myWhere = myWhere & " And [txt]='" & [Text2] & "'" DoCmd.OpenForm "Table1", acNormal, , myWhere, acReadOnly, acNormal . اخوي السهران : رجاء ، دائما استخدم الدالة في برامجك (او طريقة اخرى مثل ما وضع اخوي ابو الكرم) ، لأنه دائما تصير لك مشكلة مع التاريخ في برامجك🙂 جعفر __nbm2.zip
  16. اخي هاني الافضل هو العمل على الاستعلام بدل الكود ، لذا ، رجاء اعطنا الاستعلام او الكود او صورة من الخطأ ، او اي معلومة ممكن تساعدنا علشان نساعدك 🙂 جعفر
  17. فيه فاصلة ناقصة في الكود اعلاه: dim myWhere as string myWhere="[pc]='" & [Text0] & "'" myWhere=myWhere & " And [StartDate]=#" & [StartDate] & "#" myWhere=myWhere & " And [txt]='" & [Text2] & "'" DoCmd.OpenForm "Table1", acNormal,, myWhere , acReadOnly, acNormal ولكني لاحظت ان تنسيق التاريخ عندك مختلف من الجدول الى النموذج الاول الى النموذج الثاني ، فعملت تنسيق واحد للجميع في المرفق 🙂 جعفر __nbm2.zip
  18. وعليكم السلام 🙂 وبدون الرجوع الى المرفق : dim myWhere as string myWhere="[pc]='" & [Text0] & "'" myWhere=myWhere & " And [StartDate]=#" & [StartDate] & "#" myWhere=myWhere & " And [txt]='" & [Text2] & "'" DoCmd.OpenForm "Table1", acNormal, myWhere , acReadOnly, acNormal البساطة مافي احسن منها ، كل جملة بنفسها وبدون اخطاء 🙂 جعفر
  19. هذا صحيح ، لهذا السبب فأنا لا اضع الجداول على القرص (لاحظ اني لم اقل البارتيشن) الذي عليه الوندوز ، حيث سيكون هذا القرص مشغول بإتمام مهام الوندوز وإعطائها الاولوية ، وبعدها يأتي دور قاعدة البيانات والبرامج الاخرى ، وهذا عن تجربة 🙂 🙂 جعفر
  20. هممم ولكن سرعة الاقراص SSD تصل الى 500 ميجا/ثانية ، بينما كمية البيانات التي يتم ارسالها من برنامج الواجهة الى الجداول لا يتعدي بضع كيلوبايت ، فنقطة الضعف والبطئ هي الجداول 😁 جعفر
  21. كنا نستخدم Samsung SSD 960 EVO 4TB ، والسبب في اختياره هو IOPS له عالي (وهو الحال بوجه عام لأقراص SSD) ، القراءة = 3.2 GB/s ، والكتابة = 1.9 GB/s ، فكنت اعتقد بأن هذا سيشفع في تسريع تسجيل البيانات كونها تأتي بسرعة ويتمكن الجدول من تسجيلها بسرعة ، مما سيجعل الجداول دائما مستعدة لتسجيل البيانات التاليه !! الملخص هنا: كل جزئية في تصميم البرنامج له اهميته ، واهمها فهرست الحقول التي يكون لها معايير في الاستعلام او الكود ، في الاستعلام او الكود ، نستخدم فقط الحقول التي نحتاج اليها ، ولا نستخدم النجمة * لجلب جميع الحقول ، ننادي فقط السجلات التي نريدها ، ولا نناديها من الجدول مباشرة حيث لا نستطيع التحكم في مناداة عدد السجلات ، سرعة الكيبل والراوتر وكارت الشبكة والهارددسك ، كلها يجب ان تكون في قمتها ، وبعد هذ نقول ، يافتاح ياعليم ، يارزاق ياكريم ، عملنا اللي علينا ، والباقي عليك 🙂 اخوي خالد ، شكرا على حُسن توضيحك للمعلومة 🙂 جعفر
  22. اعرف الموضوع من السنة الماضية 😁 هذا الموضوع هو احد نقاط الضعف للأكسس ، وماله علاقة بعدد المستخدمين اللي الوندوز يسمح لهم بمجلد المشاركة !! يعني ، لو وضعنا ملف جداول قاعدة البيانات في مجلد مشاركة على الوندوز سيرفر ويسمح لـ 16777 مستخدم ، فنقطة ضعف الاكسس لاتزال تكون موجودة !! فنقطة ضعف الاكسس هو الجداول ، حيث لا يستطيع استيعاب وخدمة عدد كبير (ومعظم قراءتي تقول انهم بين 15-25 شخصا) في آن واحد اذا كان "المستخدمين المتزامنين" يدخلون بيانات !! ومثالي هنا عن برنامج يستخدمه بين 10-15 مستخد متزامنين ، لإدخال البيانات ، في الجداول ، عمل لي الاكسس جدول بإسم USysApplicationLog ، حيث يكتب فيه الاخطاء التي صادفته ولم يتمكن من التغلب عليها ، ومعظم هذه الاخطاء هي: Could not update; currently locked. تعذر التحديث؛ مؤمن حالياً. تعذرت قراءة السجل؛ لتأمينه حالياً من قبل مستخدم آخر. تعذر التحديث؛ مؤمن حالياً من قبل المستخدم 'Admin' على الجهاز 'PC_1'. حوالي 20 خطأ خلال ساعة ونصف !! فالمفروض ان يكون سؤالي في هذا الاتجاه 🙂 وكانت الجداول على كمبيوتر عادي ، وعلى قرص SSD. جعفر
  23. السلام عليكم 🙂 رجاء مراجعة هذا الرابط ، فهو بديل عن Echo : تجديد / تحديث النموذج Me.Painting - قسم الأكسيس Access - أوفيسنا (officena.net) جعفر
  24. وعليكم السلام 🙂 هناك الكثير من المواضيع المرتبطة بطلبك : https://www.officena.net/ib/topic/43119-ادارة-المقرات-والمراكز-الامتحانية/ https://www.officena.net/ib/topic/84391-التوزيع-الآلى-للجدول-المدرسى/ https://www.officena.net/ib/topic/12488-طلب-مساعدة-في-عملية-توزيع-معقدة-نوعاً-ما/ https://www.officena.net/ib/topic/77918-مكتبة-الموقع-كود-توزيع-الفصول-أوتوماتيكيا/ https://www.officena.net/ib/topic/70736-التوزيع-الألي-لا-يعمل-كما-يجب/ https://www.officena.net/ib/topic/88422-توزيع-الملاحظين/ https://www.officena.net/ib/topic/99299-مطلوب-توزيع-ركاب-على-الحافلات https://www.officena.net/ib/topic/87955-توزيع-عشوائي-_-توزيع-المدرسين-في-قاعات-الامتحان/ https://www.officena.net/ib/topic/103059-توزيع-طلاب/ ومن هنا ، سترى جميع المواضيع التي تبدأ بكلمة توزيع ، من صفحة 474 الى صفحة 486 قسم الأكسيس Access - صفحه 474 - أوفيسنا (officena.net) ورجاء لا تقول ماحصلت اللي اريده ، وانما حاول وسنساعدك ان شاء الله 🙂 جعفر
×
×
  • اضف...

Important Information