اذهب الي المحتوي
أوفيسنا

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

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

  1. وعليكم السلام 🙂 طرفي التاريخ يجب ان يكون لديهم نفس التنسيق ، مثلا: . جعفر 1510.SearchFormatListBox.accdb.zip
  2. ابا عمرو تصدير البيانات الى الاكسل يكون "بتسمية الحقول" ، لا بإسم الحقل ، فكيف تريد ان تستورد من نفس ملف الاكسل ، والذي يحمل "مسميات الحقول" ولا يحمل اسماء الحقول !! هذه مشكلتك !! جعفر
  3. في النموذج ، اعمل حقل بإسم str_Key ، وضع فيه هذا الكود Private Sub str_Key_KeyPress(KeyAscii As Integer) Debug.Print ChrW(KeyAscii) Me.str_Key = Empty End Sub . او على مستوى النموذج: Private Sub Form_KeyPress(KeyAscii As Integer) Debug.Print ChrW(KeyAscii) End Sub الفرق ان هذا الكود يستعمل KeyAscii ، اي ارقام الحروف ، بينما الكود في المشاركات السابقة يستعمل KeyCode ، اي ارقام ازرار الكيبورد !! جعفر
  4. اعتقد بأن الوندوز يتحمل مسؤولية هذه الفقرة ، ويعطينا الصافي 🙂
  5. أي أي أي , مسكتني من يدي اللي توجعني 🙂 نعم ممكن نعرف اي لغة هي لوحة المفاتيح ، والى هنا وتوقفت ، قبل ان اعمل مشاركتي السابقة 🙂 واللي يجي على بالي ، اننا ممكن نستفيد من جدولك لتحويل الحروف الى اللغة الاخرى (العربية مثلا) ، ولكني اعتقد بأنه لابد من وجود مخرج برمجي بدون الجدول ، واهم من النقطة السابقة هي ليس معرفة لغة الوندوز (اللي نشوفها ايقونتها عند الساعة) ، وانما المشكلة في نوع لوحة المفاتيح ، فهناك عدة لوحات مفاتيح للغة الواحدة ، والحرف ذ (مثلا) قد يكون في مكان مختلف 😁 جعفر
  6. وعليكم السلام 🙂 هذا السطر في الكود يخص تصدير الملف الى pdf ، و مافي شيء في الكود يعمل فلترة/تصفية DoCmd.OutputTo acOutputForm, strForm, acFormatPDF, strFileName, False يجب ان تعمل طريقة لأخذ قيمة حقل فيه قيمة غير متكررة ، ثم تعمل التصفية على اساسها ، ثم تصدر الى pdf 🙂 جعفر
  7. جميل نشوف طرق اخرى في عمل اللازم 🙂
  8. وعليكم السلام 🙂 المشكلة في ان اجهزة الطباعة فيها RAM محدود ، ويعتمد على طبيعة عملها : النوع الارخص ، لا يحتوي على RAM ، النوع الرخيص ، يحتوي بين 32 و 128 MB ، النوع الاغلى قيلا ، يحتوي بين 256 - 512 MB ، بينما الطابعات المتخصصة لطباعة الصور والجرافيكس ، تبدأ ب 1 GB اذا كانت احجام الصور عندك كبيرة (ملف الصورة في المجلد ، وليس في التقرير) ، فقم بتصغيرها (x,y) لتتناسب مع حجم شاشة التقرير (شاشة الوندوز ، مثلا 1920x1080) ، وثم جرب طباعتها . مثلا ، انظر الى حجم ملف طباعة الصور الاربعة اللي ارسلتها للطباعة : . فلا اعتقد بأن طابعتي المنزلية بأن تتجرأ وتحاول طباعة الملف الاكبر 🙂 جعفر
  9. وعليكم السلام 🙂 ومن وحي جواب اخوي ابوخليل ، وبدون جدول Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) msgbox Chr(KeyCode) End Sub جعفر
  10. اخي حاتم 🙂 لا تجعل اسم اي من كائنات الاكسس يبدأ برقم ، فهذا يسبب مشاكل في البرنامج ، قم بتغيير اسماء النماذج الفرعية: من 1 الى a1 ، ومن 2 الى a2 ، ومن 3 الى a3 ، وستحصل على النتيجة الصحيحة 🙂 وتستطيع ان تستخدم: =Nz([a1]![A],0)+Nz([a3]![C],0)+Nz([a2]![B],0) ولكن قبل كل شيء ، تأكد انه لا توجد لديك اخطاء في الكود : اضغط على Ctrl+G لتدخل صفحة الكود ، ثم Debug ، ثم تختار اول اختيار Compile ، اذا حصلت على خطأ ، فقم بتعديله او توقيف هذا السطر/الحدث ، واستمر بهذه الخطوات حتى لا تحصل على اي اخطاء ، وحينها ارجع للنموذج وشوف نتائج عملك 🙂 جعفر
  11. اخوي rockjone33 🙂 عندك مصطلحات غير متعارف عليها في المنتدى ، ولا تنسى ان الكثير من الاعضاء ما يعرفون اللهجة الخليجية ، وللمرة الاولى للذي يقراها قد يعتقد انها غير لائقة 🙂 اخي محمد احمد لطفى ، مصطلح "الله يهديك" ، خليجيا ، هي تشجيع للشخص الآخر ، ومصطلح "ثاني شي عيب عليك هالرد" ، خليجيا ، انني قدمت لك القليل وعملي لا يرتقي لكي تسميه "برنامج كامل" 🙂 للتوضيح فقط 🙂 جعفر
  12. هذا مصطلح جديد غير متعارف عليه🤣🤣🤣
  13. شكرا جزيلا على التذكير ، انه بعض الاوقات يجب عليك الترقية غصبا عنك ، واقصد الاكسس هنا ، ليكون ملائم لنسخة الوندوز !! جعفر
  14. 1. اذا كنت تستعمل استعلام عادي ، فيمكنك عمل الفلترة عن طريق الكود ، ولكن الاستعلام يجب ان يرى الكود ، وتلاحظ من مرفق برنامجي ، انه فيه نموذج صغير يتم فتحه ، حتى الاستعلام يأخذ معياره منه : 2. واذا كان الاستعلام موجود في الكود ، فيمكنك تحويل هذا الاستعلام مع فلترته الى استعلام عادي (انا اسميته qry_New ) : Dim qdf As QueryDef dim strSql as string strSql= "Select * From tbl_1 Where [ID]>1 And [Section]='" & & "'" Set qdf = CurrentDb.CreateQueryDef("qry_New", strSql) . 3. واذا كان كل شغلك في الكود وما تريد تعمله استعلام عادي ، فتابع 🙂 هناك عدة طرق لتحويل البيانات الى اكسل ، او الى ملف النص csv ، ومنها اللي يعتمد على جداول/الاستعلامات ، ومنها من يعتمد على الكود ، والرابط اعلاه يأخذ الطريقتين 🙂 وهذا الموضوع به نقاش حول جزئية التحويل : جعفر
  15. السلام عليكم 🙂 تم مناقشة هذا الموضوع سابقا هنا . ومهم قراءة الرابط الموجود في الموضوع اعلاه ، حتى تكون عندنا الصورة كامله . الموضوع كان قبل سنتين ، فأخبرونا بالجديد 🙂 اذا النسخ الاحدث ما فيها ميزات كفاية تغري المبرمج (او تجعله غصبا عنه) ، فليش يبدأ مشوار جديد !! اول نسخة اشتريتها كانت اوفيس 2000 ، وبعد 10 سنوات تقريبا انتقلت الى النسخة 2010 ولازلت اشتغل عليها ، وقبل حوالي اسبوعين اشتريت الاوفيس 2021 (وبعدها في قراطيسها ، يعني ما نصبتها بعد 🙂 ) ، الانتقال الى الاكسس 2010 نواة 32بت كان مهم لي ، لأن فيه اشياء اسهل للبرمجة ، وفيه بعض الميزات الغير موجودة في نسخة mdb ، والاهم انه زبائني كانوا مستعدين ان ينتقلوا الى النسخة accdb 🙂 ، اما نسخة 2021 ، فسوف انصب نواة 64بت ، لأن هذه النواة هي مستقبل الاكسس ، فاريد اسبق الحدث قبل ان تتوقف مايكروسوفت عن اصدار 32بت !! الكثير من مبرمجي الاكسس يعتقدون ان سعة تخزين الاكسس الـ 2 جيجا هي من اهم عيوب الاكسس ، فلما يكون هناك اصدار جديد بسعة اكبر ، فهذا "المفروض يكون حديث الساعة" ، لهذا السبب اقتبست هذه الجزئية من مشاركتك ، وبدون تحريف او تعديل 🙂 واذا اخطأت وما فهمت قصدك ، فأعتذر منك مسبقا ، فياريت تعطينا التفصيل 🙂 جعفر
  16. هذه المعلومة غير دقيقة :
  17. تم عمل موضوع جديد للحوار حول نسخ/اصدارات الاكسس ، لأنه خارج عن موضوع هذا السؤال 🙂 جعفر
  18. وعليكم السلام 🙂 اهلا وسهلا بك في المنتدى ، وللاستفادة القصوى من المنتدى ، رجاء قراءة قوانين المنتدى: اضغط هنـــــــــامن فضلك لقراءة القواعد كاملة الطلب في غاية البساطة ، والمنتدى مليء بمثل هذا السؤال ، فاستعمل البحث للحصول على هذه المواضيع ، واليك احد الروابط وبه طلبك جعفر
  19. وعليكم السلام اخي عدنان 🙂 اهلا وسهلا بك في المنتدى ، وللاستفادة القصوى من المنتدى ، رجاء قراءة قوانين المنتدى: اضغط هنـــــــــامن فضلك لقراءة القواعد كاملة في الحقل/الحقول التي تريد عمل فلتر/تصفية لها ، في المعيار ، اكتب المعيار/المعايير التي تريدها ، وعليه سيعطيك الاستعلام البيانات التي تريدها فقط ، احفظ الاستعلام ، واستعمل طريقتك في تصدير البيانات 🙂 جعفر
  20. اليك التعديل للجدول بدل الاستعلام ، استعمل هذه الحزئية لتصدير كل جدول ، وتقدر تكرر هذه الجزئية بعدد الجداول اللي عندك ، كما عملتها لك في مشاركتي السابقة ، فالتعديل الوحيد هو ، بدلا عن "i_strSql = "qry_1 اكتب اسم الجدول ، مثلا "جدول تسجيل الكتب"=i_strSql كما تلاحظ في الكود التالي i_strSql = "جدول تسجيل الكتب" i_strWorkBook = MakeFolder([CurrentProject].[Path] & "\" & "MyBackup") & "\سجل الكتب.xls" i_strWorkSheet = "" 'Sheet Name i_strCellRef = "" 'start from A1 i_strSaveAs = 56 '.xls, some other extenstions are possible i_Auto_Fit = 1 'yes, 2 don't fit i_Delete_Exisiting_File = 2 'yes, 1 don't delete, but add sheets to the existing i_Open_The_File_on_Completion = 1 'yes, 2 don't open i_Field_Names = 2 'Captions, 1= field Names, 3= No names nor captions Call CopyRs2Sheet(i_strSql, i_strWorkBook, _ i_strWorkSheet, _ i_strCellRef, _ i_strSaveAs, _ i_Auto_Fit, _ i_Delete_Exisiting_File, _ i_Open_The_File_on_Completion, _ i_Field_Names) جعفر
  21. لا ، تقدر تستعمل اسم الجدول بدل اسم الاستعلام ، ولكن الاستعلام يعطيك مرونه في استعمال الفرز والتصفية 🙂 انا لم انظر اصلا في كود الجزئين ، فسؤالك كان عن تصدير البيانات 🙂 ولكني لازلت لم افهم طلبك ، انت تصدر البيانات ثم تستوردها مرة اخرى ، من نفس الملف الذي تم تصديره ، الى نفس الجداول التي تم التصدير منها وحذف بياناتها !! جعفر
  22. وعليكم السلام 🙂 اذا الجهاز الثاني ما فيه عربي ، فمن وين يجيب لك الخطوط العربية اللي انت مستعملها في قاعدة بياناتك !! انصحك بتغيير اسماء جميع الكائنات في قاعدة بياناتك من عربي الى انجليزي ، وهذه لاداة ستساعدك: . جعفر
  23. وعليكم السلام 🙂 1. تفضل هذا التعديل : Public Sub cmd_Export_NEW_Click() On Error GoTo err_cmd_Export_NEW_Click Dim i_strSql As String Dim i_strWorkBook As String Dim i_strCellRef As String Dim i_strWorkSheet As String Dim i_strSaveAs As String Dim i_Auto_Fit As Integer Dim i_Delete_Exisiting_File As Integer Dim i_Open_The_File_on_Completion As Integer Dim i_Field_Names As Integer i_strSql = "qry_1" i_strWorkBook = MakeFolder([CurrentProject].[Path] & "\" & "MyBackup") & "\سجل الكتب.xls" i_strWorkSheet = "" 'Sheet Name i_strCellRef = "" 'start from A1 i_strSaveAs = 56 '.xls, some other extenstions are possible i_Auto_Fit = 1 'yes, 2 don't fit i_Delete_Exisiting_File = 2 'yes, 1 don't delete, but add sheets to the existing i_Open_The_File_on_Completion = 1 'yes, 2 don't open i_Field_Names = 2 'Captions, 1= field Names, 3= No names nor captions Call CopyRs2Sheet(i_strSql, i_strWorkBook, _ i_strWorkSheet, _ i_strCellRef, _ i_strSaveAs, _ i_Auto_Fit, _ i_Delete_Exisiting_File, _ i_Open_The_File_on_Completion, _ i_Field_Names) i_strSql = "qry_2" i_strWorkBook = MakeFolder([CurrentProject].[Path] & "\" & "MyBackup") & "\بيانات أعضاء المكتبة.xls" i_strWorkSheet = "" 'Sheet Name i_strCellRef = "" 'start from A1 i_strSaveAs = 56 '.xls, some other extenstions are possible i_Auto_Fit = 1 'yes, 2 don't fit i_Delete_Exisiting_File = 2 'yes, 1 don't delete, but add sheets to the existing i_Open_The_File_on_Completion = 1 'yes, 2 don't open i_Field_Names = 2 'Captions, 1= field Names, 3= No names nor captions Call CopyRs2Sheet(i_strSql, i_strWorkBook, _ i_strWorkSheet, _ i_strCellRef, _ i_strSaveAs, _ i_Auto_Fit, _ i_Delete_Exisiting_File, _ i_Open_The_File_on_Completion, _ i_Field_Names) Exit Sub err_cmd_Export_NEW_Click: If Err.Number = 53 Then 'file not found Resume Next ElseIf Err.Number = 2450 Then MsgBox Err.Number & vbCrLf & Err.Description DoCmd.Hourglass False Exit Sub Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub . 2. و 3. بدل Private Sub أمر1_Click() و Private Sub أمر2_Click() اكتب public Sub أمر1_Click() و public Sub أمر2_Click() . فتصبح الدالة: تصدّر لأكسل ، تحذف بيانات الجداول ، تستورد من اكسل ، يعني ما تحتاج زري الحذف والاستراد : Public Function MyDatabase() 'Export to Excel Call cmd_Export_NEW_Click 'Delete the existing data Call [Form_For Table].ÃãÑ1_Click 'import the data Call [Form_For Table].ÃãÑ2_Click End Function . انا لم اقم بالتجربة ، فرجاء تخبرنا بالنتيجة 🙂 جعفر 1506.1.Export catiopns to excel.mdb.zip
  24. تفضل 🙂 الآن الكود يبدأ بالرقم الذي تكتبه في اول حقل : Private Sub Numberx_AfterUpdate() ' 'Access looks at it this way: 'user 1 = first entry was done in the Form by hand 'user 2 = the code below enters values automatically ' 'so it will give the popup option to either: save these change, drop the saving, or place them in clipboard 'to avaoid this message, we should first save the hand made value, then run the code 'save the Records If Me.Dirty Then Me.Dirty = False Dim rst As DAO.Recordset Dim i As Long Set rst = Me.RecordsetClone rst.MoveFirst i = Me.Numberx - 1 Do Until rst.EOF i = i + 1 rst.Edit rst!Numberx = i ' rst!serial = Me.str_serial rst.Update rst.MoveNext Loop 'MsgBox "Done" End Sub . او Private Sub Numberx_AfterUpdate() ' 'Access looks at it this way: 'user 1 = first entry was done in the Form by hand 'user 2 = the code below enters values automatically ' 'so it will give the popup option to either: save these change, drop the saving, or place them in clipboard 'to avaoid this message, we should first save the hand made value, then run the code 'save the Records If Me.Dirty Then Me.Dirty = False Dim rst As DAO.Recordset Dim i As Long Set rst = Me.RecordsetClone rst.MoveFirst i = Me.Numberx Do Until rst.EOF rst.Edit rst!Numberx = i ' rst!serial = Me.str_serial rst.Update i = i + 1 rst.MoveNext Loop 'MsgBox "Done" End Sub جعفر
  25. يا هلا ومرحبا بك بين اهلك ، مرة اخرى 🙂 سُعدنا بمشاركتك ، ونكون اسعد بمشاركاتك القادمة ان شاء الله 🙂 جعفر
×
×
  • اضف...

Important Information