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

Foksh

الخبراء
  • Posts

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

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

  • Days Won

    117

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

  1. حالياً لاني متابع من الموبايل ، اكتب لي بشرح وافي ( ولا تبخل بالشرح الواضح ) الفكرة اللي متخيلها للبرنامج من لحظة أول نموذج ..... الخ 😅
  2. تفضل أخي الكريم Scanner DLL.accdb ارسل الكود الذي لديك لتجربته ومحاولة فهم سلوكه
  3. الصورة من ويندوز 10 وأوفيس 2016 .
  4. أخي @Zooro1 ، ربي يسلمك من كل مكروه لنبدأ غداً إن شاء الله في توضيح بعض النقاط والأساسيات ثم البدء بتصميم الجداول .
  5. تفضل أخي @SAROOK ، تم التعديل على مديول المرفق وتوسيعه ليشمل كلمة "بن" أينما وردت بين مقاطع الإسم ، في الكود التالي :- Public Function qsplit(FullName As String, i As Integer) As String Dim parts() As String Dim j As Integer Dim namePart As String parts = Split(FullName, " ") For j = 0 To UBound(parts) - 1 If InStr(parts(j), "بن") > 0 Then parts(j) = parts(j) & " " & parts(j + 1) parts(j + 1) = "" End If Next j Dim count As Integer For j = 0 To UBound(parts) If parts(j) <> "" Then If count = i Then qsplit = parts(j) Exit Function End If count = count + 1 End If Next j End Function مع بقاء الإستدعاء كما هو في الملف المرفق لك ، وهذا ملفك بعد التعديل :- Splite Names.accdb
  6. هذه الجملة كفيلة بالإجابة وهي ( لا يمكن ) لوجود علاقة بينهم .
  7. أخي @الحياري ، جرب هذا الملف المرفق بنقله إلى أحد المسارات التالية حسب الويندوز لديك :- C:\Windows\System (Windows 95/98/Me), C:\WINNT\System32 (Windows NT/2000), or C:\Windows\System32 (Windows XP, Vista, 7, 8, 8.1, 10). twain_32.zip وأخبرني بالنتيجة إن كانت هكذا ؟
  8. ربي يسلمك من كل مكروه أخي @ابو العزايم ،، أعتذر عن التأخير ، وبالنسبة لطلبك ، انظر لهذا التعديلات في التقرير Copy . وأخبرني بالنتيجة Ac Source.accdb
  9. سلمك الله مهندس قاسم 🥰
  10. تفضل أخي @Bshar ، تم الإستعانة بنموذج مؤقت Temp ، لإدراج قيم الفلترة فيه ومن ثم انشاء تقرير مبني على هذا الجدول . وهذا الكود ليقوم بتنفيذ المهمة :- Private Sub Rep_Btn_Click() ApplyFilter DoCmd.SetWarnings False DoCmd.RunSQL "DELETE FROM Temp" DoCmd.SetWarnings True Dim rs As DAO.Recordset Set rs = Me.tape5.Form.RecordsetClone If IsNull(Foksh) Then DoCmd.CancelEvent Exit Sub Else rs.MoveFirst Do Until rs.EOF Dim selectedValues() As String selectedValues = Split(Me.Foksh, ",") Dim i As Integer For i = LBound(selectedValues) To UBound(selectedValues) If InStr(1, rs!color, Trim(selectedValues(i)), vbTextCompare) > 0 Then CurrentDb.Execute "INSERT INTO Temp (ID, namee, [code-work], [t-namber], type, lincec, color) " & _ "VALUES (" & rs!ID & ", '" & Forms![add-tab]![xxf] & "', " & rs![code-work] & ", '" & rs![t-namber] & "', " & _ "'" & rs![type] & "', '" & rs![lincec] & "', '" & rs![color] & "')" Exit For End If Next i rs.MoveNext Loop rs.Close Set rs = Nothing DoCmd.OpenReport "Table1", acViewPreview End If End Sub Foksh.accdb وأعتذر عن التأخير بسبب ظرف صحي .
  11. ضع كلمة المرور بين علامتي التنصيص ، جرب وبانتظار ردك 🤗
  12. الملف بصيغة ACCDE ولا يمكن التعديل عليه يا صديقي
  13. تم تعديل الكود والتأكد منه وتجربته . انسخه إلى مديول جديد ، واستدعيه بالأمر : ( CopactMyDb ) فقط حدد اسم قاعدة البيانات الخلفية التي بجانب القاعدة الرئيسية . Public Function compactDb(ByVal mydb As String, ByVal mydbb As String, ByVal mypass As String, Optional openIt As Boolean = False) Dim f As Integer Dim filenoext As String, extension As String, Access As String Access = """" & SysCmd(acSysCmdAccessDir) & "MSACCESS.EXE""" filenoext = Left(mydb, InStrRev(mydb, ".")) extension = Right(mydb, Len(mydb) - InStrRev(mydb, ".")) f = FreeFile Open CurrentProject.Path & "\compact.bat" For Output As f Print #f, "CHCP 1256" Print #f, ":checkldb1" Print #f, "if exist """ & filenoext & "l" & extension & """ goto checkldb1" Print #f, Access & " """ & mydbb & """" & mypass & " /compact" If openIt Then Print #f, ":checkldb2" Print #f, "if exist """ & filenoext & "l" & extension & """ goto checkldb2" Print #f, Access & " """ & mydb & """" Else Print #f, "del ""%~f0""" End If Close f End Function Public Function CopactMyDb() On Error Resume Next Dim Mypath, CurrDB, BEndTBL As String BEndTBL = "B-TBL.accdb" 'اسم قاعدة البيانات الخلفية CurrDB = CurrentProject.Path & "\" & CurrentProject.Name Mypath = CurrentProject.Path & "\" & BEndTBL Call compactDb(CurrDB, Mypath, "", True) Shell """" & Left(Mypath, InStrRev(Mypath, "\")) & "\compact.bat""", 0 DoCmd.Quit acQuitSaveAll End Function Desktop.zip
  14. أخي الدكتور @الحلبي ، كما اتضحت الفكرة لدي ، اعتقد البنية للجدول قد تجعل حل الموضوع بطريقة أصعب . جرب فكرة هذا الفيديو للأستاذ هاني هنا .
  15. أعتذر عن التأخير والمتابعة بسبب ظرف صحي . أخي @salah.sarea و الأخ @kamelnet5 على العموم يا صديقي بعد التركيز في مشاركتي السابقة يبدو أنني قد توجهت بشكل خاطئ للمطلوب . القاعدة المقسمة والمرتبطة بقاعدة بيانات الواجهة الرئيسية ( الأمامية ) لا بد من أنها ترتبط مع الجداول دون أن تقوم بإدخال الباسوورد بشكل يدوي كل مرة هل هذا صحيح ؟؟ وعليه وإن كان / أو لم يكن هناك كلمة مرور لقاعدة بيانات الجداول جرب هذا المرفق يعمل معي بكفاءة . وهذا كود الدالة :- Public Function compactDb(ByVal mydb As String, ByVal mypass As String, Optional openIt As Boolean = False) Dim f As Integer Dim filenoext As String, extension As String, Access As String Access = """" & SysCmd(acSysCmdAccessDir) & "MSACCESS.EXE""" filenoext = Left(mydb, InStrRev(mydb, ".")) extension = Right(mydb, Len(mydb) - InStrRev(mydb, ".")) f = FreeFile Open CurrentProject.Path & "\compact.bat" For Output As f Print #f, "CHCP 1256" Print #f, ":checkldb1" Print #f, "if exist """ & filenoext & "l" & extension & """ goto checkldb1" Print #f, Access & " """ & mydb & """" & mypass & " /compact" If openIt Then Print #f, ":checkldb2" Print #f, "if exist """ & filenoext & "l" & extension & """ goto checkldb2" Print #f, Access & " """ & mydb & """" Else Print #f, "del ""%~f0""" End If Close f End Function Public Function CopactMyDb() On Error Resume Next Dim Mypath As String Mypath = CurrentProject.Path & "\" & CurrentProject.Name Call compactDb(Mypath, "", True) Shell """" & Left(Mypath, InStrRev(Mypath, "\")) & "\compact.bat""", 0 DoCmd.Quit acQuitSaveAll End Function ويتم الإستدعاء في أي زر = CopactMyDb Compact.accdb
  16. اعتذر عن التأخير في المتابعة بسبب ظرف صحة
  17. اعتذر عن التأخير في المتابعة بسبب ظرف صحة
  18. وعليكم السلام ورحمة الله وبركاته اخي @salah.sarea . ضع هذا الكود في حدث عند النقر لزر الإصلاح ، مع تحديد مسار قاعدة البيانات B_Be حسب ما تريد . Private Sub btnRepair_Click() Dim strConnect As String Dim strPassword As String strPassword = "123" strConnect = "MS Access;PWD=" & strPassword & ";DATABASE=path_to_b_be.accdb" Application.CompactRepair SourceFile:="path_to_b_be.accdb", DestinationFile:="path_to_b_be.accdb", _ Password:=strPassword MsgBox "تم إصلاح قاعدة البيانات بنجاح!", vbInformation End Sub طبعا على افتراض أن اسم الزر btnRepair.
  19. لا أعتقد أن الحذف خطوة جيدة 🤔 إلا اذا كانت السجلات وبياناتها غير مهمة ومفيدة حسب المشروع. ثم ماذا لو كانت اكثر من سجلين 🧐 هل أيضاً سيتم الاستغناء عنها في حال كان احد الحقول غير فارغ مكرراً !!
  20. ما شاء الله عليك أخي @طير البحر ، سأستمتع بلمساتك والتعديلات غداً إن شاء الله 🤗 بالنسبة لهذا الطلب فهو من صلاحيات الأساتذة - لا الحصر - أذكر منهم:- @Moosak و @jjafferr و معلمنا الفاضل اعاده الله من سفره سالما غانماً @ابوخليل ... والكثيرين الذين نسعد بوجودهم معنا من إدارة المنتدى 🥰.
  21. الحقيقة اليوم إجازة فعلاً ده من جهة ، ومن جهة تانية انا دخت بعد ما قرأت مشاركتك السابقة والحقيقة ما فهمتش كتير يعني 😬 ، شكلي بعد الغدا مخي استوعب انه اليوم إجازتي 😅
  22. اخي @اشرف السيد يوسف ، ارجو منك الإهتمام بعنوان الموضوع اولاً ، ثم اذا كان هذا الطلب يتبع موضوع سابق استكماله في المشاركة الأصلية لك لتحقيق النتيجة المطلوبة التي تريدها 🤗 ولأني خارج المنزل حالياً لم أكمل معك طلبك السابق. اتمنى أن تجد الحل من أحد الإخوة والأساتذة 🥰
  23. تمام .. اذا نفس الفكرة تابع وشاركنا أفكارك وخبرتك
×
×
  • اضف...

Important Information