-
Posts
9903 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
404
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
منع المستخدم من الوصول الى بيانات الجداول و العلاقات بينها ؟
jjafferr replied to ابو عبدلله's topic in قسم الأكسيس Access
السلام عليكم ابو عبدالله حسب علمي ، لا توجد طريقة لعمل مثل اللي يصير عندك ، وحسب ما قرأت في الانترنت ، لا توجد طريقة لعمل مثل اللي يصير عندك ، إلا اذا لم تكن تملك الصلاحية للقيام به (مثل فتح الجدول او فتحه في التصميم) ، واما الصلاحية فليست من البرنامج ، وانما من ملف امان المجموعة MDW ، ففي هذا الملف نعطي صلاحيات المستخدمين ، لكل كائنات البرنامج ، واذا تم عمل برنامج ، وعمل معه هذه الصلاحيات ، فيجب ان يكون ملف الصلاحيات موجود في نفس الكمبيوتر الذي فيه البرنامج ، ونشير الى هذا الملف في مختصر البرنامج (من على سطح المكتب مثلا) ، واما اذا فتحت البرنامج مباشرة وبدون الاشارة الى هذا الملف ، فلن تكون عندك الصلاحية ، ويصير عندك كما هو الحال الآن ، ولا تستطيع تغيير هذه الصلاحيات ، إلا اذا حصلت على الملف الاصل للصلاحيات!! وهذا ينطبق على برامج الاكسس بصيغة mdb و mde ، ولا ينطبق على صيغة accdb و اخواته. جعفر -
اضفت وحدة نمطية تقوم بهذا العمل جعفر
-
انا عملت تعديل على المرفق الاصلي ، ولا يمكن استعمال x للخروج من البرنامج الان فرجاء انزال المرفق مرة اخرى جعفر
-
ولكن هذا العنصر ليس للنموذج ، وانما هو للبرنامج
-
الحمدلله
-
اخفاء السجل بالتقرير بشرط اذا القيمه بالحقل صفر
jjafferr replied to النجاشي's topic in قسم الأكسيس Access
ومشاركة معي اخي الوزير يمكنك استعمال الكود التالي في التقرير ، في حدث تنسيق جزء التفصيل Private Sub تفصيل_Format(Cancel As Integer, FormatCount As Integer) If Me.Alkmiah_mtob = 0 Then Me.Section(acDetail).Visible = False Else Me.Section(acDetail).Visible = True End If End Sub . ولكي ترى النتائج الصحيحة ، يجب ان يكون التقرير في وضع معاينة الطباعة Print Preview جعفر 955.اخفاء القيمه بالتقرير بشرط.accdb.zip -
بغض النظر عن استعمال اي كود ، واشوفك استعملت If Not (left(tdf.NAME, 4)) = "MSys" And tdf.NAME <> "User" Then اي استخدمت الفكرة نفسها اللي اخبرتك عنها ، فهل تم عمل اللازم بإستخدام كودك المعدل ؟
-
منع المستخدم من الوصول الى بيانات الجداول و العلاقات بينها ؟
jjafferr replied to ابو عبدلله's topic in قسم الأكسيس Access
جرب هذه الطريقة لفتح البرنامج: افتح الاكسس (مو قاعدة بياناتك ، وإنما برنامج الاكسس) ، ثم اختار قاعدة بياناتك ، واختار Open Exclusive . ثم جرب قراءة الجدول. جعفر -
منع المستخدم من الوصول الى بيانات الجداول و العلاقات بينها ؟
jjafferr replied to ابو عبدلله's topic in قسم الأكسيس Access
كيف تفتح البرنامج؟ من على سطح المكتب عند النقر على مختصر البرنامج؟ -
منع المستخدم من الوصول الى بيانات الجداول و العلاقات بينها ؟
jjafferr replied to ابو عبدلله's topic in قسم الأكسيس Access
انا ضعت الآن وما اعرف شو طلبك انت طلبت: والآن تقول سؤال: كيف تستعمل هذا البرنامج ، هل هو بصيغة mdb او mde ، وعند الدخول في البرنامج هل تُدخل اسمك وكلمة السر ، وهل تستعمل ملف المجموعات MDW ؟ جعفر -
يجب ان يكون عندك في كل نموذج زر خروج
-
اخوي ابو ياسين 1. قلت لك لا تستعمل If Left(obj.Name, 4) <> "MSys" or obj.name <> "tbl_one" Then وانما استعمل If Left(obj.Name, 4) <> "MSys" And obj.name <> "tbl_one" Then 2. الكود اللي انا وضعته هو تقريبا نفس الكود اللي انت وضعته ، بإستثناء ، ان الكود حقي يجب ان يكون في البرنامج اللي فيه الجداول (سواء مضمنه او مربوطة) وتريد تحذف سجلاتها ، بينما كودك يعمل شوية شغلات اضافية ، بالاضافة الى حذفه لسجلات من برنامج خارجي. جعفر
-
-
1. لا ، ولا انصح بعمل اللي تريده ، ولكن يمكن عمل حقل فوق هذا الحقل (بالضبط ، وبنفس اللون ، ونجعله مخفي ، وليكن اسمه For_New_Record) ، ونكتب في هذا الحقل الغير مضمن ، كلمة (جديد) ، وفي حدث الحالي في النموذج ، نكتب هذا الكود لإخفاء احدهم وإظهار الآخر ، في الوقت الصحيح: Private Sub Form_Current() If Me.NewRecord Then Me.For_New_Record.Visible = True Me.RowID.Visible = False Else Me.For_New_Record.Visible = False Me.RowID.Visible = True End If End Sub . 2. لا يمكنك ان تضيف اي رقم لهذا الحقل ، فالرقم سيظهر تلقائيا عند حفظ السجل ، لذا اقفل هذا الحقل جعفر 953.2.test.accdb.zip
-
خطأ مطبعي بدل Or اكتب And ، هكذا: If Left(obj.Name, 4) <> "MSys" AND obj.name <> "tbl_one" Then
-
في الواقع كل اللي كنت محتاج له هو الكود اللي اعطاك اخونا محمد التميمي ولكني اضفت بعض البهارات عليه ، فأصبح: Private Sub Form_Load() DoCmd.GoToRecord , , acLast DoCmd.GoToRecord , , acNewRec Me.التاريخ.SetFocus End Sub جعفر
-
-
نفس الطريقة ، ولكن اضف اسم الجدول في هذا السطر (مثلا لا نريد الجدول tbl_one ) : If Left(obj.Name, 4) <> "MSys" or obj.name <> "tbl_one" Then جعفر
-
عملك صحيح 100% والسبب ان التسلسل في النموذج يبدأ بالرقم 3 ، هو لأنك ادخلت هذا السجل كثالث سجل في الجدول ، وهذا طبيعي. السؤال هو: لماذا تريد ان ترى حقل التسلسل ، اجعله مخفي وانتهى الموضوع اما اذا اردت ان ترى تسلسل لسجلات النموذج ، فيمكنك عمل: . وهذه الوحدة النمطية التي تعطي التسلسل في الاستعلام: Public Function RowCounter( _ ByVal strKey As String, _ ByVal booReset As Boolean, _ Optional ByVal strGroupKey As String) _ As Long ' Builds consecutive RowIDs in select, append or create query ' with the possibility of automatic reset. ' Optionally a grouping key can be passed to reset the row count ' for every group key. ' ' Usage (typical select query): ' SELECT RowCounter(CStr([ID]),False) AS RowID, * ' FROM tblSomeTable ' WHERE (RowCounter(CStr([ID]),False) <> RowCounter("",True)); ' ' Usage (with group key): ' SELECT RowCounter(CStr([ID]),False,CStr([GroupID])) AS RowID, * ' FROM tblSomeTable ' WHERE (RowCounter(CStr([ID]),False) <> RowCounter("",True)); ' ' The Where statement resets the counter when the query is run ' and is needed for browsing a select query. ' ' Usage (typical append query, manual reset): ' 1. Reset counter manually: ' Call RowCounter(vbNullString, False) ' 2. Run query: ' INSERT INTO tblTemp ( RowID ) ' SELECT RowCounter(CStr([ID]),False) AS RowID, * ' FROM tblSomeTable; ' ' Usage (typical append query, automatic reset): ' INSERT INTO tblTemp ( RowID ) ' SELECT RowCounter(CStr([ID]),False) AS RowID, * ' FROM tblSomeTable ' WHERE (RowCounter("",True)=0); ' ' 2002-04-13. Cactus Data ApS. CPH ' 2002-09-09. Str() sometimes fails. Replaced with CStr(). ' 2005-10-21. Str(col.Count + 1) reduced to col.Count + 1. ' 2008-02-27. Optional group parameter added. ' 2010-08-04. Corrected that group key missed first row in group. Static col As New Collection Static strGroup As String On Error GoTo Err_RowCounter If booReset = True Then Set col = Nothing ElseIf strGroup <> strGroupKey Then Set col = Nothing strGroup = strGroupKey col.Add 1, strKey Else col.Add col.Count + 1, strKey End If RowCounter = col(strKey) Exit_RowCounter: Exit Function Err_RowCounter: Select Case Err Case 457 ' Key is present. Resume Next Case Else ' Some other error. Resume Exit_RowCounter End Select End Function Public Function Reset_RowCounter() Call RowCounter(vbNullString, False) End Function جعفر 953.test.accdb.zip
-
-
اذن ارفق هذه الجزئية من برنامجك للنظر فيه جعفر
-
منع المستخدم من الوصول الى بيانات الجداول و العلاقات بينها ؟
jjafferr replied to ابو عبدلله's topic in قسم الأكسيس Access
وعليكم السلام هل هذا قصدك: جرب المرفق في الرابط التالي . او جعفر -
السلام عليكم اخي عبد اللطيف طريقتك غير متعارف عليها ، والظاهر انك لم تستطع تنفيذها في مثال الاخ bouchaib zakaria !! فالمثال الذي ارفقته هو استعلام حذف عادي ، واحد لكل جدول الطريقة الاسهل هي ، عمل زر في نموذج ، وضع عليه هذا الكود لحذف سجلات جميع الجداول (وهذا الكود الذي اشار عليه بقية الشباب في مشاركاتهم ، بطرق مختلفة) Private Sub cmd_Delete_All_Records_Click() Dim obj As AccessObject, dbs As Object Set dbs = Application.CurrentData For Each obj In dbs.AllTables If Left(obj.Name, 4) <> "MSys" Then DoCmd.SetWarnings False DoCmd.RunSQL ("Delete * From " & obj.Name) DoCmd.SetWarnings True End If Next obj MsgBox "تم حذف سجلات جميع الجداول" End Sub جعفر 951.استعلام حذف.accdb.zip
-
1. نعمل استعلام خاص لمصدر بيانات النموذج ، واسميته qry_1 . 2. في حدث تحميل النموذج ، استعمل هذا الكود Private Sub Form_Load() Dim myCriteria As String myCriteria = "[A2]=1" myCriteria = myCriteria & " And [A3]=1" myCriteria = myCriteria & " And [A4]=1" myCriteria = myCriteria & " And [A5]=1" Me.TOTL = DCount("*", "qry_1", myCriteria) End Sub او Private Sub Form_Load() Me.TOTL = DCount("*", "qry_1", "[A2]=1 And [A3]=1 And [A4]=1 And [A5]=1") End Sub . جعفر 952.NBZ.accdb.zip