-
Posts
9998 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
406
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
وعليكم السلام في الواقع كان هناك خطأ في الدرس الرابع ، وانا الذي كتبت الدرس الرابع وليس اخي @صالح حمادي ، وقمت بالتعديل عليه ، والتعديل على مثالك ، كما وان ملاحظة اخي محمد ابوعبدالله صحيحة ايضا ، حيث ان اسم الوحدة/الوحدات النمطية يجب ان تكون غير اسم الدالة/الدوال الموجودة في البرنامج. جعفر Database2.zip
-
وعليكم السلام شكرا اخي الفاضل على هذه الهدية ، واهلا وسهلا بك في المنتدى جعفر
-
تشغيل برنامج الاكسس في اي مجلد ، وبدون رسائل الأمان
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
حياك االله أخوي شفان -
تشغيل برنامج الاكسس في اي مجلد ، وبدون رسائل الأمان
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
السلام عليكم تم التعديل على الكود والبرنامج ليعمل: 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 -
السلام عليكم اخي علي ، وحسب البحث الذي قمت به ، رجاء: استبدال السطر 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 جعفر
-
وعليكم السلام وجسب البحث الذي عملته ، فكلام اخي عمرو صحيح ، وللأسف لا يمكن استعمال البرنامج على جهازين مختلفين !! لذلك يجب ان يكون عندك جهاز 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. جعفر
-
وعليكم السلام الظاهر انه عندك النسخة التجريبية من البرنامج ، لذا عليك شراء البرنامج ، لتحويل هذه النسخة الى نسخة كاملة ، وعليه لن ترى هذه الكلمة جعفر
- 1 reply
-
- 2
-
-
استفسار عن طريقة حساب عدد الذكور والاناث حسب الاختصاص
jjafferr replied to Ahmed.IQ's topic in قسم الأكسيس Access
حياك الله -
وعليكم السلام من الواضح انك يجب ان تشتري/تسجل الاداة اعلاه، ولكن هناك طرق اخرى ، احدها في هذا المرفق: https://bytes.com/attachments/attachment/1237d1209368957/anigif.zip جعفر
-
معضلة 32 بت و 64 بت هل لها حلول ؟؟
jjafferr replied to عبد اللطيف سلوم's topic in قسم الأكسيس Access
وعليكم السلام اخي رجاء مراجعة الرابط التالي لمزيد من المعلومات حول هذا الموضوع جعفر -
تقرير بأكثر من عمود ، وتسلسل من اليمين الى اسفل ، ثم عمود جديد
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
السلام عليكم وهذه نسخ بصيغة mdb جعفر 680.4.jjafferr.mdb.zip 680.3.Saleh.mdb.zip -
السلام عليكم تفضل هذا الرابط ، وفيه حل لطلبك: جعفر
-
استفسار عن طريقة حساب عدد الذكور والاناث حسب الاختصاص
jjafferr replied to Ahmed.IQ's topic in قسم الأكسيس Access
-
بعض الاوقات لازم ما نفكر بأسوأ الاحتمالات هذه المشكلة عالمية (بترجمة جعفر): فالمشكلة دائما هي وكيفية ومدى تفاصيل شرح الزبون لتوصيل الفكرة جعفر
-
وعليكم السلام انزلت المرفق ، ولم افهم المطلوب!! يمكنك تغيير المبلغ عند وجودك على حقل الخصم ، فما هي المشكلة؟ جعفر
-
وعليكم السلام يا ريت ترفق لنا ما عملت وما توصلت اليه ، حتى نساعدك للخطوة التالية جعفر
-
وعليكم السلام اخي عمر هذا البرنامج اصبح الآن من الاولويات ، وان شاء الله ابدا العمل عليه قريبا جعفر
-
تفضل 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
-
وعليكم السلام قصدك بنموذج frm_Search ؟ مع العلم ، بأن النموذج " ادراج بفاتوره مبيعات" لا يمكنه اخذ اكثر من سجل واحد ، وذلك لأنه غير مضمن (ليس مرتبط بجدول). جعفر
-
لوسمحت تجرب هذا بدلا عن السطر الذي فيه مشكلة ، على الكمبيوترات اللي عليها الاكسس 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بت ، لهذا السبب يجب ان نستخدم هذا الامر جعفر
-
تعديل على كود xsql للبحث فى جدولين مختلفين
jjafferr replied to solventer's topic in قسم الأكسيس Access
الكود الذي عندك ، المفروض يجمع استعلامين عن طريق Union ، ويجب ان تكون حقول الاستعلامين المتشابهة تحت بعضها ، وانت تستخدم حقول الجدول table1 التاليه ، فرجاء كتابة اسماء الحقول المشابهة لها من الجدول Sales ، Select ID, earia, kind, date, esal_num, quant, acc_nam, acc_num, delev_dest, amount, wrong_acc FROM table1" جعفر -
تعديل على كود xsql للبحث فى جدولين مختلفين
jjafferr replied to solventer's topic in قسم الأكسيس Access
السلام عليكم مراجعة للمطلوب: السؤال الاصل كان بادراج خانه المبلغ وحـ/ الخطأ من جدولtable1 الى جدول sales ،المبلغ من خانة value1_1000 ، حـ/خطأ من خانة accnum2 ولكن الظاهر المطلوب كان هو: عند البحث عن اكثر من رقم فاتورة ، فيمكن ان تكون الفاتورة في الجدولtable1 او الجدول sales ، والمطلوب ان نأتي بسجل هذه الفاتورة من الجدول الصحيح. طيب ، اذا حقل المبلغ وحقل حـ/الخطأ كانوا فاضين ، شو المفروض نعمل؟ جعفر -
وعليكم السلام أختي ، لما تشوفين نفسك تضطرين الى عمل مجموعة خطوات لعمل معين ، فمعناه ممكن يكون فيه طريقة اخرى اسهل للقيام باللي تريديه فلازم تعرضين علينا الصورة الكاملة للعمل (وليست الجزئية الصغيرة التي شرحتيها بأعلاه) ، وطبعا المرفق يساعد كثيرا جعفر
-
عملت تغيير بسيط على الكود السابق ، واليك المرفق الجديد 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
-
كيف افتح اكثر من موقع انترنت بفترة زمنية متباعدة
jjafferr replied to محمد احمد لطفى's topic in قسم الأكسيس Access
تفضل تستطيع ان تتحكم في مدة التأخير ، والتي وضعتها انا لمدة 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 جعفر