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

Moosak

أوفيسنا
  • Posts

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

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

  • Days Won

    55

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

  1. أخي محمد البرناوي الحبيب 🙂 مما لاحظته على هذا الكود أنه بمجرد الانتقال للسجل الجديد يقوم بتفعيله .. فإذا قرر المستخدم عدم إضافة السجل سيبقى فارغا .. مما سينتج العديد من السجلات الفارغة في الجدول مع تكرار نفس العملية .. لذلك أقترح أن تضيف الكود الخاص بك في حدث ( قبل الإدراج Before Insert ) أو استخدام الكود الذي أدرجته سابقا : في حدث عند الفتح .. وهذا سيحل الإشكال 🙂
  2. أخي حمدي يمكنك استخدام هذه الدالة للتحقق من وجود إنترنت من عدمه 🙂 Private Declare PtrSafe Function InternetGetConnectedState Lib "wininet.dll" ( _ ByRef lpdwFlags As Long, _ ByVal dwReserved As Long _ ) As Boolean ' Returns True if there is an active Internet connection, False otherwise Function IsInternetConnected() As Boolean Dim flags As Long IsInternetConnected = InternetGetConnectedState(flags, 0) End Function Sub test() If IsInternetConnected() Then MsgBox "There is an active Internet connection." Else MsgBox "There is no active Internet connection." End If End Sub الدالة IsInternetConnected() ترجع لك True إذا الانترنت موجود و False إذا الشبكة مقطوعة
  3. رائع أخي أحمد يعمل بكفائة ما شاء الله .. 🙂 فقط لاحظت أنه ما ينقص قيمة المقدم من مجموع المبلغ .. بل يبني مباشرة على قيمة المبلغ كاملا .. وربما أكون مخطئ .. جربها أنته 🙂
  4. وعليكم السلام ورحمة الله وبركاته 🙂 مشاركة مع أخي البرناوي .. أو أكتب السطر هكذا في حدث عند الفتح للنموذج : Me.id_customer.DefaultValue = [Forms]![frm_main]![id]
  5. وعليكم السلام ورحمة الله وبركاته 🙂 هذا هو كود التحقق للصيغة التي طلبتها : Like "*" & "/" & Year(Date()) وأما بالنسبة للجزئية الثانية ، جرب هذا الكود : If Not Me.TextBox Like "*" & "/" & Year(Date) Then Me.TextBox = Me.TextBox & "/" & Year(Date) End If
  6. ممتاز ما شاء الله عليك 🙂 استخدم دالة mod لإضافة الباقي للقسط الأخير 🙂
  7. لا الذكاء الصطناعي شغال على قد حاله 😅 ( على قدر المعطيات ) كان ما متعرف على أنه الفقرة بادية من سطر جديد .. فأنا قمت بضغط Enter قبل الفرة الثانية واشتغل زين 🙂
  8. وعليك السلام أخي أحمد 🙂 ما يقوم به البرنامج هو تقسيم مجموع ( إجمالي المبلغ - المقدم ) / عدد الأقساط .. ( 5000000 - 0 ) / 45 = 111111.111111 ثم يقوم بأخذ الفواصل من الأقساط (0.111111) ويضرها في عدد الأقساط ثم يضيف مجموع هذه الفواصل للقسط الأخير 🙂 فسيكون (0.111111 * 45 ) = 4.999999 ثم يضاف هذا للقسط الأخير فتكون قيمته 4.999999 + 111111 = 111116 ومثل ما قال أخي أبو بسملة @ابو بسمله قم بحذف الأقساط وإضافتها من جديد بسبب وجود خطأ . ولا تنسى تغيير العملة في مصدر بيانات حقل المبلغ لعملة بلدك 🙂 برنامج الأقساط - موسى.rar
  9. البرنامج بالفعل يقوم بذالك .. لاحظ أن القسط الأخير أكبر من الأقساط الأخرى 🙂
  10. أهلا بك أخي @nssj 🙂 هذه محاولتي فيما يخص النقطة الثانية ، بالاستعانة بالذكاء الاصطناعي 😁 وهذه هي الدالة العامة التي تفحص وجود أكثر من فقرة تبدأ بأرقام : Public Function CheckParagraphs(text As String) As Boolean Dim paragraphs() As String paragraphs = Split(text, vbCrLf) ' تقسيم النص إلى فقرات منفصلة Dim paragraph As Variant Dim x As Integer x = 0 For Each paragraph In paragraphs ' التنقل عبر كل فقرة If IsNumeric(Left(paragraph, 1)) Then ' فحص إذا كان الحرف الأول في الفقرة هو رقم x = x + 1 If x >= 2 Then CheckParagraphs = True ' لو كان الحرف الأول في الفقرة هو رقم، يتم إرجاع القيمة True Exit Function ' يتم الخروج من الدالة End If End If Next CheckParagraphs = False ' لو لم يتم العثور على فقرة تبدأ برقم، يتم إرجاع القيمة False End Function ثم يتم تحديث البيانات في الجدول عن طريق : ' Moosak : Dim dbs As DAO.Database Dim rst As DAO.Recordset Set dbs = CurrentDb Set rst = dbs.OpenRecordset("book") rst.MoveLast rst.MoveFirst Do Until rst.EOF rst.Edit rst!check_No = CheckParagraphs(rst!Nass) rst.Update rst.MoveNext Loop Me.Requery rst.Close Set dbs = Nothing Set rst = Nothing check_Book2.rar
  11. وعليكم السلام أخي علي 🙂 جرب هذا الكود لإعادة الاتصال بقاعدة بيانات ال SQUL : Public Sub ConnectToSQL() Dim cn As ADODB.Connection Set cn = CurrentProject.Connection cn.Open "Driver={SQL Server};" & _ "Server=myServerName;" & _ "Database=myDatabaseName;" & _ "Trusted_Connection=yes;" End Sub مع مراعات تغيير بيانات الاتصال لديك في الكود
  12. ثلث الأمثلة اللي موجودة في مكتبتي هي أمثلة من ابداعات أبو جودي 😂 معك حق أستاذي الحبيب 👍🏼🙂 إن شاء الله يتم تطويره .. ومثل ما ذكرت لك .. 😊👇
  13. وهذا برنامج أقساط مبسط جدا .. كان عبارة عن تمرين استرجاع مهارات وقتها وتحدي مع أحد الإخوة الأعزاء 😊 برنامج الأقساط - موسى.rar
  14. شكرا لك أخي العزيز @kkhalifa1960 جهد رائع وعمل تشكر عليه وجعله الله في ميزان حسناتك 🙂 ومثل ما قال أخي @TQTHAMI البرنامج إبداع ولكنه مزحوم جدا .. يحتاج إلى تبسيط من ناحية تقسيم الخدمات اللي يوفرها أوالألوان والأشكال والخطوط المتداخلة .. وحبذا مع شرح مبسط لكيفية الاستخدام 😊
  15. وأنا وجدت هذا الكود في مكتبتي 🙂 (إضافة عنصر ليس موجود في القائمة ) '************ Code Start ********** ' This code was originally written by Dev Ashish. ' It is not to be altered or distributed, ' except as part of an application. ' You are free to use it in any application, ' provided the copyright notice is left unchanged. ' ' Code Courtesy of ' Dev Ashish ' Private Sub cbxAEName_NotInList(NewData As String, Response As Integer) Dim db As DAO.Database Dim rs As DAO.Recordset Dim strMsg As String strMsg = "'" & NewData & "' is not an available AE Name " & vbCrLf & vbCrLf strMsg = strMsg & "Do you want to associate the new Name to the current DLSAF?" strMsg = strMsg & vbCrLf & vbCrLf & "Click Yes to link or No to re-type it." If MsgBox(strMsg, vbQuestion + vbYesNo, "Add new name?") = vbNo Then Response = acDataErrContinue Else Set db = CurrentDb Set rs = db.OpenRecordset("tblAE", dbOpenDynaset) On Error Resume Next rs.AddNew rs!AEName = NewData rs.Update If Err Then MsgBox "An error occurred. Please try again." Response = acDataErrContinue Else Response = acDataErrAdded End If End If rs.Close Set rs = Nothing Set db = Nothing End Sub '*********** Code End **************
  16. حسب ما علمت فعلا أن بعض الدول العربية تحضر الموقع (مصر مثلا) ، ولكن يمكن تجاوز ذلك باستخدام الشبكات الخاصة الافتراضية . 🙂
  17. وهذا ملفك بعد تعديل الكود ليظهر النتيجة في رسالة : 🙂 الملف الجديد.rar
  18. أخي هذا الكود النهائي بعد عدة محاولات بتغيير صيغة السؤال 🙂 ويمكن تعديل الكود أكثر ليلائم الاحتياج الفعلي ... صيغة السؤال كانت : search for a text in all records in all text type fields of all tables of access database (البحث عن نص في جميع السجلات في جميع الحقول من نوع النص لجميع جداول قاعدة البيانات) والنتيجة بتعديل بيط جدا ( والجميل في الموضوع أن الموقع يشرح لك الكود بدقة مثل ما هو واضح في الكود ) 🙂 : Public Sub SearchTextRecords(ByVal searchText As String) Dim db As DAO.Database Dim tbl As DAO.TableDef Dim fld As DAO.Field Dim rs As DAO.Recordset Set db = CurrentDb ' Loop through all tables in the database For Each tbl In db.TableDefs ' Skip system tables If Left(tbl.Name, 4) <> "MSys" Then ' Open a recordset for the table Set rs = db.OpenRecordset(tbl.Name) ' Loop through all records in the table Do While Not rs.EOF ' Loop through all fields in the table For Each fld In tbl.Fields ' Check if the field is a text type If fld.Type = dbText Then ' Search for the text in the field If InStr(rs(fld.Name).value, searchText) > 0 Then ' The text was found Debug.Print tbl.Name & ": " & fld.Name & " - " & searchText & " found :" & rs(fld.Name).value End If End If Next fld ' Move to the next record rs.MoveNext Loop ' Close the recordset rs.Close End If Next tbl Set db = Nothing End Sub الكود عبارة عن روتين عام .. ويمكن مناداته بهذه الطريقة ( يوفرها لك الموقع أيضا ) : SearchTextRecords "search text"
  19. الله الله الله عليك يا عمر @عمر ضاحى 🙂 شكرا شكرا على المشاركة وعلى البرنامج والجهد الراااائع 🌹 الحمدلله البرنامج اشتغل بنجاح ولكنه فقط لم ينجح في الربط بقاعدة البيانات تلقائيا إلى أن ربطتها أنا بالطريقة اليدوية التقليدية 🙂 غفر الله لك ولوالديك ورضي عنكم وأرضاكم وجمعكم الله وجميع من تحب برحمته في فسيح جناته وبحبوحة رضوانه .. اللهم آمين 🙂🤲🏼
  20. بالمناسبة اكتشفت أن الموقع يدعم اللغة العربية 👍🏼😊 كتبت له هذا السؤال : البحث عن كلمة (مفردة) معينة في جميع الحقول الموجودة في جميع الجداول في قاعدة البيانات .. وأكتب لي هذا الكود .. (نقلته لك بدون تعديل ) 🙂 : Private Sub SearchFields(ByVal searchPhrase As String) Dim db As DAO.Database Dim tbl As DAO.TableDef Dim fld As DAO.Field Dim rs As DAO.Recordset Set db = CurrentDb ' Loop through all tables in the database For Each tbl In db.TableDefs ' Skip system tables If Left(tbl.Name, 4) <> "MSys" Then ' Open a recordset for the table Set rs = db.OpenRecordset(tbl.Name) ' Loop through all fields in the table For Each fld In tbl.Fields ' Search for the phrase in the field rs.FindFirst fld.Name & " Like '*" & searchPhrase & "*'" If Not rs.NoMatch Then ' The phrase was found Debug.Print tbl.Name & "." & fld.Name & ": " & searchPhrase & " found" ' Continue searching in the field Do While Not rs.NoMatch rs.FindNext fld.Name & " Like '*" & searchPhrase & "*'" If Not rs.NoMatch Then Debug.Print tbl.Name & "." & fld.Name & ": " & searchPhrase & " found" End If Loop End If Next fld ' Close the recordset rs.Close End If Next tbl Set db = Nothing End Sub
  21. سلطنة عمان الرائعة والجميلة 😊✌️🏻
  22. تكرما أعد كتابة السؤال من جديد بشكل واضح ومحدد .. 🙂 مثل اسماء الحقول التي تريد البحث فيها..
  23. وعليكم السلام ورحمة الله وبركاته أخي أحمد .. بالنسبه للغة العربية الموقع يدعم الأسئلة باللغة الانجليزية ولكن يمكنك كتابة كلمات عربية في السؤال مثل اسماء الحقول أو كلمات البحث مثلا.. وللتغلب على قضية ان تكون الاسئلة باللغة الانجليزية قم بكتابة السؤال في مترجم جوجل ثم قم بنسخة الى الموقع باللغة الانجليزية. اما بالنسبة للكود الذي سالت عنة يمكنة كتابته بكل سهولة واكثر من ذلك 😊
  24. بالجيميل 🙂
  25. تم بحمد الله 🙂 يمكنك الآن استخراج جميع الأرقام من جميع السجلات وإضافتها في الجدول بضغطة زر واحدة ( الزر الأصفر في الأسفل ) 🙂 وأضفت النموذج الفرعي لرؤية الأرقام المرتبطة بالسجل .. وهذه السجلات في الجدول : MZ_MNO.rar
×
×
  • اضف...

Important Information