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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

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

  1. شكرا جزيلا على التذكير ، انه بعض الاوقات يجب عليك الترقية غصبا عنك ، واقصد الاكسس هنا ، ليكون ملائم لنسخة الوندوز !! جعفر
  2. 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 ، ومنها اللي يعتمد على جداول/الاستعلامات ، ومنها من يعتمد على الكود ، والرابط اعلاه يأخذ الطريقتين 🙂 وهذا الموضوع به نقاش حول جزئية التحويل : جعفر
  3. السلام عليكم 🙂 تم مناقشة هذا الموضوع سابقا هنا . ومهم قراءة الرابط الموجود في الموضوع اعلاه ، حتى تكون عندنا الصورة كامله . الموضوع كان قبل سنتين ، فأخبرونا بالجديد 🙂 اذا النسخ الاحدث ما فيها ميزات كفاية تغري المبرمج (او تجعله غصبا عنه) ، فليش يبدأ مشوار جديد !! اول نسخة اشتريتها كانت اوفيس 2000 ، وبعد 10 سنوات تقريبا انتقلت الى النسخة 2010 ولازلت اشتغل عليها ، وقبل حوالي اسبوعين اشتريت الاوفيس 2021 (وبعدها في قراطيسها ، يعني ما نصبتها بعد 🙂 ) ، الانتقال الى الاكسس 2010 نواة 32بت كان مهم لي ، لأن فيه اشياء اسهل للبرمجة ، وفيه بعض الميزات الغير موجودة في نسخة mdb ، والاهم انه زبائني كانوا مستعدين ان ينتقلوا الى النسخة accdb 🙂 ، اما نسخة 2021 ، فسوف انصب نواة 64بت ، لأن هذه النواة هي مستقبل الاكسس ، فاريد اسبق الحدث قبل ان تتوقف مايكروسوفت عن اصدار 32بت !! الكثير من مبرمجي الاكسس يعتقدون ان سعة تخزين الاكسس الـ 2 جيجا هي من اهم عيوب الاكسس ، فلما يكون هناك اصدار جديد بسعة اكبر ، فهذا "المفروض يكون حديث الساعة" ، لهذا السبب اقتبست هذه الجزئية من مشاركتك ، وبدون تحريف او تعديل 🙂 واذا اخطأت وما فهمت قصدك ، فأعتذر منك مسبقا ، فياريت تعطينا التفصيل 🙂 جعفر
  4. هذه المعلومة غير دقيقة :
  5. تم عمل موضوع جديد للحوار حول نسخ/اصدارات الاكسس ، لأنه خارج عن موضوع هذا السؤال 🙂 جعفر
  6. وعليكم السلام 🙂 اهلا وسهلا بك في المنتدى ، وللاستفادة القصوى من المنتدى ، رجاء قراءة قوانين المنتدى: اضغط هنـــــــــامن فضلك لقراءة القواعد كاملة الطلب في غاية البساطة ، والمنتدى مليء بمثل هذا السؤال ، فاستعمل البحث للحصول على هذه المواضيع ، واليك احد الروابط وبه طلبك جعفر
  7. وعليكم السلام اخي عدنان 🙂 اهلا وسهلا بك في المنتدى ، وللاستفادة القصوى من المنتدى ، رجاء قراءة قوانين المنتدى: اضغط هنـــــــــامن فضلك لقراءة القواعد كاملة في الحقل/الحقول التي تريد عمل فلتر/تصفية لها ، في المعيار ، اكتب المعيار/المعايير التي تريدها ، وعليه سيعطيك الاستعلام البيانات التي تريدها فقط ، احفظ الاستعلام ، واستعمل طريقتك في تصدير البيانات 🙂 جعفر
  8. اليك التعديل للجدول بدل الاستعلام ، استعمل هذه الحزئية لتصدير كل جدول ، وتقدر تكرر هذه الجزئية بعدد الجداول اللي عندك ، كما عملتها لك في مشاركتي السابقة ، فالتعديل الوحيد هو ، بدلا عن "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) جعفر
  9. لا ، تقدر تستعمل اسم الجدول بدل اسم الاستعلام ، ولكن الاستعلام يعطيك مرونه في استعمال الفرز والتصفية 🙂 انا لم انظر اصلا في كود الجزئين ، فسؤالك كان عن تصدير البيانات 🙂 ولكني لازلت لم افهم طلبك ، انت تصدر البيانات ثم تستوردها مرة اخرى ، من نفس الملف الذي تم تصديره ، الى نفس الجداول التي تم التصدير منها وحذف بياناتها !! جعفر
  10. وعليكم السلام 🙂 اذا الجهاز الثاني ما فيه عربي ، فمن وين يجيب لك الخطوط العربية اللي انت مستعملها في قاعدة بياناتك !! انصحك بتغيير اسماء جميع الكائنات في قاعدة بياناتك من عربي الى انجليزي ، وهذه لاداة ستساعدك: . جعفر
  11. وعليكم السلام 🙂 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
  12. تفضل 🙂 الآن الكود يبدأ بالرقم الذي تكتبه في اول حقل : 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 جعفر
  13. يا هلا ومرحبا بك بين اهلك ، مرة اخرى 🙂 سُعدنا بمشاركتك ، ونكون اسعد بمشاركاتك القادمة ان شاء الله 🙂 جعفر
  14. اذا قصدك تدخل البيانات مباشرة في اول حقل من اول سجل مباشرة . فيصبح الكود: 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 i = i + 1 rst.Edit rst!Numberx = i ' rst!serial = Me.str_serial rst.Update rst.MoveNext Loop 'MsgBox "Done" End Sub Private Sub serial_AfterUpdate() Dim rst As DAO.Recordset Dim i As Long Dim str As String str = Me.serial 'save the Records If Me.Dirty Then Me.Dirty = False Set rst = Me.RecordsetClone rst.MoveFirst Do Until rst.EOF rst.Edit ' rst!Numberx = Me.int_Numberx + i rst!serial = str rst.Update rst.MoveNext Loop 'MsgBox "Done" End Sub جعفر 1505.1.make serial numbers.mdb.zip
  15. تفضل يا سيدي 🙂 جعفر 1506.Export catiopns to excel.mdb.zip طيّرت المزّة 🤣
  16. الله يطول عمرك اخوي ابا عمرو ، مرفقك لا فيه بيانات ، ولا حتى كود التصدير !! فكيف تريدني اعدل فيه !! ولما استعين بصديق سري لجلب هذه المعلومات ، تقولون عماني 😁 جعفر
  17. نعم كلامك صحيح ، اذا اردنا ان نرى جميع الجداول ، ولا نرى جداول النظام ، ولكن ، طريقتي في تسمية الجداول هي: للجداول المرتبطة بالشبكة: tbl_abc للجداول المحلية: loc_tbl_abc للجداول المؤقته: tmp_tbl_abc و نادرا ان اسمي احد الجداول باسم جدول النظام مثل Msys_abc (في الواقع اني ابداً لم اعمل هذا النوع من الجداول) ، فلا اريد ان يكون هناك مستخدم شاطر يعرف يبحث في الانترنت ويعرف كيف يظهر هذه الجداول ، ويحرق الاخضر واليابس !! فالكود كان معمول حتى يستخرج تسميات/اسماء حقول الجداول التي تبدأ بـ _tbl ، ولم اغير فيه🙂 جعفر
  18. وعليكم السلام 🙂 اضفت حقلين للنموذج ، int_numberx ، و str_serial ، و زر لتنفيذ العمل ، . وهذا الكود على حدث نقر الزر: Private Sub cmd_Do_Changes_Click() If Len(Me.int_Numberx & "") = 0 Then MsgBox "رجاء تعبئة اول رقم لبداية التسلسل" Me.int_Numberx.SetFocus Exit Sub ElseIf Len(Me.str_serial & "") = 0 Then MsgBox "رجاء تعبئة خانة كلمة الحقل" & vbCrLf & "serial" Me.str_serial.SetFocus Exit Sub End If Dim rst As DAO.Recordset Dim i As Long Set rst = Me.RecordsetClone rst.MoveFirst Do Until rst.EOF i = i + 1 rst.Edit rst!Numberx = Me.int_Numberx + i rst!serial = Me.str_serial rst.Update rst.MoveNext Loop MsgBox "Done" End Sub جعفر 1505.make serial numbers.mdb.zip
  19. هممم مبرمج سابق وعلى طول ذكر اسمي ، وبينه وبين ابو بسمله زمالة قديمة ، ويستشهد بأبيات شعر ، فإذا كنت اللي على بالي ، فأهلا وسهلا بك بيننا مرة اخرى ، بإسمك الجديد ، فأنا شخصيا افتقدت مشاركاتك الدقيقة 🙂 جعفر
  20. وعليكم السلام 🙂 هذا الكود من احد برامجي ، يقرأ تسمية الحقل من الجدول ، واذا لم يجد التسمية ، فيستخدم الاسم ، Public Function ListTables() On Error GoTo err_ListTables Dim tbdf As TableDef Dim fld As Field Dim iField_Caption As String Dim Field_Type As Integer For Each tbdf In CurrentDb.TableDefs 'don't show system tables If Left(tbdf.Name, 4) = "tbl_" Then For Each fld In tbdf.Fields iField_Caption = fld.Properties("Caption") 'Field_Type = DataType_Fields(fld.Type) 'Debug.Print tbdf.Name & vbTab & fld.Name & vbTab & Field_Type & vbTab & iField_Caption Next End If 'left Next Exit_ListTables: Set tbdf = Nothing: Set fld = Nothing Exit Function err_ListTables: 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 Resume Exit_ListTables End If End Function جعفر
  21. السلام عليكم 🙂 حسب قراءتي للامرين ، الفرق بينهم كالذي ينظر لكوب نصفه فاضي ، والآخر ينظر للنصف المليان من نفس الكوب ، والاثنين على حق 🙂 وبنفس القراءة ، فهمنا بعض بطرق مختلفة ، ويبقى لكُلٌ مكانته عالياً ، والعشاء على حسابي 🙂 جعفر
  22. ممتاز ، بس هالكلمتين ما يفيدون صاحب السؤال ، فرجاء اخبرنا بالطريقة 🙂 جعفر
  23. عفوا المهندس قاسم ، الظاهر انه صار التباس في فهم كلامي !! انا لم اقل انه لن يكون هناك اطار ، وليس هذا طلب اخونا احمد صاحب السؤال ، وانما الطلب كان: ان تظهر نماذجه بنفس الشكل في جميع اصدارات الوندوز 🙂 فأذا ممكن ان تجربه بهذه الطريقة 🙂 وللعلم ، فالاكسس لن يطبق نسق الوندوز غلا على برنامج انت عملته : جعفر
  24. النسبة عبارة عن رقم ضرب 100 : 1 = 1 * 100 = 100% 0.75 = 0.75 * 100 = %75 0.5 = 0.5 * 100 = %50 0.1= 0.1 * 100 = %10 فأرقام النسبة ستكون من الرقم صفر الى الرقم 1 (لهذا السبب اقترحت عليك حقل Double ، لأنه يقبل الارقام قبل الفاصلة العشرية 🙂 ) ، وهكذا تقدر تفرق بين ارقامك 🙂 ولا تحتاج الى حقل المؤشر 🙂 جعفر
×
×
  • اضف...

Important Information