-
Posts
6,833 -
تاريخ الانضمام
-
Days Won
187
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو ابو جودي
-
فى انتظار ارائكم احبابى فى الله.. طرحت المضوع للشرح وللتفنيد والتطبيق جزئية جزئية وخطوة بعد خطوة .. ولكن يبدو انه لم يلقى قبول على الرغم من طرحى للموضوع بعد ان وجدت تساؤلات عديدة عن ذلك الامر
- 30 replies
-
- 1
-
- permissions
- user permissions
- (و8 أكثر)
-
انظر الى هذا الموضوع
-
ARROWS SYMBOLS هل هناك كود ليظهر هذا الشكل فى المربع
ابو جودي replied to DR WALID SALAH's topic in قسم الأكسيس Access
لا شكر على واجب والحمد لله وسعيد جدا لك من اجل مشروعك القادم -
فرز التاريخ، اذا كانت البيانات في حقل نص (معدل)
ابو جودي replied to salim07's topic in قسم الأكسيس Access
ممكن مرفق -
استبدلها بـ dim dBase As DAO.Database
-
ARROWS SYMBOLS هل هناك كود ليظهر هذا الشكل فى المربع
ابو جودي replied to DR WALID SALAH's topic in قسم الأكسيس Access
طبعا يا دكتور تقدر تستبدل الكود السابق بالكود الاتى وذلك ليظهر الـ Arrow بجوار القيمة H , L فى نفس مربع النص H1 Select Case Nz(Me.txtHemoglobin, "") Case "": Me.H1 = "": Case 12 To 17: Me.H1 = "" Case Is > 17: Me.H1 = "H" & Space(2) & ChrW("8593") Case Is < 12: Me.H1 = "L" & Space(2) & ChrW("8595") End Select -
سؤال سؤال عن : Dcount بأكثر من شرط من خلال vba Code
ابو جودي replied to ابو جودي's topic in قسم الأكسيس Access
لا علاقة للامر بالمسافات وللعلم تعمدت وضع المسافات الزائدة للوقوف على نتيجة الاجراء- 20 replies
-
- سؤال فى الدوال
- سؤال عن dcount
- (و2 أكثر)
-
فرز التاريخ، اذا كانت البيانات في حقل نص (معدل)
ابو جودي replied to salim07's topic in قسم الأكسيس Access
الاجابة هنا ان شاء الله -
ARROWS SYMBOLS هل هناك كود ليظهر هذا الشكل فى المربع
ابو جودي replied to DR WALID SALAH's topic in قسم الأكسيس Access
اتفضل يا دكتور فكرتى من خلال استخدام الـ Unicode وهذا موقعالـ Unicode https://www.ssec.wisc.edu/~tomw/java/unicode.html ابحث عن .... Arrows SYMBOLS .mdb -
سؤال سؤال عن : Dcount بأكثر من شرط من خلال vba Code
ابو جودي replied to ابو جودي's topic in قسم الأكسيس Access
استاذى الجليل ومعلمى القدير و والدى الحبيب استاذ @jjafferr الكود ده انا عرفته قبل فترة من حضرتك فالأصل هذه طريقتكم استاذى .. جزاكم الله خيرا بخصوص التاريخ حقيقى اناا اول مرة اقع فى المشكلة دى وكلام جضرتك صح كالعادة طبعا ومن الان لن اترك استعمال دالة التاريخ لابد ان تكون فى اى تطبيق- 20 replies
-
- سؤال فى الدوال
- سؤال عن dcount
- (و2 أكثر)
-
اتفضل سيدى اسال الله تعالى ان تجد ضالتكم Remote External Db.mdb test2.accdb
-
سؤال سؤال عن : Dcount بأكثر من شرط من خلال vba Code
ابو جودي replied to ابو جودي's topic in قسم الأكسيس Access
السلام عليكم ورحمة الله تعالى وبركاته اعتذر لانقطاعى المفاجئ عن الرد على اساتذتى الكرام واحبائى بسبب ظرف قهرى اسأل الله تعالى لكم البركة فى العمر والعلم والرزق والأهل والأحباب وكل كلمات الشكر تقف امام مجهودكم ومشاركاتكم عاجزة شكر الله لكم واحسن اليكم- 20 replies
-
- سؤال فى الدوال
- سؤال عن dcount
- (و2 أكثر)
-
سؤال سؤال عن : Dcount بأكثر من شرط من خلال vba Code
ابو جودي replied to ابو جودي's topic in قسم الأكسيس Access
استاذى الجليل ومعلمى القدير و والدى الحبيب استاذ @jjafferr حتى مع ترك المسافة بعد كل And : لم احصل على النتيجة [FirstName] ='m' And [LastName] ='e' And [DateOfBirth] =#02/11/2021# And [SIR]= -1- 20 replies
-
- سؤال فى الدوال
- سؤال عن dcount
- (و2 أكثر)
-
السلام عليكم ورحمة الله تعالى وبركاته اساتذتى العظماء .. تحية عطرة ما الخطأ فى هذا الكود Dim myWhere As String myWhere = "[FirstName] ='" & [txtFirstName] & "'" myWhere = myWhere & " And" myWhere = myWhere & "[LastName] ='" & [txtLastName] & "'" myWhere = myWhere & " And" myWhere = myWhere & "[DateOfBirth] =#" & Format([txtDateOfBirth], "dd/mm/yyyy") & "#" myWhere = myWhere & " And" myWhere = myWhere & "[SIR]= " & [ChckSIR] Debug.Print myWhere Me.txtCount = DCount("*", "[tblTestCount]", myWhere) Test Dcout.mdb
- 20 replies
-
- سؤال فى الدوال
- سؤال عن dcount
- (و2 أكثر)
-
عن اى بيانات تتحدث كان هذا طلب حضرتك وتم تحقيقه على ما اعتقد
-
قبل ان اتكلم عن الجداول حابب اعرف راى اساذتى واخوانى واحبائى الكرام عن الاتى فلنسمى الجزء النظرى الاتى هو جزء التحليل للنظام ووضع التصور والخارطة التى سوف نكمل دربنا ان شاء الله على خطاها اولا حابب ابدأ كل اسماء الجداول والاستعلامات والنماذج والموديول ان وجدت بــ lvl حتى يكونون مميزين ومرتبين فى العمل مستقبلا على سبيل المثال جدول الـ users احب ان يكون اسمه tbllvlUsers ان اردنا عدم اخفاء الجدول على انه من جداول النظام ان اردنا اخفاء الجدول على انه من جداول النظام يكون UsystbllvlUsers وباقى الكائنات على نفس المنوال فما رأيكم على اى درب تحبون ان نسيـــــر ثانيا حقول جدول المستخدمين من وجهة نظرى سوف تكون كالاتى فهل لكم وجهة نظر أخرى فى الغاء احد الحقول او الزيادة عليها ومن جهتكم اى حقول تريدون تشفر بياناتها ؟! اسم المستخدم , كلمة المرور , الاسم الرباعى , البريد الالكترنى , الاجابات على الاسئلة هذا من وجهة نظرى هل لكم رأى اخر فى انتظار ارائكم احبابى فى الله
- 30 replies
-
- 2
-
- permissions
- user permissions
- (و8 أكثر)
-
دعوة للتجربة test2.accdb test1.accdb
-
السلام عليكم ورحمة الله تعالى وبركاته عندما نتحدث عن توسيط النماذج والتقارير لابد من الأخذ فى الاعتبار ان خاصية PopUp لها تأثير كبير فإن كانت PopUp = True لها أكواد تقوم بعمل التوسيط للنماذج والتقارير داخل الشاشة خاصة ولا تقوم بعملها ان كانت PopUp = False والعكس كذلك واحيانا ننسى ذكر هذا الأمر عند عرض الاكواد والامثلة ولذلك تعمل عند البعض ولا تعمل عند اخرين بل واحيانا اثناء التصميم ننسى هذا الامر ايضا ومن أجل ذلك بعد البحث المرير وترتيب الأفكار بفضل الله تعالى تم دمج الأكواد حتى تعمل تبعا للخاصية PopUp ايما كان اعدادها حتى وان نسى المستخدم ذلك الامر أوحتى إن كان لا يدرى عنه شئ المرفق الاتى ان شاء الله به حل المشكلة تماما طيب ما الفرق بين عمل الاكواد مع خاصية PopUp ان كانت PopUp = True يتم توسيط داخل الشاشة نفسها تبعا لابعاد شاشة العرض نفسها مهما اختلف مقاس الشاشة اما ان كان PopUp = False يتم التوسيط داخل اطار تطبيق الاكس نفسه الاكواد كالاتى اولا كلاس ولابد ان يكون اسم الكلاس clsAutoCenter وان احببتم تغيير الاسم فيجب تعديله فى الاكواد التى تخص الموديول بنفس الاسم الجديد اولا الكلاس : clsAutoCenter '|---01/11/2021__________________________________________________________________________________________| '|___www.officena.net_______________________|___________________________________________________________| '| | | '| __ _ | _ +-----------officena-----------+ _ | '| \ `/ | | /o) | ||||| | (o\ | '| \__`! | / / | @(~O^O~)@ | \ \ | '| / ,' `-.__________________ | ( (_ | _ ----oOo--Moh--oOo----- _ | _) ) | '| '-'\_____ U `-. | ((\ \) +/o)----------3ssam---------(o\+ (/ /)) | '| \____()-=O=O=O=O=O=[]====--) | (\\\ \_/ / \ \_/ ///) | '| `.___ ,-----,_______...-' | \ / \ / | '| / .' | \____/________Mohammed Essam________\____/ | '| / .' | | '| / .' | 01/11/2021 | '| `-' | | '|_____www.officena.net_____________________|___________________________________________________________| '|_____Thank you for visiting https://www.officena.net__________________________________________________' Option Compare Database Option Explicit Private Type RECT 'RECT structure used for API calls. Left As Long Top As Long Right As Long Bottom As Long End Type Private Type POINTAPI 'POINTAPI structure used for API calls. X As Long Y As Long End Type Private m_hWnd As Long 'Handle of the window. Private m_rctWindow As RECT 'Rectangle describing the sides of the last polled location of the window. Private Const m_ERR_INVALIDHWND = 1 Private Const m_ERR_NOPARENTWINDOW = 2 #If VBA7 Then Private Declare PtrSafe Function apiIsWindow Lib "user32" Alias "IsWindow" (ByVal hWnd As LongPtr) As Long Private Declare PtrSafe Function apiMoveWindow Lib "user32" Alias "MoveWindow" (ByVal hWnd As LongPtr, ByVal X As Long, ByVal Y As Long, _ ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long 'Moves and resizes a window in the coordinate system of its parent window. Private Declare PtrSafe Function apiGetWindowRect Lib "user32" Alias "GetWindowRect" (ByVal hWndPtr As Long, lpRect As RECT) As Long 'After calling, the lpRect parameter contains the RECT structure describing the sides of the window in screen coordinates. Private Declare PtrSafe Function apiScreenToClient Lib "user32" Alias "ScreenToClient" (ByVal hWnd As LongPtr, lpPoint As POINTAPI) As Long 'Converts lpPoint from screen coordinates to the coordinate system of the specified client window. Private Declare PtrSafe Function apiGetParent Lib "user32" Alias "GetParent" (ByVal hWnd As LongPtr) As Long 'Returns the handle of the parent window of the specified window. #Else Private Declare Function apiIsWindow Lib "user32" Alias "IsWindow" (ByVal hWnd As Long) As Long Private Declare Function apiMoveWindow Lib "user32" Alias "MoveWindow" (ByVal hWnd As Long, ByVal X As Long, ByVal Y As Long, _ ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long 'Moves and resizes a window in the coordinate system of its parent window. Private Declare Function apiGetWindowRect Lib "user32" Alias "GetWindowRect" (ByVal hWnd As Long, lpRect As RECT) As Long 'After calling, the lpRect parameter contains the RECT structure describing the sides of the window in screen coordinates. Private Declare Function apiScreenToClient Lib "user32" Alias "ScreenToClient" (ByVal hWnd As Long, lpPoint As POINTAPI) As Long 'Converts lpPoint from screen coordinates to the coordinate system of the specified client window. Private Declare Function apiGetParent Lib "user32" Alias "GetParent" (ByVal hWnd As Long) As Long 'Returns the handle of the parent window of the specified window. #End If Private Sub RaiseError(ByVal lngErrNumber As Long, ByVal strErrDesc As String) 'Raises a user-defined error to the calling procedure. Err.Raise vbObjectError + lngErrNumber, "clFormWindow", strErrDesc End Sub Private Sub UpdateWindowRect() 'Places the current window rectangle position (in pixels, in coordinate system of parent window) in m_rctWindow. Dim ptCorner As POINTAPI If m_hWnd = 0 Or apiIsWindow(m_hWnd) Then apiGetWindowRect m_hWnd, m_rctWindow 'm_rctWindow now holds window coordinates in screen coordinates. If Not Me.Parent Is Nothing Then 'If there is a parent window, convert top, left of window from screen coordinates to parent window coordinates. With ptCorner .X = m_rctWindow.Left .Y = m_rctWindow.Top End With apiScreenToClient Me.Parent.hWnd, ptCorner With m_rctWindow .Left = ptCorner.X .Top = ptCorner.Y End With 'If there is a parent window, convert bottom, right of window from screen coordinates to parent window coordinates. With ptCorner .X = m_rctWindow.Right .Y = m_rctWindow.Bottom End With apiScreenToClient Me.Parent.hWnd, ptCorner With m_rctWindow .Right = ptCorner.X .Bottom = ptCorner.Y End With End If Else RaiseError m_ERR_INVALIDHWND, "The window handle " & m_hWnd & " is no longer valid." End If End Sub Public Property Get hWnd() As Long 'Returns the value the user has specified for the window's handle. If m_hWnd = 0 Or apiIsWindow(m_hWnd) Then hWnd = m_hWnd Else RaiseError m_ERR_INVALIDHWND, "The window handle " & m_hWnd & " is no longer valid." End If End Property Public Property Let hWnd(ByVal lngNewValue As Long) 'Sets the window to use by specifying its handle. 'Only accepts valid window handles. If lngNewValue = 0 Or apiIsWindow(lngNewValue) Then m_hWnd = lngNewValue Else RaiseError m_ERR_INVALIDHWND, "The value passed to the hWnd property is not a valid window handle." End If End Property Public Property Get Left() As Long 'Returns the current position (in pixels) of the left edge of the window in the coordinate system of its parent window. If m_hWnd = 0 Or apiIsWindow(m_hWnd) Then UpdateWindowRect Left = m_rctWindow.Left Else RaiseError m_ERR_INVALIDHWND, "The window handle " & m_hWnd & " is no longer valid." End If End Property Public Property Let Left(ByVal lngNewValue As Long) 'Moves the window such that its left edge falls at the position indicated '(measured in pixels, in the coordinate system of its parent window). If m_hWnd = 0 Or apiIsWindow(m_hWnd) Then UpdateWindowRect With m_rctWindow apiMoveWindow m_hWnd, lngNewValue, .Top, .Right - .Left, .Bottom - .Top, True End With Else RaiseError m_ERR_INVALIDHWND, "The window handle " & m_hWnd & " is no longer valid." End If End Property '---------------------------------------------------- Public Property Get Top() As Long 'Returns the current position (in pixels) of the top edge of the window in the coordinate system of its parent window. If m_hWnd = 0 Or apiIsWindow(m_hWnd) Then UpdateWindowRect Top = m_rctWindow.Top Else RaiseError m_ERR_INVALIDHWND, "The window handle " & m_hWnd & " is no longer valid." End If End Property Public Property Let Top(ByVal lngNewValue As Long) 'Moves the window such that its top edge falls at the position indicated '(measured in pixels, in the coordinate system of its parent window). If m_hWnd = 0 Or apiIsWindow(m_hWnd) Then UpdateWindowRect With m_rctWindow apiMoveWindow m_hWnd, .Left, lngNewValue, .Right - .Left, .Bottom - .Top, True End With Else RaiseError m_ERR_INVALIDHWND, "The window handle " & m_hWnd & " is no longer valid." End If End Property '---------------------------------------------------- Public Property Get Width() As Long 'Returns the current width (in pixels) of the window. If m_hWnd = 0 Or apiIsWindow(m_hWnd) Then UpdateWindowRect With m_rctWindow Width = .Right - .Left End With Else RaiseError m_ERR_INVALIDHWND, "The window handle " & m_hWnd & " is no longer valid." End If End Property Public Property Let Width(ByVal lngNewValue As Long) 'Changes the width of the window to the value provided (in pixels). If m_hWnd = 0 Or apiIsWindow(m_hWnd) Then UpdateWindowRect With m_rctWindow apiMoveWindow m_hWnd, .Left, .Top, lngNewValue, .Bottom - .Top, True End With Else RaiseError m_ERR_INVALIDHWND, "The window handle " & m_hWnd & " is no longer valid." End If End Property '---------------------------------------------------- Public Property Get Height() As Long 'Returns the current height (in pixels) of the window. If m_hWnd = 0 Or apiIsWindow(m_hWnd) Then UpdateWindowRect With m_rctWindow Height = .Bottom - .Top End With Else RaiseError m_ERR_INVALIDHWND, "The window handle " & m_hWnd & " is no longer valid." End If End Property Public Property Let Height(ByVal lngNewValue As Long) 'Changes the height of the window to the value provided (in pixels). If m_hWnd = 0 Or apiIsWindow(m_hWnd) Then UpdateWindowRect With m_rctWindow apiMoveWindow m_hWnd, .Left, .Top, .Right - .Left, lngNewValue, True End With Else RaiseError m_ERR_INVALIDHWND, "The window handle " & m_hWnd & " is no longer valid." End If End Property Public Property Get Parent() As clsAutoCenter 'Returns the parent window as a clFormWindow object. 'For forms, this should be the Access MDI window. Dim fwParent As New clsAutoCenter Dim lngHWnd As Long If m_hWnd = 0 Then Set Parent = Nothing ElseIf apiIsWindow(m_hWnd) Then lngHWnd = apiGetParent(m_hWnd) fwParent.hWnd = lngHWnd Set Parent = fwParent Else RaiseError m_ERR_INVALIDHWND, "The window handle " & m_hWnd & " is no longer valid." End If Set fwParent = Nothing End Property ثانيا الموديول ولن يفرق اسم الموديول فى شئ '|---01/11/2021__________________________________________________________________________________________| '|___www.officena.net_______________________|___________________________________________________________| '| | | '| __ _ | _ +-----------officena-----------+ _ | '| \ `/ | | /o) | ||||| | (o\ | '| \__`! | / / | @(~O^O~)@ | \ \ | '| / ,' `-.__________________ | ( (_ | _ ----oOo--Moh--oOo----- _ | _) ) | '| '-'\_____ U `-. | ((\ \) +/o)----------3ssam---------(o\+ (/ /)) | '| \____()-=O=O=O=O=O=[]====--) | (\\\ \_/ / \ \_/ ///) | '| `.___ ,-----,_______...-' | \ / \ / | '| / .' | \____/________Mohammed Essam________\____/ | '| / .' | | '| / .' | 01/11/2021 | '| `-' | | '|_____www.officena.net_____________________|___________________________________________________________| '|_____Thank you for visiting https://www.officena.net__________________________________________________' Option Compare Database Option Explicit Private Type RECT X1 As Long Y1 As Long X2 As Long Y2 As Long End Type #If VBA7 Then Private Declare PtrSafe Function GetDesktopWindow Lib "user32" () As LongPtr Private Declare PtrSafe Function GetWindowRect Lib "user32" (ByVal hWnd As LongPtr, lpRect As RECT) As Long Private Declare PtrSafe Function GetDC Lib "user32" (ByVal hWnd As LongPtr) As LongPtr Private Declare PtrSafe Function ReleaseDC Lib "user32" (ByVal hWnd As LongPtr, ByVal hDC As LongPtr) As Long Private Declare PtrSafe Function GetDeviceCaps Lib "gdi32" (ByVal hDC As LongPtr, ByVal nIndex As Long) As Long #Else Private Declare Function GetDesktopWindow Lib "user32" () As Long Private Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, Rectangle As RECT) As Boolean Private Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long Private Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, ByVal hDC As Long) As Long Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hDC As Long, ByVal nIndex As Long) As Long #End If Private Const WU_LOGPIXELSX = 88 Private Const WU_LOGPIXELSY = 90 ' Call CenterForm(Me) ' Call CenterReport(Me) Sub CenterForm(F As Form) If F.PopUp = False Then Dim fw As New clsAutoCenter fw.hWnd = F.hWnd With fw .Top = (.Parent.Height - .Height) / 2 .Left = (.Parent.Width - .Width) / 2 End With Set fw = Nothing ElseIf F.PopUp = True Then Dim formWidth As Long, formHeight As Long Dim MaxWidth As Long, maxHeight As Long Dim ScreenWidth As Long, ScreenHeight As Long Dim formAllMarginsHeight As Long, formAllMarginsWidth As Long GetScreenResolution ScreenWidth, ScreenHeight ScreenWidth = ConvertPixelsToTwips(ScreenWidth, 0) ScreenHeight = ConvertPixelsToTwips(ScreenHeight, 0) MaxWidth = ScreenWidth * 0.6 maxHeight = ScreenHeight * 0.9 formAllMarginsHeight = F.WindowHeight - F.Section(acDetail).Height formAllMarginsWidth = F.Width formWidth = formAllMarginsWidth formHeight = formAllMarginsHeight If formHeight < F.WindowHeight Then formHeight = F.WindowHeight End If DoCmd.MoveSize (ScreenWidth - formWidth) / 2, (ScreenHeight - formHeight) / 2, formWidth, formHeight End If End Sub Sub CenterReport(R As Report) If R.PopUp = False Then Dim fw As New clsAutoCenter fw.hWnd = R.hWnd With fw .Top = (.Parent.Height - .Height) / 2 .Left = (.Parent.Width - .Width) / 2 End With Set fw = Nothing ElseIf R.PopUp = True Then Dim ReportWidth As Long, ReportHeight As Long Dim MaxWidth As Long, maxHeight As Long Dim ScreenWidth As Long, ScreenHeight As Long Dim ReportAllMarginsHeight As Long, ReportAllMarginsWidth As Long GetScreenResolution ScreenWidth, ScreenHeight ScreenWidth = ConvertPixelsToTwips(ScreenWidth, 0) ScreenHeight = ConvertPixelsToTwips(ScreenHeight, 0) MaxWidth = ScreenWidth * 0.6 maxHeight = ScreenHeight * 0.9 ReportAllMarginsHeight = R.WindowHeight - R.Section(acDetail).Height ReportAllMarginsWidth = R.Width ReportWidth = ReportAllMarginsWidth ReportHeight = ReportAllMarginsHeight If ReportHeight < R.WindowHeight Then ReportHeight = R.WindowHeight End If DoCmd.MoveSize (ScreenWidth - ReportWidth) / 2, (ScreenHeight - ReportHeight) / 2, ReportWidth, ReportHeight End If End Sub Function ConvertTwipsToPixels(lngTwips As Long, lngDirection As Long) As Long Dim lngPixelsPerInch As Long Const nTwipsPerInch = 1440 #If VBA7 Then Dim lngDC As LongPtr #Else Dim lngDC As Long #End If lngDC = GetDC(0) If (lngDirection = 0) Then lngPixelsPerInch = GetDeviceCaps(lngDC, WU_LOGPIXELSX) Else lngPixelsPerInch = GetDeviceCaps(lngDC, WU_LOGPIXELSY) End If lngDC = ReleaseDC(0, lngDC) ConvertTwipsToPixels = (lngTwips / nTwipsPerInch) * lngPixelsPerInch End Function Function ConvertPixelsToTwips(lngPixels As Long, lngDirection As Long) As Long Dim lngPixelsPerInch As Long Const nTwipsPerInch = 1440 #If VBA7 Then Dim lngDC As LongPtr #Else Dim lngDC As Long #End If lngDC = GetDC(0) If (lngDirection = 0) Then lngPixelsPerInch = GetDeviceCaps(lngDC, WU_LOGPIXELSX) Else lngPixelsPerInch = GetDeviceCaps(lngDC, WU_LOGPIXELSY) End If lngDC = ReleaseDC(0, lngDC) ConvertPixelsToTwips = (lngPixels * nTwipsPerInch) / lngPixelsPerInch End Function Private Sub GetScreenResolution(ByRef Width As Long, ByRef Height As Long) Dim R As RECT Dim RetVal As Long #If VBA7 Then Dim hWnd As LongPtr #Else Dim hWnd As Long #End If hWnd = GetDesktopWindow() RetVal = GetWindowRect(hWnd, R) Width = R.X2 - R.X1 Height = R.Y2 - R.Y1 End Sub ويتم استدعاء كود توسيط النماذج من خلال السطر الاتى فى حدث عند الفتح Call CenterForm(Me) ويتم استدعاء كود توسيط التقارير من خلال السطر الاتى فى حدث عند الفتح Call CenterReport(Me) فى حالة كانت PopUp = True يتم توسيط النماذج والتقارير فى وسط شاشة الحاسب الالى تمام تبعا لابعاد الشاشة اما فى حالة PopUp = False يتم توسيط النماذج والتقارير فى داخل اطار برنامج الاكسس نفسه والان اليكم المرفق بالمثال العملى AutoCentre.mdb
- 16 replies
-
- 15
-
بداية دعونا نتفق طالما فكرنا فى الموضوع ده ووصلنا له اذن نريد اضافة حماية لتطبيقاتنا طالما سوف نتحدث عن الحماية فلسوف يتم ان شاء الله العمل على افكار تطبيق ذلك خطوة بعد خطوة تدريجيا للارتقاء بالتوازى برفع مستوى الحماية مع الانتهاء من التطبيق مشروحا خطوة بعد خطوة تفصيليا 1- كل اسماء الجداول والنماذج والاستعلامات والموديول التى تخص المستخدمين ونظام الحماية سوف تبدأ بالمقطع Usys حتى يتعامل معها االاكسس على انها من كائنات النظام فيخفيها اليا عن المستخدم العادى 2- تشفير / فك تشفير البيانات التى تخص تطبيق نظام الصلاحيات وبما اننا سوف نبدأ بتلك الجزئية يستوجب تقديم الشكـر والامتنان لاستاذى الجليل ومعلمى القدير الدكتور @SEMO.Pa3x لاننى ان شاء الله سوف استخدم نظام التشفير الذى تقدم به استاذى الجليل اولا ـــــــــ الروتين المستخدم فى تشفير الكلمات والذى يتم وضعه فى موديول Function Encoder(ByVal strWordDecrypt As String) As String Dim iIndex As Integer Dim iEncoder As Integer Dim iEncodedVal As Integer Randomize Encoder = "" For iIndex = 1 To Len(strWordDecrypt) Do iEncoder = Int(98 * Rnd + 89) iEncodedVal = Asc(Mid(strWordDecrypt, iIndex, 1)) Xor iEncoder Loop While iEncodedVal = 1000 Or iEncodedVal < 99 Encoder = Encoder & Chr(iEncodedVal) & Chr(iEncoder) Next iIndex End Function ويتم استدعاءه كلاتى Encoder(text) حيث ان text هو النص المراد تشفيره أو انه اسم الحقل ( تيكست بوكس , كمبو بوكس ..) المراد تشفير القيم الموجوده بهم ------------------- العملية العكسية وهى فك تشفير الكلمات واعادتها الى وضعها الطبيعى الروتين المستخدم فى فك تشفير الكلمات والذى يتم وضعه فى موديول Function Decodeder(ByVal strWordEncrypt As String) As String Dim iIndex As Integer Dim iDecodedVal As Integer Decodeder = "" For iIndex = 1 To Len(strWordEncrypt) Step 2 iDecodedVal = Asc(Mid(strWordEncrypt, iIndex, 1)) Xor Asc(Mid(strWordEncrypt, iIndex + 1, 1)) Decodeder = Decodeder & Chr(iDecodedVal) Next iIndex End Function ويتم استدعاءه كلاتى Decodeder(EncoderText) حيث ان EncoderText هو النص المشفر المراد فك تشفيره أو انه اسم الحقل ( تيكست بوكس , كمبو بوكس ..) المراد فك تشفير القيم الموجوده بهم واخيرا المرفق Encrypt&Decrypt.mdb
- 30 replies
-
- 6
-
- permissions
- user permissions
- (و8 أكثر)
-
منع المستخدم من الوصول إلى جداول قاعدة البيانات
ابو جودي replied to capitala's topic in قسم الأكسيس Access
فيك الخيـــــــر استاذى الجليل واخى الحبيب استاذ @ناقل والله بحثت عنه وما قدرت احصل الموضوع وكنت ناوى اعيد الشغل من تانى بس اليوم كنت مشغول بشئ كنت حابب انتهى منه اللأول الله يرضى عليك .. جزاكم الله خيـــرا -
إشكال في كود عند فتح نموذج إضافة مستخدم جديد
ابو جودي replied to السبيل1's topic in قسم الأكسيس Access
اولا تحت امرك ان شاء الله فى اى وقت ثانيا وضعت لك رابط الموضوع لانه يحتوى على كل الافكار التى تريدها ان شاء الله 1- تشفير البيانات باسلوب ابسط على طريقة استاذى الجليل الدكتور @SEMO.Pa3x جزاه الله خيرا 2- فكرتى المتواضعة تحويل الصلاحيات لتخص مجموعة مستخدمين وليس فرد واحد 3- امكانية تسجيل اى مستخدم لبيانات الدخول التى يريدها وتنتظر التفعيل من الادمن 4- بعد موافقة الادمن على تفعيل المستخدمين وادراجة صمن مجموعة الصلاحيات التى يريد المستخدم يستطيع المستخدم الولوج ببياناته ده اللى انا فاكرة ولانى فى عجالة من امرى الان وضعت لكم الموضوع قد تجدون فيه زيادة عما تريدون او نقصان ولكن بعد اطلاعكم عليه ان شاء وفى وقت لاحق بامر الله اقوم بالتعديل على ما تريدون -
إشكال في كود عند فتح نموذج إضافة مستخدم جديد
ابو جودي replied to السبيل1's topic in قسم الأكسيس Access
طيب انظر الموضوع الاتى هذه فكرتى المتواضعة -
بعد اذن استاذى العزيز الاستاذ @ناقل اولا الية التشفير واحدة فى كلا الحالتين ولم تتغير ولو يتم التغير على اى شئ فى الاكواد ثانيا الاستاذ ناقل جزاه الله خيرا وضع الاتى 1- شرط التاكد من عدم وجود مستخدمين مسجلين بالجدول 2- عند تنفيذ وتحقيق الشرط بعدم وجود اى مستخدمين تشغيل استعلام الحاق ببيانات المستخدم الادمن والحاق رقم المستخدم واسماء النماذج التى تخص الصلاحيات 3- عند الانتهاء من الشرط وتحقيقه ان لم يكن هناك اى مستخدم تجد المستخدم الجديد تم انشاءه لذلك تستطيع الولوج ببيانات المستخدم
-
منع المستخدم من الوصول إلى جداول قاعدة البيانات
ابو جودي replied to capitala's topic in قسم الأكسيس Access
طريقتى فى الحماية كالاتى 1 - فصل قاعدة بيانات الى قاعدة خلفية للجداول فقط 2- قاهدة امامية للنماذج والاستعلامات والتقارير 3- تشفير القاعدتين بكلمتان مرور احداهما لمحرر الاكواد والاخرى للقاعدة نفسها 4- عمل قاعدة بيانات ثالثة وسيطة ويتم عمل كود بها يقول بفتح القاعدة الامامية الخاصة بالنماذج والذى سوف تكون وظيفة تلك القااعدة تمرير كلمة المرور لها 5- تشفير القاعدة الوسيطه بتحويلها الى accdb او mde حسب تنسيق قاعدة البيانات بذلك المستخدم سوف لن يكون قادرا على تخطى هذه الحماية