بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation on 03/29/20 in مشاركات
-
أولا يجب إضافة تعديل بسيط لدالتك لتصبح بهذا الشكل: Function sedqtr(mott As String) Dim se As String se = "" For i = 1 To Len(mott) se = se & Format(Asc(Mid(mott, i, 1)), "000") + Int(100 / 15) Next sedqtr = se End Function الدالة المعاكسة لها تكون كالتالي: Function sedqtr(mott As String) Dim se As String se = "" For i = 1 To Len(mott) Step 3 se = se & Chr(Val(Mid(mott, i, 3)) - Int(100 / 15)) Next sedqtr = se End Function5 points
-
4 points
-
4 points
-
السلام عليكم 🙂 رجاء مراجعة موضوع النسخة 2 من هنا : واجهة هذه النسخة: البرنامج يقوم بهذه الخطوات التي يوصي بها المحترفين (كما هو موضح في الصورة اعلاه) ، طريقة العمل: 1. اختار ملف اكسس ، 2. اذا الملف محمي بكلمة سر ، فيمكن كتابته في المربع المخصص ، حيث سيتم حفظه في ذاكرة الكمبيوتر ، والتي يجب عليك ان تدخلها يدويا للقيام بالخطوات 2 و 3 لمرة واحدة ، بينما البرنامج سيدخلها تلقائيا للخطوات التالية ، 3. يجب ان تمسك مفتاح الشفت ، ثم تضغط على زر Decompile ، ولا تترك الزر إلا لما ينتهي البرنامج من عمله ، عندما نرى الخطوات 8 و 9 🙂 هذه النسخة اسرع من النسخة السابقة ، وافضل 🙂 جعفر Decompile_3.zip3 points
-
السلام عليكم هذه دالة ممتازة للتشفير و فك التشفير وضعها الأستاذ @أ / محمد صالح جزاه الله كل خير Public Const trialdays As Integer = 30 Public Const encodekey As String = "mas" Public Const regpath As String = "HKEY_CURRENT_USER\software" Public Const regfolder As String = "masrfirst" Public Const mainform As String = "main" Function en_de(sMessage As String, Optional strKey As String = encodekey) Dim kLen, x, y, i, j, temp Dim s(256), k(256) 'Init keystream kLen = Len(strKey) For i = 0 To 255 s(i) = i k(i) = Asc(Mid(strKey, (i Mod kLen) + 1, 1)) Next j = 0 For i = 0 To 255 j = (j + k(i) + s(i)) Mod 255 temp = s(i) s(i) = s(j) s(j) = temp Next 'Drop n bytes from keystream x = 0 y = 0 For i = 1 To 3072 x = (x + 1) Mod 255 y = (y + s(x)) Mod 255 temp = s(x) s(x) = s(y) s(y) = temp Next 'Encode/Decode For i = 1 To Len(sMessage) x = (x + 1) Mod 255 y = (y + s(x)) Mod 255 temp = s(x) s(x) = s(y) s(y) = temp en_de = en_de & Chr(s((s(x) + s(y)) Mod 255) Xor Asc(Mid(sMessage, i, 1))) Next End Function قم بوضعها في وحدة نمطية منفصلة و يتم استدعائها بهذا الشكل Me.t = en_de(Me.v) v و t هما أسماء مربعات نص و هي تقوم بالتشفير و فك التشفير في نفس الوقت3 points
-
السلام عليكم 🙂 الاستعلام الذي عملته انت : . بدون ربط بين الجداول ، وهذا معناه ، انك تطلب سجلات عددها : 16x8x11x16x27x24x10x6 = 875,888,640 (شوف صورة سجلات الجداول في الاسفل ، علشان تعرف من وين جئت بهذه الارقام 🙂 ) ، فهل سرعة محرك كمبيوترك CPU ، وكمية الذاكرة المؤقته RAM ، قادرة على عرض هذا الكم الهائل من السجلات 🙂 . خلينا نشوف استعلام علشان نفهم الموضوع : نخلي الجدولين فقط ، والي نعرف ان مجموع عدد السجلات سيكون : 16x8 = 128 . والنتيجة ، وكما يعرضها الاستعلام : . وهذا اللي عملنه انا بإستعمال مرفقك ، وهي الطريقة الافضل لبرنامجك : . ولكن ، هذه طريقة الاكسل في وضع البيانات ، بينما اذا اردنا تعديل الاكسس ، فيكون كالتالي: نعمل الجدول tbl_Salary والذي سيشمل جميع الجداول الثمانية ، وبدون حقلي "المحسوب" ، ومع اضافة حقل اسم "المجموعة" : . والنتيجة : . وعلى اساس هذا الجدول ، نعمل استعلام qry_Salary ، ونضيف الحقلين "مج الاستقطاع" و "الصافي" مع معادلاتهم : . ومقارنة سجلات الجدول السابق مع الاستعلام الجديد : . والآن وبكل بساطة تعمل الاستعلام الذي يقوم بعملية جمع الصافي : . والنتيجة : . جعفر 1197.wameed.accdb.zip3 points
-
برنامج للحضور والانصراف للعاملين انا كنت نزلته قبل كده فى قسم الاكسس النسخه دى بعد اضافات جديده وشرح لطريقه الاستخدام وانا ضفته فى هذا القسم خوفا ان يكون مخالف انى انزل البرنامج مرتين وهترك المجال لإدارة المنتدي تتولى نقله من عدمه لقسم الاكسس صور البرنامج https://drive.google.com/open?id=1j5MJeQdaqHGL351Me9wD4x5hKcna0gPq https://drive.google.com/open?id=1y6qL4x8khyedccBXY-VSxZqhrdJPMT3W https://drive.google.com/open?id=1GB7gVZcAxfuocr_lU9YsbIHzRMafhUMm https://drive.google.com/open?id=1vcKj26_EoFJ57jrymPCdetXE9QOIHuVY https://drive.google.com/open?id=1XGykpvyh3YTWwLFf0Wyu1MZHObwO7uVa فيديو استخدام البرنامج رابط التحميل https://drive.google.com/open?id=1nrhgmtBR3iuhVwSoEUyS9AWebO2As1Rj وهرفق نسخه فى الموضوع2 points
-
لا حاجة لرفع الملف بكامله (أكثر من 1100 صف) كان يكفي رفع نموذج عما تريد لا أكثر من 20 صف لمعاينه عمل المعادلات انظر الى هذا الملف My_sheet (1).xlsx2 points
-
لا يا أخي الشفرة لا تسجل في الرجستري فالمتغيرات المعرفة فوق الدالة نحتاج منها سطر واحد فقط و البقية تستطيع حذفها لأنها خاصة ببرنامج آخر Public Const encodekey As String = "mas"2 points
-
جرب هذا الكود Option Explicit Sub Join_array() Dim My_rg As Range, Entire_Mot$, Cel As Range Set My_rg = Union(Range("I5"), Range("C12"), Range("B13"), Range("E13"), _ Range("G13"), Range("C16"), Range("E16"), Range("H16"), _ Range("F18"), Range("H18")) For Each Cel In My_rg Entire_Mot = Entire_Mot & " " & Cel.Text Next Range("N14") = Mid(Entire_Mot, 1, Len(Entire_Mot) - 1) & "." End Sub2 points
-
@احمد الفلاحجي شكرا استاذ احمد علي اهتمامك تم حل المشكلة من قبل اخينا الكريم استاذ صالح @ابوآمنة حاجة بسيطة يا استاذ صالح2 points
-
2 points
-
الكود بعد وضع كود تجاوز الخطأ جرب الآن Sub AuditChanges(IDField As String, UserAction As String, UsedForm As Form) 'كود تجاز الخطاء ' On Error Resume Next Dim cnn As ADODB.Connection Dim rst As ADODB.Recordset Dim ctl As Control Dim datTimeCheck As Date Dim strUserID As String Set cnn = CurrentProject.Connection Set rst = New ADODB.Recordset rst.Open "SELECT * FROM revision", cnn, adOpenDynamic, adLockOptimistic datTimeCheck = Now() strUserID = Environ("USERNAME") Select Case UserAction Case "EDIT" For Each ctl In UsedForm.Controls If ctl.Tag = "Audit" Then If Nz(ctl.Value) <> Nz(ctl.OldValue) Then With rst .AddNew ![DateTime] = datTimeCheck ![UserName] = strUserID ![FormName] = UsedForm.name ![Action] = UserAction ![RecordID] = UsedForm.Controls(IDField).Value ![FieldName] = ctl.ControlSource ![OldValue] = ctl.OldValue ![NewValue] = ctl.Value .Update End With End If End If Next ctl Case "DELETE" For Each ctl In UsedForm.Controls If ctl.Tag = "Audit" Then With rst .AddNew ![DateTime] = datTimeCheck ![UserName] = strUserID ![FormName] = UsedForm.name ![Action] = UserAction ![RecordID] = UsedForm.Controls(IDField).Value ![FieldName] = ctl.ControlSource ![OldValue] = ctl.Value .Update End With End If Next ctl Case Else For Each ctl In UsedForm.Controls If ctl.Tag = "Audit" Then If Nz(ctl.Value) <> Nz(ctl.OldValue) Then With rst .AddNew ![DateTime] = datTimeCheck ![UserName] = strUserID ![FormName] = UsedForm.name ![Action] = UserAction ![RecordID] = UsedForm.Controls(IDField).Value ![FieldName] = ctl.ControlSource ![NewValue] = ctl.Value .Update End With End If End If Next ctl End Select rst.Close cnn.Close Set rst = Nothing Set cnn = Nothing Exit Sub End Sub2 points
-
ان وسائل التواصل الاجتماعي لها مميزاتها و لكن مع احترامي لكافة الآراء ، أري أن المنتدى أفيد على المدى الطويل من اي من وسائل التواصل الاجتماعي التي قد تكون أسهل و لكن الاستفادة منها على المدى الطويل أقل و هذا رأي شخصي يحتمل الخطأ والصواب عندما أنشأنا جروب الفيس بوك ، حرصت ان يكون فقط وسيلة لنشر المواضيع و الفيديوهات و الا يكون فاعدة بيانات بديلة للمنتدى واذا ثبت أن هناك ما هو افضل من المنتدى كأداة للتوصل و تخزين و استرجاع المعلومات، فالحل سيكون فى الاستبدال و ليس الاضافة ، فوجود اكثر من قناة للتواصل على الرغم من مميزاته الا انه به تشتيت و تفرقة للجهود الى أرى أن الأصلح عدم تشتيتها.2 points
-
2 points
-
وعليكم السلام اخي صالح 🙂 الضغط والاصلاح عمله مع كائنات الاكسس ، عدا الكود ، بينما الامر Decompile/Compile له علاقة بضغط واصلاح الكود 🙂 وفي برنامجي اتبعت ارشادات المحترفين في الجمع بين الطريقين ، وبالتسلسل الصحيح 🙂 جعفر2 points
-
السلام عليكم 🙂 ولكن تأكد من انك تحتفظ بالنسخة الاصلية الغير مشفرة ، فأي تعديل (ولابد ان يكون هناك تعديل ، فالمثل المتعارف عليه بين المبرمجين: اذا استعملت البرنامج مدة وما اردت فيه تعديل ،ولا رأيت فيه مشكلة ، فأنت المستخدم فيك المشكلة !!) ، ولا يمكن القيام بالتعديل على النسخة المشفرة ، وتحتاج الى النسخة الغير مشفرة لعمل التعديل 🙂 ويجب تتبع رقم نسخة برنامجك (لا ليس نسخة الاوفيس ، وانما نسخة برنامجك) ، والاحتفاظ بجميع النسخ لديك ، فقد لا يملك كل مستخدم ، النسخة النهائية !! جعفر2 points
-
تفضل أضفنا أمر DELETE في الوحدة النمطية ووضعنا الأمر عند الحدث في النموذج . copy.accdb2 points
-
تفضل إن شاء الله يكون هذا المطلوب المخزون.accdb2 points
-
1 point
-
هذه الخطوة رقم 1 ، وهي عمل نسخة من البرنامج قبل ان يقوم بالضغط ، ليش !! لأن الله يسلمك ، معظمنا لا يعمل نسخة من البرنامج ، واذا اثناء العمليات اعلاه اطفأت الحاسبة/الكهرباء ، فعلى برنامجك السلام !! كنت اعتقد بأنه يقول بذلك ، ولكني تأكدت بعد سؤالك ، بأنه يتأكد ولكن لا يخبرك بالنتيجة !! لذلك ، فأنا اعمل على النسخة التالية التي ستنبهك بذلك 🙂 جعفر1 point
-
1 point
-
السلام عليكم اساتذتى واخوانى -أقدم لكم هذا البرنامج وهو من برمجة وتصميم استاذنا الكبير / سامى محمد على وصور وشرح البرنامج داخل ملف الإكسيل وهناك نموذجان للبرنامج أحدهما يصلح لمدارس البنين والأخر لمدارس البنات واسم المستخدم للبرنامج : admin وكلمة السر : 123 يا رب ينال اعجابكم -جزاكم الله كل خير BOY.rar GIRL.rar صور وشرح البرنامج.docx1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
Public Const regpath As String = "HKEY_CURRENT_USER\software" ضيعني هذا السطر شكراً لك على التنبيه لكن هل هو متغيير أم ثابت Const1 point
-
وعليكم السلام اتفضل اخى الفاضل ان شاء الله يكون طلبك بناء على رقم الحساب والعمله والاهم التاريخ ليعطينى الرصيد صحيح الرصيد التراكمى: DSum("Price";"wesam_tb1";"AccountName=" & [AccountName] & "And [PCurrency]=" & [PCurrency] & "and [dat]<=" & Format([dat];"\#mm\/dd\/yyyy\#")) والافضل باستخدام حقل رقم الحركه كما بالمرفق الثانى QTRseed: DSum("Price";"wesam_tb1";"AccountName=" & [AccountName] & "And [PCurrency]=" & [PCurrency] & "and [dat]<=" & Format([dat];"\#mm\/dd\/yyyy\#") & "and [id]<=" & [id]) صوره من المرفق الثانى تقبل تحياتى وتمنياتى لك وللجميع بالتوفيق رصيد تراكمي.accdb رصيد تراكمي1.accdb1 point
-
1 point
-
وعليكم السلام مشاركه لاخى العزيز @اشرف جزاه الله خيرا اتفضل اخى الفاضل @عذاب الزمان ان شاء الله يكون ماطلبت على قدر ما فهمت من سؤالك Private Sub TYPE_AfterUpdate() Dim x As String x = Me.TYPE.Column(0) ' If x = A Or x = 2 Or x = B Then = الجمله التاليه ولكن بقيمها بالجدول If x = 1 Or x = 4 Or x = 2 Then Me.COUNT_TYPE = DCount("TYPE", "TBL1", "TYPE=" & x) Me.txt3 = "" Else Me.txt3 = DCount("TYPE", "TBL1", "TYPE=" & x) Me.COUNT_TYPE = "" End If End Sub تقبل تحياتى وتمنياتى لك وللجميع بالتوفيق TEST SUM&COUNT.accdb1 point
-
1 point
-
1 point
-
1 point
-
جرب هذا التعديل ()sub clear sheets("namesheet1").range("B2", "B13").clear sheets("namesheet2").range("h4","H16").clear sheets("namesheet3").range("h6", "h12").clear end sub1 point
-
1 point
-
1 point
-
شكرا لك أستاذ صالح حمادي على الدالة كما يوجد عدة دوال أخرى وكل وحدة وطرقة المتبعة فيها ولكن أرد عكس هذيه دالة رغم بساطتها لم أنجح في ذلك وشكر جزيلا لك1 point
-
1 point
-
1 point
-
حياك أخي اشرف كلنا تستفيد من بعض و يا ليتك وضعت مشاركتك ليختار الاخ الانسب له وأيضا هي إثراء للموضوع .1 point
-
السلام عليكم ابوآمنة عمل جميل باسلوب سهل احسنت اخي الفاضل ابوهزاع العولقي حذفت المرفق السابق والرائع ابو امنة سبقني في الرد بعمل جميل ورائع اتمني ان يكون طلبك1 point
-
1 point
-
1 point
-
ضعه في الفورم form احذف اول سطر من الكود وضع مكانه Private Sub CommandButton3_Click() اذا كان رقم الزر التنفيذ 3 او استبدل 3 برقم زر التنفيذ1 point
-
1 point
-
اكتب على الوورد عادي وعند الطباعة اختار خجم الورق سواء كان A3 أو A4 اذا اخترت الطباعة على ورق حجم A3 اختار ضبط من خصائص الطباعة سيقع توزيع المحتوى على كامل حجم الورقة1 point
-
1 point
-
السلام عليكم ...أنظر المرفق به يوزرين الاول صلاحيات كاملة والاخر بدون فتح النموذج : 1 1 الثاني 2 2 kan1.accdb_2.zip1 point
-
انا اتكلم برمجيا لا محاسبيا.. القيمة تم رصدها في قاعدة البيانات بقي اما استلامها او دفعها فالواجب من منظور برمجي : ان القيمة في السند يتم جلبها آليا من جدول الفواتير او بعضا منها , وما يتم سداده يتم التأشير عليه وما المانع الخزينة يكون مصدرها جدول التفاصيل ، ما هي كلها جداول هنا او هناك ، والقيمة المدفوعة والمتبقية مرصودة . ما انت في الاخير ستعمل مقارنة بين المقبوضات والمبيع وكذلك بين المشتريات والمدفوع من اجل اخراج الربح والخسارة ، يعني ستضطر مجبرا ان تجمع بين جدولك الجديد اللي اسميته جدول الصندوق مع جدول التفاصيل في استعلام واحد مع ان العمليات كلها جاهزة في جدول التفاصيل فقط تحتاج لحقل يبين المسدد من غيره ومثل ما ذكرتك لك اخي الكريم هذا رأي انفرد به قد يكون غير صحيح لوجود خطوات مستقبلية تتعارض وفكرتي .. انما هي فكرة وتصور لما يحدث داخل قاعدة البيانات من اجراءات وعمليات1 point