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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    406

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

  1. وعليكم السلام في الواقع كان هناك خطأ في الدرس الرابع ، وانا الذي كتبت الدرس الرابع وليس اخي @صالح حمادي ، وقمت بالتعديل عليه ، والتعديل على مثالك ، كما وان ملاحظة اخي محمد ابوعبدالله صحيحة ايضا ، حيث ان اسم الوحدة/الوحدات النمطية يجب ان تكون غير اسم الدالة/الدوال الموجودة في البرنامج. جعفر Database2.zip
  2. وعليكم السلام شكرا اخي الفاضل على هذه الهدية ، واهلا وسهلا بك في المنتدى جعفر
  3. السلام عليكم تم التعديل على الكود والبرنامج ليعمل: 1. تشغيل الاكسس بدون رسائل أمان ، 2. تشغيل الاكسس بدون إطار/نافذة الوندوز (للنواتين 32بت و64بت). 1. مثل الخطوات السابقة ، احفظ الكود التالي في ملف بصيغة txt ، ثم غيّر صيغة الملف الى vbs (طبعا تستطيع ان تضع برنامج قاعدة البيانات في اي مكان شئت في الكمبيوتر ، فقط عليك تعديل الاسم والمسار) : rem http://www.accessmvp.com/jconrad/accessjunkie/macrosecurity.html rem expression.OpenCurrentDatabase(filepath required, Exclusive optional, bstrPassword optional) dim o set o=createobject ("Access.Application") o.automationsecurity=1 ' set macro security LOW. o.opencurrentdatabase "C:\jj\Seq.mdb" o.usercontrol=false o.quit set o=nothing 2. لتشغيل الاكسس بدون اطار ، يجب ان يكون النموذج منبثق ، ولكننا بدل ان نغير اعدادات النموذج ، نستطيع ان نفتحه منبثق مباشرة ( Dialog )، وبما اننا نستعمل الماكرو AutoExec (والذي يعمل عند فتح البرنامج مباشرة ) ، فإننا سنفتح النموذج بهذه الطريقة: النموذج: . والماكرو . وهذا كود النموذج: Option Compare Database Private Sub cmd_Quit_Click() DoCmd.Quit End Sub Private Sub Form_Open(Cancel As Integer) Call HideAccess End Sub وهذه الوحدة النمطية التي بها كود الاخفاء: Option Compare Database Option Explicit Global Const SW_HIDE = 0 Global Const SW_SHOWNORMAL = 1 Global Const SW_SHOWMINIMIZED = 2 Global Const SW_SHOWMAXIMIZED = 3 #If VBA7 Then Private Declare PtrSafe Function ShowWindow Lib "USER32" _ (ByVal hwnd As LongPtr, ByVal nCmdShow As Long) As Boolean #Else Private Declare Function ShowWindow Lib "USER32" _ (ByVal hwnd As Long, ByVal nCmdShow As Long) As Boolean #End If ' Public Sub HideAccess() #If VBA7 Then Dim hWndAccessApp As LongPtr #Else Dim hWndAccessApp As Long #End If Call ShowWindow(Access.hWndAccessApp, SW_HIDE) End Sub Public Sub ShowAccess() #If VBA7 Then Dim hWndAccessApp As LongPtr #Else Dim hWndAccessApp As Long #End If Call ShowWindow(Access.hWndAccessApp, SW_SHOWMAXIMIZED) End Sub جعفر 739.No_Warning_and_No_Access_Window.zip
  4. السلام عليكم اخي علي ، وحسب البحث الذي قمت به ، رجاء: استبدال السطر Win_Struct.lStructSize = Len(Win_Struct) بالسطر Win_Struct.lStructSize = LenB(Win_Struct) او تستطيع ان تستبدل كودك بهذا الكود: Dim f As Object Set f = Application.FileDialog(3) f.AllowMultiSelect = True f.Show MsgBox "file choosen = " & f.SelectedItems.Count كما ان الموقع التالي به اداة لعمل الكود المطلوب ، والذي يعمل على 32 و 64 بت، http://www.avenius.de/en/index.php?Products:IDBE_Tools جعفر
  5. وعليكم السلام وجسب البحث الذي عملته ، فكلام اخي عمرو صحيح ، وللأسف لا يمكن استعمال البرنامج على جهازين مختلفين !! لذلك يجب ان يكون عندك جهاز 32بت وآخر 64بت ، وتستعمل كل منهم لتحويل برنامجك الى accde!! هناك طريقة اخرى ، ولكن يجب عليك تضبيطها ، وهي ان تكون قد جربت برنامجك Accdb على النظامين ، ووجدت انه يعمل بطريقة صحيحة ، والخطوة المتبقية هي تحويله الى Accde حسب 32 او 64 بت ، فتستطيع بطريقة ما ، استعمال الكود لتحويل البرنامج بإستخدام نواة كمبيوتر المستخدم ، يعني تعطي المستخدم نسخة من صيغة Accdb ، واول ما يشتغل البرنامج ، يشتغل الكود التالي (من المنتدى: https://www.mrexcel.com/forum/microsoft-access/493961-vba-convert-accdb-accde.html#post2439046 ) ، والذي يحول البرنامج الى صيغة Accde Function ConvertToaccDE() sourcedb = "C:\Users\Trevor G\Documents\sample back.accdb" targetdb = "C:\Users\Trevor G\Documents\sample back.accde" Dim accessApplication As Access.Application Set accessApplication = New Access.Application With accessApplication .SysCmd 603, sourcedb, targetdb End With 'Set accessApplication = Nothing End Function وبعدها تجعل الكود يحذف البرنامج الاصل Accdb. جعفر
  6. وعليكم السلام الظاهر انه عندك النسخة التجريبية من البرنامج ، لذا عليك شراء البرنامج ، لتحويل هذه النسخة الى نسخة كاملة ، وعليه لن ترى هذه الكلمة جعفر
  7. وعليكم السلام من الواضح انك يجب ان تشتري/تسجل الاداة اعلاه، ولكن هناك طرق اخرى ، احدها في هذا المرفق: https://bytes.com/attachments/attachment/1237d1209368957/anigif.zip جعفر
  8. وعليكم السلام اخي رجاء مراجعة الرابط التالي لمزيد من المعلومات حول هذا الموضوع جعفر
  9. السلام عليكم وهذه نسخ بصيغة mdb جعفر 680.4.jjafferr.mdb.zip 680.3.Saleh.mdb.zip
  10. وعليكم السلام تفضل الجدول: . والاستعلام: . والنتيجة: . جعفر 740.Section_Gender_Count.accdb.zip
  11. بعض الاوقات لازم ما نفكر بأسوأ الاحتمالات هذه المشكلة عالمية (بترجمة جعفر): فالمشكلة دائما هي وكيفية ومدى تفاصيل شرح الزبون لتوصيل الفكرة جعفر
  12. وعليكم السلام انزلت المرفق ، ولم افهم المطلوب!! يمكنك تغيير المبلغ عند وجودك على حقل الخصم ، فما هي المشكلة؟ جعفر
  13. وعليكم السلام يا ريت ترفق لنا ما عملت وما توصلت اليه ، حتى نساعدك للخطوة التالية جعفر
  14. وعليكم السلام اخي عمر هذا البرنامج اصبح الآن من الاولويات ، وان شاء الله ابدا العمل عليه قريبا جعفر
  15. تفضل Public Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) On Error GoTo err_Form_KeyDown temp_MYn1 = Me.sfrm_Search!MYn1 Select Case KeyCode Case vbKeyDown Me.sfrm_Search!MYn1 = 0 I_went = "Down" Me.sfrm_Search.Form.RecordsetClone.MoveNext Me.sfrm_Search!MYn1 = Me.sfrm_Search.Form.RecordsetClone!Rajmsanf KeyCode = 0 Case vbKeyUp Me.sfrm_Search!MYn1 = 0 I_went = "Up" Me.sfrm_Search.Form.RecordsetClone.MovePrevious Me.sfrm_Search!MYn1 = Me.sfrm_Search.Form.RecordsetClone!Rajmsanf KeyCode = 0 Case vbKeyReturn Me.sfrm_Search.Form.RecordsetClone.FindFirst "[Rajmsanf]='" & Me.sfrm_Search!MYn1 & "'" DoCmd.OpenForm "ادارج بفاتوره المبيعات" Forms![ادارج بفاتوره المبيعات]![رقم الصنف] = Me.sfrm_Search.Form.RecordsetClone!Rajmsanf Forms![ادارج بفاتوره المبيعات]![اسم الصنف] = Me.sfrm_Search.Form.RecordsetClone!NaEMP Forms![ادارج بفاتوره المبيعات]![الكميه] = Me.sfrm_Search.Form.RecordsetClone!Arsid Forms![ادارج بفاتوره المبيعات]![السعر] = Me.sfrm_Search.Form.RecordsetClone!sarabaih Me.sfrm_Search.Form.RecordsetClone.Delete KeyCode = 0 End Select Exit_Form_KeyDown: Exit Sub err_Form_KeyDown: If Err.Number = 2113 Or Err.Number = 3021 Then If I_went = "UP" Then Me.sfrm_Search.Form.RecordsetClone.MoveNext Else Me.sfrm_Search.Form.RecordsetClone.MovePrevious End If Me.sfrm_Search!MYn1 = temp_MYn1 Resume Exit_Form_KeyDown Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub جعفر 737.215.accdb.zip
  16. وعليكم السلام قصدك بنموذج frm_Search ؟ مع العلم ، بأن النموذج " ادراج بفاتوره مبيعات" لا يمكنه اخذ اكثر من سجل واحد ، وذلك لأنه غير مضمن (ليس مرتبط بجدول). جعفر
  17. لوسمحت تجرب هذا بدلا عن السطر الذي فيه مشكلة ، على الكمبيوترات اللي عليها الاكسس 32بت و 64بت: #If VBA7 Then Private Declare PtrSafe Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long #ElseIf Win64 Then 'need datatype LongPtr Private Declare PtrSafe Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As LongPtr, ByVal nCmdShow As LongPtr) As LongPtr #Else '32-bit Office Private Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long #End If او #If VBA7 Then Public Declare PtrSafe Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long #ElseIf Win64 Then 'need datatype LongPtr Public Declare PtrSafe Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As LongPtr, ByVal nCmdShow As LongPtr) As LongPtr #Else '32-bit Office Public Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long #End If او Public Declare PtrSafe Function SetWindowPos Lib "user32.dll" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _ ByVal X As Long, ByVal Y As Long, ByVal cX As Long, ByVal cY As Long, ByVal wFlags As Long) As Long او Public Declare PtrSafe Function ShowWindow Lib "user32" ( _ ByVal hWnd As LongPtr, _ ByVal nCmdShow As Long _ ) As BooleanPrivate Declare PtrSafe Function ShowWindow Lib "user32" ( _ ByVal hWnd As LongPtr, _ ByVal nCmdShow As Long _ ) As Boolean . أخي أوس ، لأن نسخة الاكسس عند الفارس المصري 64بت ، لهذا السبب يجب ان نستخدم هذا الامر جعفر
  18. الكود الذي عندك ، المفروض يجمع استعلامين عن طريق Union ، ويجب ان تكون حقول الاستعلامين المتشابهة تحت بعضها ، وانت تستخدم حقول الجدول table1 التاليه ، فرجاء كتابة اسماء الحقول المشابهة لها من الجدول Sales ، Select ID, earia, kind, date, esal_num, quant, acc_nam, acc_num, delev_dest, amount, wrong_acc FROM table1" جعفر
  19. السلام عليكم مراجعة للمطلوب: السؤال الاصل كان بادراج خانه المبلغ وحـ/ الخطأ من جدولtable1 الى جدول sales ،المبلغ من خانة value1_1000 ، حـ/خطأ من خانة accnum2 ولكن الظاهر المطلوب كان هو: عند البحث عن اكثر من رقم فاتورة ، فيمكن ان تكون الفاتورة في الجدولtable1 او الجدول sales ، والمطلوب ان نأتي بسجل هذه الفاتورة من الجدول الصحيح. طيب ، اذا حقل المبلغ وحقل حـ/الخطأ كانوا فاضين ، شو المفروض نعمل؟ جعفر
  20. وعليكم السلام أختي ، لما تشوفين نفسك تضطرين الى عمل مجموعة خطوات لعمل معين ، فمعناه ممكن يكون فيه طريقة اخرى اسهل للقيام باللي تريديه فلازم تعرضين علينا الصورة الكاملة للعمل (وليست الجزئية الصغيرة التي شرحتيها بأعلاه) ، وطبعا المرفق يساعد كثيرا جعفر
  21. عملت تغيير بسيط على الكود السابق ، واليك المرفق الجديد Public Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) On Error GoTo err_Form_KeyDown temp_MYn1 = Me.sfrm_Search!MYn1 Select Case KeyCode Case vbKeyDown Me.sfrm_Search!MYn1 = 0 I_went = "Down" Me.sfrm_Search.Form.RecordsetClone.MoveNext Me.sfrm_Search!MYn1 = Me.sfrm_Search.Form.RecordsetClone!Rajmsanf KeyCode = 0 Case vbKeyUp Me.sfrm_Search!MYn1 = 0 I_went = "Up" Me.sfrm_Search.Form.RecordsetClone.MovePrevious Me.sfrm_Search!MYn1 = Me.sfrm_Search.Form.RecordsetClone!Rajmsanf KeyCode = 0 End Select Exit_Form_KeyDown: Exit Sub err_Form_KeyDown: If Err.Number = 2113 Or Err.Number = 3021 Then If I_went = "UP" Then Me.sfrm_Search.Form.RecordsetClone.MoveNext Else Me.sfrm_Search.Form.RecordsetClone.MovePrevious End If Me.sfrm_Search!MYn1 = temp_MYn1 Resume Exit_Form_KeyDown Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub . جعفر 727.4.الاستاذ جعفر.accdb.zip
  22. تفضل تستطيع ان تتحكم في مدة التأخير ، والتي وضعتها انا لمدة 10 ثوان حسب طلبك Private Sub cmd_Open_All_Click() Dim rst As DAO.Recordset Set rst = Me.RecordsetClone rst.MoveLast: rst.MoveFirst RC = rst.RecordCount For i = 1 To RC Application.FollowHyperlink rst!Site PauseTime = 10 ' Set duration in seconds. Start = Timer ' Set start time. Do While Timer < Start + PauseTime DoEvents ' Yield to other processes. Loop rst.MoveNext Next i rst.Close: Set rst = Nothing End Sub جعفر
×
×
  • اضف...

Important Information