-
Posts
631 -
تاريخ الانضمام
-
تاريخ اخر زياره
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو محب العلم
-
نرجس ، تم إكمال عناصر البحث وضبط الأمر التعديل : تحياتي
-
نكمل الشرح، شرح الخطوات المتبعة في برمجة الصفحة الأخيرة من التقرير المقدمة ابتداءً قد تتسألون ما الذي فعله Accessna في الصفحة الأخيرة، والجواب هو أنه جعل الصفحة تكمل طباعة الاسطر الفارغة رغم عدم وجود بيانات كافية لإملاء الصفحة. حيث أنه تم التحديد سابقا بأن عدد السطور في الصفحة سيكون ثابتا وتم تعريفه بواسطة المتغير OnePageRecords وقيمته في المثال 19 لذلك يجب الأخذ بعين الاعتبار في الصفحة الأخيرة أن العدد سيكون أيضا 19 لأن عدد السجلات والتي هي مصدر التقرير (عدد الطلاب) يمكن أن لا يكونوا دائما من مضاعفات العدد 19 وبالتالي سيظهر نقص في عدد سطور الصفحة الأخيرة لذلك برزت الحاجة للمعالجة. طريقة المعالجة 1. العمل يتم في حدث عند الفتح للتقرير ، حيث يقوم بإنشاء جدول جديد يضع فيه الارقام من 1 .. OnePageRecords = 19 كالأتي : '------------ QryName = Me.Name & "_1234567890" 'عملية إنشاء الجدول الجديد Set dbs = CurrentDb Set rTbl = dbs.CreateTableDef(QryName & "_0") With rTbl .Fields.Append .CreateField("RowID", dbByte) .Fields("RowID").ValidationRule = ">0" End With dbs.TableDefs.Append rTbl 'عملية تعبئة الجدول بالأرقام من 1 إلى 19 = OnePageRecords Set sRst = dbs.OpenRecordset(QryName & "_0", dbOpenDynaset) With sRst For ExtraRecords = 1 To OnePageRecords .AddNew !RowID = ExtraRecords .Update Next ExtraRecords End With sRst.Close '------------ لاحظوا هنا اصطلاح التسمية للجدول هو myReport_1234567890_0 وسوف يحتوي على حقل واحد هو RowID وحتى هذه اللحظة هذا الجدوم تم إنشاءه وتعبئته بالأرقام من 1 .. 19 بالطبع حتى هذه اللحظة لم يتم فعل أي شيء له علاقة بنتائج التقرير. 2. إنشاء استعلام جديد sQry و تحديد مصدر سجلات sRst ليتم عليهم العمل من أجل تحقيق المطلوب '------------ ' تحويل مصدر السجلات للتقرير لأن تكون استعلام اختيار بكل الأحوال SQL = Me.RecordSource SQL = IIf(SQL Like "Select *", SQL, "Select * from " & SQL) ' إنشاء استعلام جديد مبنيا على مصدر السجلات المحدد في سابقا Set sRst = dbs.OpenRecordset(SQL) Set sQry = dbs.CreateQueryDef(QryName & "_1", SQL) '------------ لاحظ تعريف مجموعة السجلات sRst 3. تحديد عدد السجلات الناقصة من الصفحة الأخيرة '------------ sRst.MoveLast ExtraRecords = sRst.RecordCount Mod OnePageRecords If ExtraRecords <> 0 Then ExtraRecords = OnePageRecords - ExtraRecords '------------ طريقة باقي القسمة ومقارنته بالصفر ثم الطرح من الأساس وهي طريقة مشهورة في الرياضيات وبهذا يصبح عندنا متغير اسمه ExtraRecords هو عدد السجلات الناقصة عن OnePageRecords في الصفحة الأخيرة. 4. لنركز قليلا ، في هذه اللحظة عندنا جدول myReport_1234567890_0 وفيه الارقام 1.. 19 في الحقل RowID وعندنا sRst مجموعة السجلات الخاصة بالتقرير بدون زيادة و sQry استعلام مبنيا على مجموعة السجلات وعندنا ايضا المتغير ExtraRecords الذي هو عدد السجلات الناقصة في الصفحة الأخيرة. 5. بناء استعلام جديد يضم السطور الناقصة '------------ SQL = "Select " For Each fld In sQry.Fields SQL = SQL & "Null as [" & fld.Name & "], " Next fld SQL = Left(SQL, Len(SQL) - 2) & " from [" & QryName & "_0] Where [RowID]<=" & ExtraRecords & ";" Debug.Print SQL Set rQry = dbs.CreateQueryDef(QryName & "_2", SQL) '------------ هنا يتم بناء rQry وهو استعلام يوجد به سجلات بعدد السطور الناقصة مع ضبط قيمة RowID لكل منها 6. أخيرا تحديد مصدر السجلات الجديد للتقرير وهو استعلام توحيد بين مصدر السجلات و rQry هكذا SQL = "Select * from [" & QryName & "_1] Union all " & _ "Select * from [" & QryName & "_2];" أليست البرمجة جميلة ، كل الاحترام لِ Accessna تحياتي
-
جميل جدا ، شرح الخطوات المتبعة لتحديد عدد السطور في الصفحة 1. في قسم التعريفات في التقرير يعرف متغير خاص بعدد الأسطر في الصفحة ويطلق عليه OnePageRecords هكذا Dim OnePageRecords As Byte 2. في حدث الفتح للتقرير Report_Open يتم تحديد قيمة هذا المتغير هكذا Private Sub Report_Open(Cancel As Integer) ... ... ... OnePageRecords = 19 ... ... ... End Sub 3. في حدث التنسيق لجزء التفاصيل Detials.Format يتم الاعتماد على قيمة متغير count في معرفة عدد السطور المطبوعة فكلما طبع سطر زادت فيمة count وعندما تصل قيمة count إلى العدد المرغوب به وهو OnePageRecords فإننا نفرض صفحة جديدة ونفرغ count (يعني نجعله صفر) هكذا Private Sub تفصيل_Format(Cancel As Integer, FormatCount As Integer) Static Count As Byte 'Number Of Lines Per Page = OnePageRecords(19) Count = Count + 1 If Count = OnePageRecords Then Count = 0 Me.Section(acDetail).ForceNewPage = 1 End If End Sub وهكذا يتم التحكم في عدد السطور وهذا العمل جميل جدا ويمكن أن يصبح أكثر جمالا إذا ما تم بعث قيمة عدد السطور في الصفحة إلى المتغير OnePageRecords من خلال openargs الخاصة بالتقارير وإن احببتم شرحتها لكم. تحياتي
-
كيف أقوم بطرح تاريخين فى نموذج الأكسس بشرط
محب العلم replied to ممدوح عبداللاه's topic in قسم الأكسيس Access
ممدوح ، اليك مثال كود Dim TheDate As Date Dim Msg TheDate = InputBox("Enter a date") Msg = "Days from today: " & DateDiff("d", Now, TheDate) MsgBox Msg هذا المثال يبين لك الفرق بالايام بين تاريخ مدخل وتاريخ اليوم بالنسبة لسؤالك لم تحدد كيف تريد النتيجة ولنفترض أنها بالأيام يكون الحل كما يلي كود MsgBox DateDiff("d", #5/20/1994#, #1/10/2007#) ويمكن أن تظهر النتيجة yyyy بالسنوات m بالأشهر d أيام ww الأسابيع h الساعات n الدقائق s الثواني تحياتي -
نرجس، تم تصميم وسيلة بحث للعربية والإنجليزية التعديل : تحياتي
-
نرجس ، اعتقد ان المشكلة قد حلت تحياتي
-
مرحلة التطبيق والتجربة ما زلنا في موضوعنا الأول وهو محاكاة قدرات الجر والإفلات drag-and-drop في أكسيس المقدمة هذه من أهم المراحل بعدما نتعلم شيء معين يجب أن نطبقه ونستخدمه ولذلك قمت بعمل مثال يقوم بالتلوين باستخدم فكرة الجر والإفلات كما في الصورة وفي هذا المثال البسيط قمت باستثمار ما تعلمناه سابقا وجدير بالملاحظة هنا ما يأتي الإجراءات الأحداث التي نستخدمها هي ثلاثة لكل لون حيث يعتبر هو العنصر المراد جره ومثال ذلك احداث اللون الأحمر c1 وهي : Private Sub c1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) DragStart Me End Sub Private Sub c1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) DropDetect Me, Me![c1], Button, Shift, X, Y End Sub Private Sub c1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) DragStop End Sub وحدث مربع النص المستقبل الذي سيتم عنده الإفلات وهو Private Sub dropto_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) DropDetect Me, Me![dropto], Button, Shift, X, Y End Sub وطبعا في النهاية لا ننسى وضع الكود المناسب في الوحدة النمطية لإجراء عملية التلوين ويتم ذلك كالأتي : Sub Example3(DragFrm As Form, DragCtrl As Control, DropFrm As Form, DropCtrl As Control, _ Button As Integer, Shift As Integer, X As Single, Y As Single) DropCtrl.ForeColor = DragCtrl.ForeColor DropCtrl.Requery End Sub هذا كل شيء، كما ترون أن الأمر بسيط بعد أن تم فهمه المثال التطبيقي : DragDrop123.rar وظيفة محبي العلم : عمل مثال خاص بكم يستخدم ما تعلمناه ورفعه إن احببتم تحياتي
-
شكرا للجميع على التشجيع والدعم ، ما زلنا في نفس الموضوع وهو محاكاة قدرات الجر والإفلات drag-and-drop في أكسيس المقدمة كما ذكرت سابقا في أكسيس لا يوجد حدث معرف لعملية الجر والإفلات (DragDrop) كما هو الحال في فيجوال بيسك. الأن سأقدم مثال أخر وهو جر عنصر تحكم من نموذج وإفلاته في نموذج أخر، طبعا الحديث هنا يدور عن نفس الإجراءات التي تم التعرف عليها وتعريفها سابقا مع طريقة معالجة جديدة للمثال الجديد الإجراءات Sub DragDrop(DragFrm As Form, DragCtrl As Control, DropFrm As Form, DropCtrl As Control, _ Button As Integer, Shift As Integer, x As Single, Y As Single) ' Which form was dropped on? ' It is a good idea to use the DragDrop procedure to ' determine which drag-and-drop operation occurred; then call ' appropriate code to handle the special cases. Select Case DropFrm.Name Case "frmDragDropListBoxes" ListBoxExample DragFrm, DragCtrl, DropFrm, DropCtrl, _ Button, Shift, x, Y Case Else ' For all other cases, copy contents of Drag to Drop ' control. On Error Resume Next DropCtrl = DragCtrl If Err Then MsgBox Error$ End Select End Sub Sub ListBoxExample(DragFrm As Form, DragCtrl As Control, DropFrm As Form, DropCtrl As Control, _ Button As Integer, Shift As Integer, x As Single, Y As Single) Dim conn As ADODB.Connection Dim strSQL As String Set conn = CurrentProject.Connection ' create SQL statement to update Selected field of ' .. drag/dropped list box item. strSQL = "UPDATE tblDragListBox SET ysnSelected=" ' drag from List1 toggle Selected=True, List2 toggles False. strSQL = IIf(DragCtrl.Name = "List1", strSQL & "True", strSQL & "False") ' if CTRL key not used, alter dragged value only. If (Shift And CTRL_MASK) = 0 Then strSQL = strSQL & " WHERE pkeyCustomerID ='" & DragCtrl & "'" End If ' run update query to toggle Selected field of Customer record(s). conn.Execute strSQL ' requery the list box controls to show update lists. DragCtrl.Requery DropCtrl.Requery End Sub لننتبه جيدا كيف يتم تكييف الإجراءات حسب المسألة : أولا : نلاحظ أن إجراء الإفلات لا يتغير والذي يغير طبيعة (نتيجة) الإفلات هو استدعاء إجراء العمل وهو الذي يتغير من مثال إلى أخر Case DropFrm.Name Case "frmDragDropListBoxes" ListBoxExample DragFrm, DragCtrl, DropFrm, DropCtrl, _ Button, Shift, x, Y Case Else ' For all other cases, copy contents of Drag to Drop ' control. On Error Resume Next DropCtrl = DragCtrl If Err Then MsgBox Error$ End Select لاحظ أن هذا الكود يخدم المثالين فإذا كان النموذج frmdragdroplistboxes مفتوحا (وهو المثال الأول) فإنه يتم استدعاء الإجراء الخاص بذلك وهو في هذه الحالة ListBoxEaxmple وعدا ذلك تتم فقط عملية الإفلات يعني في المثال الثاني وهو عملية الجر من نموذج والإفلات في أخر تتم العملية ببساطة من خلال الأمر DropCtrl = DragCtrl وهذه هي أبسط عمليات الإفلات أن نعبء البيانات في حقل الإفلات دون أي إجراء إضافي. ثانيا : نلاحظ أن الإجراء ListBoxEample هو خاص بالمثال الأول فقط وهو يقوم بضبط الأمور بعد الإفلات وذلك بإنعاش مربع القائمة الأول ومربع القائمة الثاني بعد الجر والإفلات فإن إحدا القوائم ستزيد عنصرا والأخرى سنقص عنصرا وهذا هو ما يعالجه هذا الإجراء. DragDrop12.rar تحياتي
-
عملية جمع معقدة نحتاج إلى خبير استعلامات
محب العلم replied to حامل المسك's topic in قسم الأكسيس Access
وبمزيد من العمل في نفس المسألة : توصلت إلى طريقة ثالثة تستخدم استعلام تحديد واحد ويطلب هذا الاستعلام الاقترانات التي تم شرحها سابقا من وحدة نمطية تعرف فيها الاقترنات بشكل Public وهذه الطريقة تمكننا من التعديل على النموذج ومشاهدة النتائج مباشرة وعدم تخزين النتائج في الجدول بل الحصول عليها من خلال الاستعلام. اعتقد أن هذه الطريقة هي الأمثل لهذه المسألة الملف : JudgeOneQuery.rar تحياتي -
أبا أحمد ، الحقيقة أن الموضوع يحتاج إلى جهد ، يبدو لي أن ما تطلبه ممكن التحقيق انصحك بالاضافة إلى الأداة التي صممتها لك أن تبحث في الكائن FileSystemObject على سبيل المثال في هذا الكائن بإمكانك أن تعرف معلومات الدليل كالأتي : Dim fs, f, s Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.getfolder("c:\a") s = f.DateCreated MsgBox s وفي هذا الكائن يوجد طرق مثل Movefile و Movefolder ولكن الموضوع يحتاج إلى تنظيم وبحث دعواتكم من المدينة المنورة
-
عملية جمع معقدة نحتاج إلى خبير استعلامات
محب العلم replied to حامل المسك's topic in قسم الأكسيس Access
حامل المسك، شرح الحلول : أولا: الحل البرمجي الذي قدمه محب العلم المقدمة : جعل مصدر السجلات للنموذج الذي سيتم فيه ادخال الدرجات وحساب النتائج الجدول مباشرة وذلك يؤدي إلى السماح بإمكانية التعديل أو الاضافة لطلبة جدد وكذلك احتساب النتائج ولاحقا عندما تريد تصميم التقارير ستكون العملية سهلة جدا حيث النتائج ستكون متوفرة لك في الجدول وفي هذه الطريقة لا تحتاج إلى استعلام لأنها بحد ذاتها هي عبارة عن استعلامي اجرائي يقوم بتعديل النتائج في الجدول. الإجراءات : إجراء حدث عند النقر على زر احتساب النتائج Private Sub Command17_Click() Dim Rst As Recordset Set DBs = CurrentDb Set Rst = DBs.OpenRecordset("Judges", dbOpenDynaset) Rst.MoveLast Rst.MoveFirst Do While Not Rst.EOF Rst.Edit Rst!maxg = whatmax(Rst!g1, Rst!g2, Rst!g3, Rst!g4) Rst!ming = whatmin(Rst!g1, Rst!g2, Rst!g3, Rst!g4) Rst!grade = whatgrade(Rst!g1, Rst!g2, Rst!g3, Rst!g4) Rst.Update Rst.MoveNext Loop Rst.Close Me.Refresh End Sub هذا الإجراء يقوم بالدوران داخل سجلات الجدول Judges (الحكام) من بدايته وحتى النهاية ولكل سجل (سطر) موجود في الجدول يتم استدعاء ثلاثة اقترانات هي whatmax الذي سيرجع لنا القيمة العظمى من حكم الحكام و whatmin الذي سيرجع لنا القيمى الصغرى من حكم الحكام و whatgrade الذي سيرجع لنا النتيجة بعد خصم القيمة الصغرى والعظمى وفحص كم نتيجة يوجد للقسمة على 2 أو 1 وتخزن هذه النتائج في الجدول في الحقول maxg و ming و grade والتي تمثل الأكبر والأصغر والمستحق على الترتيب الإقتران الأول whatmax Function whatmax(a, b, c, d As Double) max = 0 If a > max Then max = a If b > max Then max = b If c > max Then max = c If d > max Then max = d whatmax = max End Function لاحظ أننا افترضنا أن القيمة العظمى max هي 0 ثم قارنا ذلك مع الدرجة الأولى فإذا كانت أكبر من صفر أصبحت هي الأكبر ثم نقارن مع الدرجة الثانية وهكذا... الإقتران الثاني whatmin Function whatmin(a, b, c, d As Double) min = 100 If a < min Then min = a If b < min Then min = b If c < min Then min = c If d < min Then min = d whatmin = min End Function لاحظ هنا أن العملية عكسية للإقتران السابق حيث أننا نبحث عن اقيمة الصغرى لذلك افترضنا أن القيمة الصغرى min هي 100 ثم قارنا ذلك مع الدرجة الأولى فإذا كانت أصغر من 100 أصبحت هي الأصغر ثم نقارن مع الدرجة الثانية وهكذا... الإقتران الثالث whatgrade Function whatgrade(a, b, c, d As Double) h = 4 If a = 0 Or IsNull(a) Then h = h - 1 If b = 0 Or IsNull(b) Then h = h - 1 If c = 0 Or IsNull(c) Then h = h - 1 If d = 0 Or IsNull(d) Then h = h - 1 g = Nz(a, 0) + Nz(b, 0) + Nz(c, 0) + Nz(d, 0) - whatmax(a, b, c, d) - whatmin(a, b, c, d) If h = 4 Then whatgrade = g / 2 Else whatgrade = g End If End Function وهذا الاقتران الذي سيحسب لنا الدرجة لكل طالب حسب القاعدة المطلوبة ثانيا: الحل البرمجي الذي قدمه Accessna المقدمة : في بعض الاحيان لا نستطيع كتابة استعلام واحد مباشرة يحقق لنا ما هو مطلوب من المسألة وفي هذه الحالة (الأصعب) يلجأ إلى بناء استعلامات مركبة تكون نتيجة استعلام هي مصدر استعلام أخر وهذا هو المنهج الذي اتبعة Accessna في التوصل للحل. الخطوات : 1. بناء استعلام توحيد QryJudgesAll SELECT [no], g1 as grade FROM Judges Union all SELECT [no], g2 FROM Judges Union all SELECT [no], g3 FROM Judges UNION ALL SELECT [no], g4 FROM Judges ORDER BY [no]; وهذا الاستعلام يقوم باختيار رقم الطالب no والحكم الأول g1 ويتم تسمية الحكم grade لكل الطلاب وثم يضيف اليها (يوحدها) الحكم الثاني والثالث والرابع ونتيجة هذا التوحيد ستكون عمودين عمود يظهر فيه رقم الطالب no وعمود تظهر فيه النتيجة التي تم تسميتها grade بمعنى أخر نتيجة استعلام التوحيد هي استعلام فيه حقلين no و grade حسب الصورة السابقة واسم هذا الاستعلام QryJudgesAll وسوف يستخدم في الخطوة التالية 2. بناء استعلام اختيار QryJudgesSum لاحظ أن مصدر هذا الاستعلام هو الاستعلام التوحدي الذي تم إنشاءه بالخطوة الأولى وأن الاقترانات الثلاثة التي تم شرحها في طريقة البرمجة يتم معالجتها هنا وهي MaxG و MinG و Grade 3. بناء استعلام اختيار QryGrades وهذا الاستعلام سيعتبر مصدرا للنموذج حيث يوفر جميع الحقول من جدول البيانات الأساسي judges ويوفر النتائج التي هي في الاستعلام QryJudgesSum ذكر Accessna وهذا كلام دقيق وذلك بتعديل QryJudgesSum ليضم أيضا جميع الحقول من Judges كما يآتي : وهذا الملف بعد اختصار الاستعلامات الثلاث إلى إثنين لمن يحب : judge_Queries_update.rar تحياتي -
عملية جمع معقدة نحتاج إلى خبير استعلامات
محب العلم replied to حامل المسك's topic in قسم الأكسيس Access
أحسنت -
عملية جمع معقدة نحتاج إلى خبير استعلامات
محب العلم replied to حامل المسك's topic in قسم الأكسيس Access
حامل المسك ، بالاستعلامات كما تطلب صعبة جدا، ولكن بالكود ممكن، وإذا احببت أشرحه لك judge.rar تحياتي -
حسن ، لقد صممت لك أداة تناقل الملفات بين مجلدين ثابتين A و B في مثالنا وهما في الدليل الرئيسي \:C أنظر الصورة وتقوم الأدارة بإظهار الملفات الموجودة في الدليل A في مربع قائمة List1 وإظهار الملفات الموجودة في الدليل B في مربع قائمة List2 ثم تستطيع تحديد ملف أو عدة ملفات وبمجرد الضغط على زر النقل المناسب من a إلى b أو العكس سيتم المطلوب وسيظهر أثر ذلك في مربعي القائمة مباشرة SL20890.rar لا تنسى لتجربة المثال أن تنشىء المجلد c:\a والمجلد c:\b وتضع ملفات في واحد منهما على الأقل تحياتي
-
المثال الأول كيف نحاكي قدرات الجر والإفلات drag-and-drop في أكسيس . المقدمة في أكسيس لا يوجد حدث معرف لعملية الجر والإفلات (DragDrop) كما هو الحال في فيجوال بيسك، في هذا المثال سيتم شرح كيفية عمل اجراء يعمل في أكسيس لعملية الجر والإفلات من عنصر تحكم لأخر وتحديدا من مربع قائمة لأخر وإذا تمت العملية مع استمرار الضغط على زر Ctrl فإن جميع البيانات الموجودة في القائمة الأولى سوف تنقل إلى القائمة الثانية. الإجراءات الاجراءات الأربعة الآتية سيتم استخدامها في هذا المثال وهي : Sub DragStart(SourceFrm As Form) هذا الاجراء يستخدم النموذج المصدر sourceFrm الذي يحتوي على عنصر التحكم الذي سيتم جره (يعني جر البيانات التي فيه) Sub DragStop() هذا الإجراء لإيقاف عملية الجر Sub DropDetect(DropFrm As Form, DropCtrl As Control, _ Button As Integer, Shift As Integer, _ x As Single, Y As Single) حيث : DropFrm النموذج الذي ستفلت فيه البيانات DropCtrl العنصر الذي ستفلت فيه البيانات Button، X، Y المعلمات التي سنحصل عليها من حدث MouseMove هذا الإجراء يمكن عنصر تحكم من أن يكون عنصر الإفلات (الذي سنعبىء البيانات فيه) ، يجب أن يطلب هذا الإجراء في حدث MouseMove للعنصر للذي يمكن أن يكون الهدف (الذي ستفلت عنده البيانات) Sub DragDrop(DragFrm As Form, DragCtrl As Control, DropFrm As Form, DropCtrl As Control, _ Button As Integer, Shift As Integer, x As Single, Y As Single) حيث : DragFrm النموذج الذي سنجر منه DragCtrl العنصر الذي سنجر منه DropFrm النموذج الذي سنفلت فيه البيانات DropCtrl العنصر الذي سنفلت فيه البيانات Botton وضع أزرار الماوس عند عملية الإفلات وضع زر Shift ALt Ctrl عند إجراء الإفلات X,Y إحداثيات الماوس عند تنفيذ عملية الإفلات هذا الإجراء سيتم طلبه للإستجابة على عملية الجر والإفلات من عنصر مفعل لأن يكون عنصر جر إلى عنصر مفعل لأن يكون عنصر إفلات. في هذا الإجراء يمكن أن نعدل في الكود كي يتناسب مع ما نحتاجه أو ما نريد عمله على سبيل المثال يمكن أن تنسخ محتويات العنصر المجرور في العنصر المستقبل (عنصر الإفلات) ملاحظات حول تطبيق المثال 1. ملاحظة الوحدة النمطية basdragdrop والتي تحتوي على الإجراءات المشار إليها أعلاه 2. لاحظ حقل ysnSelected الموجود في الجدول tblDragListBox 3. ملاحظة جميع الإحداث المعرفة على عنصري التحكم مربع قائمة list1 و list2 في النموذج frmDragDropListBoxes وربما تتسألون لماذا كان هناك تعريف للنموذج المصدر الذي سنجر منه وللنموذج الهدف الذي سنفلت فيه البيانات، والجواب هو أننا في مثالنا الثاني سوف نقوم بعملية الجر من نموذج والإفلات في نموذج أخر DragDrop.rar تحياتي
-
نرجس، المشكلة حدثت لأنك أدخلت في المصدر للأسماء الرقم مرة أخرى، تم حذف الرقم وإبقاء الأسم التعديل : Ser13update.rar تحياتي
-
وأنت بخير ، تم التعديل على الكود الخاص بالزر لإظهار الدليل ، يرجى مراجعته لا تدخل اسم ملف الصورة مع الدليل إليك التعديل : updatev2.rar تحياتي لك
-
السلام عليكم فكرت ملياً قبل أن أكتب موضوعي الأول في هذا المنتدى لأنني أمل أن يكون فيه الفائدة الكبيرة لكم ولا أريد أن أكرر الموضوعات، وقد لاحظت من خلال تصفحي لعدة منتديات وجزئيا هذا المنتدى أن الأعضاء يقومون برفع الأمثلة وخصوصا من المصادر الاجنبية وفي كثير من الاحيان تكون هذه الأمثلة قوية ونافعة بل ورائعة ولكنها لا تعطى حقها من المتابعة والنقاش وتضيع فائدتها وتختفي في غيابات المنتديات وتهجر دون أن يستفيد منها أحد. سأقدم في هذه السلسلة مجموعة من الأمثلة من مصادر أجنبية مختلفة مبينا مصادرها (لحفظ الحقوق)، وسأقدمها بتصرف مع لمساتي الشخصية ومع ترجمة وشروحات ومتابعة حثيثة. أملا من المولى أن يوفقني وأياكم لهذا العمل الذي لا ابتغي من خلاله إلا رضى الله سبحانه وتعالى. تحياتي لكم
-
احسنت يا نرجس ، تحياتي
-
حسناً ، بالنسبة للمشاركة الأولى، الرسالة التي ظهرت هي من الأكسيس وهي ليست مشكلة حيث أننا في الكود شغلنا استعلام اجرائي وهو تعديل رقم الكفيل عند الدخول في جدول المستخدم ، والاكسيس يحذر عادةً من أن استعلام اجرائي على وشك التنفيذ إلا إذا منعنا هذا التحذير من الظهور وهو أمر بسيط من tools > options >edit/find ثم تلغي الصح الذي بجانب الاستعلامات الاجرائية كما في الصورة : بالنسبة للمشاركة التانية هل تذكر هذا الكلام، فهذه هي الطريقة المقترحة لإظهار السجلات والعمال المرتبطين مع الكفيل ولذلك قمت بإضافة رقم الكفيل في كلا من جدول السجلات وجدول العمال حتى يستفاد منها بعد دخوله بعرض السجلات التي له علاقة بها فقط ، بالنسبة لك تستطيع اكمال العمل وكأن أمرا لم يكون وتتجاهل عملية الربط والاظهار للكفيل ، لأن هذه العملية تتم في النهاية من خلال التصفية على مصدر السجلات ببسلطة شديدة. تحياتي
-
الجنتل ، شكرا على الرابط المفيد، هذا الموضوع يمكن أن يعمل بواسطة جافا أو Php وربط ذلك مع محرك قواعد بيانات اكسيس مع انه لا ينصح بذلك كثيرا على كل الاحوال إذا احببت أن اشرح لك طريقة الربط فأنا مستعد لذلك أما عن البرمجة بلغة جافا أو Php فعليك معرفتها من منتديات أخرى، لأن هذا المنتدى خاص بالأكسيس فقط. تحياتي
-
نرجس ، تم التعديل المطلوب Ser12v1.rar تحياتي
-
ساحر عودةً إلى البحث الذكي (وقد أعجبتني التسمية) تم في المثال الآتي تحقيق ما تريد SL20797v1.rar تحياتي
-
تماما ، ولا تنسى أن تلغي زر الاغلاق لنموذج entry حتى يبقى التركيز في النموذج لغاية الدخول بكلمات صحيحة تحياتي