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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    406

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

  1. السلام عليكم 🙂 الاكسس تلقائيا يحسب عدد الايام الصحيحة ، حسب عدد ايام الشهر ، وحسب كون السنة كبيسة او عادية ، فاليك الدالة التي استعملها (وهي موجودة في المنتدى، ولكن عملت عليها تغيير بسيط حتى تستطيع عرض الارقام مستقلة) : Public Function YMDDif4(sDate1 As Date, sDate2 As Date) On Error GoTo err_YMDDif4 'sDate1 earliest date 'sDate2 later date Dim d As Integer, m As Integer, y As Integer Dim iYear As Integer Dim iMonth As Integer Dim iDay As Integer Dim dInterim1 As Date iMonth = DateDiff("m", sDate1, sDate2) If Day(sDate1) > Day(sDate2) Then iMonth = iMonth - 1 End If dInterim1 = DateAdd("m", iMonth, sDate1) iDay = DateDiff("d", dInterim1, sDate2) d = iDay m = iMonth Mod 12 y = iMonth \ 12 'YMDDif2 = CStr(Y) & " Years " & CStr(M) & " months " & CStr(D) & " days" 'YMDDif4 = CStr(y) & " س/" & CStr(m) & " ش/" & CStr(d) & " ي" YMDDif4 = CStr(y) & "|" & CStr(m) & "|" & CStr(d) Exit Function err_YMDDif4: If Err.Number = 94 Then 'ignor, null Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Function . واذا عندك بيانات في الجدول ، تناديها من النموذج على حدث الحالي: Dim myPeriod As String myPeriod = YMDDif4(Me.date1, Me.date2) Me.Y = Split(myPeriod, "|")(0) Me.M = Split(myPeriod, "|")(1) Me.D = Split(myPeriod, "|")(2) . بس في حالتك ، وبسبب النموذج غير مضمن ، فتناديها على حدث "بعد تحديث" التاريخ الثاني 🙂 جعفر مدة عمل الموظف.zip
  2. وعليكم السلام 🙂 هذا الكود يفتح المجلد D:\Guests_Pics بملئ الشاشة vbMaximizedFocus ، ويجعل التركيز على صورة رقم الضيف (مثلا 123.jpg ) ، وبدون ان يفتح الصورة Shell "C:\Windows\explorer.exe /select,D:\Guests_Pics\" & Me.Guest_ID & ".jpg", vbMaximizedFocus هذا الكود يفتح المجلد D:\Guests_Pics application.followhyperlink "D:\Guests_Pics" جعفر
  3. الله يسلمكم ويعافيكم جميعا ان شاء الله 🙂 وشكرا لك اخي محمد على جميل كلماتك 🙂 جعفر
  4. رجاء مراجعة الصورة في هذا الرابط ، والتأكد من جميع النقاط فيها : .
  5. من النصائح الذهبية في الاكسس: لا تبدأ اسم الكائن برقم ، وإلا ستحصل على اخطاء لا محل لها من الاعراب 😁 اجعل اسماء جداولك تبدأ بحرف 🙂 جعفر
  6. الله يسلمكم ويعافيكم ان شاء الله 🙂 جعفر
  7. وعليكم السلام 🙂 هذا الموضوع فيه ما لذ وطاب من عمل قاعدة بيانات ، الى عمل الحقول ، وعمل نماذج وبها ازرار ، وعمل كود لكل زر ، وووو . وهنا افرد لك الجزئية التي تريدها: 'DoCmd.RunSQL "CREATE TABLE [" & s & "] (ID AUTOINCREMENT primary key, ID_Shamela integer, Tno integer, Nass Memo, part integer, Page integer,Hno integer,Rm_Hno integer, Mno text (50),Mult_mno yesno,NO_hno yesno)" Dim dbsNew As DAO.Database Dim pr As DAO.Property Set dbsNew = CurrentDb 'OpenDatabase(Me.txt2) DoCmd.RunSQL "CREATE TABLE [" & s & "] " & _ " (ID AUTOINCREMENT primary key, " & _ "ID_Shamela integer, " & _ "Tno integer, " & _ "Nass Memo, " & _ "part integer, " & _ "Page integer, " & _ "Hno integer, " & _ "Rm_Hno integer, " & _ "Mno text (50), " & _ "Mult_mno yesno, " & _ "NO_hno yesno) " 'Mult_mno dbsNew.TableDefs(s).Fields("Mult_mno").DefaultValue = 0 Set pr = dbsNew.TableDefs(s).Fields("Mult_mno").CreateProperty("Format", dbText, "True/False", True) dbsNew.TableDefs(s).Fields("Mult_mno").Properties.Append pr 'make the Check Box look Set pr = dbsNew.TableDefs(s).Fields("Mult_mno").CreateProperty("DisplayControl", dbInteger, acCheckBox) dbsNew.TableDefs(s).Fields("Mult_mno").Properties.Append pr dbsNew.TableDefs(s).Fields("Mult_mno").Properties("DisplayControl") = acCheckBox 'NO_hno dbsNew.TableDefs(s).Fields("NO_hno").DefaultValue = 0 Set pr = dbsNew.TableDefs(s).Fields("NO_hno").CreateProperty("Format", dbText, "True/False", True) dbsNew.TableDefs(s).Fields("NO_hno").Properties.Append pr 'make the Check Box look Set pr = dbsNew.TableDefs(s).Fields("NO_hno").CreateProperty("DisplayControl", dbInteger, acCheckBox) dbsNew.TableDefs(s).Fields("NO_hno").Properties.Append pr dbsNew.TableDefs(s).Fields("NO_hno").Properties("DisplayControl") = acCheckBox جعفر YesNo.zip
  8. الله يسلمك ويعافيك ان شاء الله 🙂 وان شاء الله انتظروا مني بعض المواضيع "اللي ما متعودين عليها" 😁 جعفر
  9. شكرا لك اخوي خالد ، فالافضل هو استعمال الاستعلام او النموذج او التقرير بدلا من الحقل ، لصعوبة/انعدام التحكم بحقل الجدول برمجيا !! جعفر
  10. وعليكم السلام ورحمة الله وبركاته 🙂 اخوي ابو جودي ، ابوالحسن ، ابوخليل ، وكل من مر على هذا الموضوع ، شكرا على سؤالكم ، والحمدلله عدت من السفرة/المهمة 🙂 جعفر
  11. وعليكم السلام 🙂 لا توجد مشكلة ، فمثالي اعلاه يحتوي على كلمات عربية ايضا ، اعمل مثالك ، واحفظ البرنامج ، ثم افتح برنامج الآخر واستورد منه هذه القائمة ، وستكون باللغة العربية 🙂 وحتى اذا اردت استعماله نفس قاعدة البيانات ، فترى من الملاحظة في الكود بأنه سيحذف القائمة السابقة والتي هي بنفس الاسم، ويستبدلها بالقائمة الجديدة : جعفر
  12. هناك مرفق في آخر مشاركة لي اعلاه: جعفر
  13. انا ما قلت هذا الشيء ، ومن معارضي تغيير اعدادات الوندوز حقي ، او اضافة شيء في الريجستري ، انا قلت . . كل موضوع له خصوصيته لعمل شيء معين ، لهذا السبب يمكنك اخذ ولو جزء منه حتى يفيدك ، ولكن ، وهذه الطريقة اللي اعمل عليها انا: شبه مستحيل ان اكون انا اول شخص في العالم يريد عمل هذا العمل ، لذا ، اول شيء اعمله هو البحث عن الطرق اللي استعملها الآخرين ، وآخذ منها حاجتي ، سواء العمل كله او كود معين ، ثم اعدل عليه ليلائم طلبي. وعلى حسب سؤال الموضوع ، فاعتقد بأنك حصلت على الاجابة المطلوبة ، اما قولك : فيجب ان تشرحه وبتفصيل ، وبصور ، وتخبرنا طلبك ، ولكن في موضوع جديد 🙂 جعفر
  14. 1. يمكنك تغيير نوع اطار النموذج من اعدادات النموذج ، فلن يستطيع المستخدم تغيير حجم او مكان النموذج ، 2. كذلك من اعدادات النموذج ، اختار "نعم" ، حتى يفتح لك النموذج في منتصف شاشة الاكسس ، . 3. لأني انا طلبت منه يفتح البرنامج من مسافة صفر من يسار شاشة الوندوز ، وترك مسافة صفر من اعلى شاشة الوندوز ، مع ملاحظة ان حساب المسافة بقياس Twips (سنتيمتر 1 = 567 تويب ، وبوصة واحدة = 1440 تويب) 4. الرابط التالي فيه الكود المطلوب لمعرفة حجم شاشة الوندوز : . او بإختصار تنادي هذه الدالة: Declare ptrsafe Function GetSystemMetrics32 Lib "User32" _ Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long Sub ScreenRes() Dim w As Long, h As Long w = GetSystemMetrics32(0) ' width in points h = GetSystemMetrics32(1) ' height in points End Sub . ** رجاء الملاحظة: شاشة الوندوز : هي الشاشة اللي لما تفتح الكمبيوتر وترى سطح المكتب : Screen/Display Resolution شاشة الاكسس : لما تفتح برنامج الاكسس ، المربع الاحمر هو شاشة الاكسس ، سواء اللي تشوفه في الصورة ، او لما تفتحه بدون اشرطة الاوامر العلوية ، وشريط بدون قائمة الكائنات من جداول و استعلامات وو ويعبئ حجم شاشة الوندوز . وبهذه الدالة تستطيع معرفة حجم شاشة الاكسس: 'https://www.tek-tips.com/viewthread.cfm?qid=1475779 Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Public Declare Function GetWindowRect Lib "user32" Alias "GetWindowRect" (ByVal hwnd As Long, lpRect As RECT) As Long Public Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Public Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, _ ByVal hdc As Long) As Long Public Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, _ ByVal nIndex As Long) As Long Public Const WU_LOGPIXELSX = 88 Public Const WU_LOGPIXELSY = 90 Public Function TwipsPerPixel(strDirection As String) As Long 'Handle to device Dim lngDC As Long Dim lngPixelsPerInch As Long Const nTwipsPerInch = 1440 lngDC = GetDC(0) If (Left$(strDirection, 1) = "X") Then 'Horizontal lngPixelsPerInch = GetDeviceCaps(lngDC, WU_LOGPIXELSX) Else 'Vertical lngPixelsPerInch = GetDeviceCaps(lngDC, WU_LOGPIXELSY) End If lngDC = ReleaseDC(0, lngDC) TwipsPerPixel = nTwipsPerInch / lngPixelsPerInch End Function Public Sub WindowSize(ByRef Height As Long, ByRef Width As Long) Dim hwnd As Long Dim rct As RECT hwnd = FindWindow(vbNullString, "Microsoft Access") If hwnd <> 0 And GetWindowRect(hwnd, rct) <> 0 Then Height = (rct.Bottom - rct.Top) * TwipsPerPixel("Y") Width = (rct.Right - rct.Left) * TwipsPerPixel("X") End If End Sub جعفر
  15. نعم ممكن ، كل شغل الحجم موجود في حدث "عند فتح النموذج" ، فإحذف DoCmd.Maximize اما اذا كنت تريد ترتب النماذج داخل شاشة الاكسس ، فيمكنك استعمال الامر docmd.MoveSize(Right, Down, Width, Height) جعفر
  16. وعليكم السلام 🙂 في الرابط برنامج ما استغنى عنه ، عدة مرات في اليوم ، ولما تشغله تحصل على جواب سؤالك جعفر
  17. شكرا على المعلومة 🙂 يا ريت تعطينا الخطوات ، علشان نستفيد 🙂 جعفر
  18. نعم ستعمل ، وبدون تعديل ، اما كيف تقسم قاعدة البيانات ، فالمنتدى مليئ بمثل هذا الموضوع ، واليك بعض الامثلة: https://www.officena.net/ib/topic/56791-استخدم-ملف-اكسس-من-اكثر-مستخدم-بنفس-الوقت/ https://www.officena.net/ib/topic/82076-طريقة-وضع-كلمة-المرور-بعد-تقسيم-قاعدة-البيانات/ https://www.officena.net/ib/topic/74664-تقسيم-قاعدة-البيانات-وتحويلها-الى-برنامج-تنفيذي/ https://www.officena.net/ib/topic/104953-سؤوال-مهم-في-خاصية-تقسيم-قاعدة-البيانات
  19. وعليكم السلام 🙂 او افتح النموذج بهذا الامر: docmd.OpenForm "اسم النموذج",,,,acFormAdd جعفر
  20. اذن الاستعلام هو افضل حل لك
  21. تقدر تحذف الحقل NameID من الجدول ، وتستخدم الحقل الجديد اللي عملته ، فالحقل الجديد لا يعتمد على الحقل NameID
  22. يا رجال 🙂 الميزة في المنتدى انك تشوف اسئله ما تجي على البال ، والميدان يا حميدان في حل هذه الاسئلة 🙂
  23. بالضبط لهذا السبب يجب ان لا نستعمله في الجدول 🙂
  24. مثل تفضلت ، بس بزاوية مختلفة 🙂 . جعفر
×
×
  • اضف...

Important Information