نجوم المشاركات
Popular Content
Showing content with the highest reputation on 03/25/21 in all areas
-
3 points
-
3 points
-
2 points
-
هذا الملف يقوم بادراج كل الفصول في القائمة المنسدلة اوتوماتيكياً (بدون تكرار) Ragheb.xlsm2 points
-
تفضل هذا مفعل البرنامج كامل ومرفق به فولدر إسمه (K) يحتوي على ملفات يرجى وضعها داخل ملف البرنامج بعد تسطيبه في Program Files والموافقة على الاستبدال إذا لزم الأمر (طبعاً بعد غلق البرنامج بعد تسطيبه) . وسيكون كامل بإذن الله تعالى ، والكمال لله وحدة من قبل ومن بعد اللغة يمكنك اختيارها بعد التسطيب ولكم جزيل الشكر Kutools وهذا رابط اخر على ميديا فاير Kutools.for.Excel.16.502 points
-
السلام عليكم هل من الممكن شرح طريقة تحويل صيغة البرنامج الى mde شرح تفصيلي لكي تعم الفائدة في المنتدى ولكم جزيل الشكر1 point
-
1 point
-
وعليكم السلام 🙂 يمكنك استيراد جميع الكائنات الى قاعدة بيانات واحدة ، ولكن اذا كانت حقول الجداول متشابهة ، ولكن بيانات كل قاعدة بيانات تختلف عن الاخرى ، فالطريقة الصحيحة هي عمل حقل جديد باسم "الموقع" (جميع مسميات كائنات قاعدة البيانات يجب ان تكون بالانجليزية ، حتى يسهل عليك كتابة المعادلات والكودد) ، فتعبئ هذا الحقل لكل قاعدة بيانات (حتى تستطيع ان تميز بيانات قاعدة بيانات عن اخرى) ، ثم تستورد جميع الجداول المتشابهة الى جدول واحد ، ويكون عندك نموذج الرئيسي لا يتم غلقة ، وفيه تختار "الموقع" ، وفي الاستعلامات ، اضف لها حقل "الموقع" ، ثم في المعيار اشر الى اختيارك من النموذج الرئيسي. جعفر1 point
-
استاذي حسين مامون شكراً علي تعاونك معي هذا الكود بالفعل موجود في زر طباعة الفورم في الملف ولكن عندما اختار نوع طباعة لا يتم الطباعه عليها بل يتم علي الطباعه الافتراضيه المطلوب تعديله لكي يتم من خلاله طباعة الفورم علي الطباعة المختارة وليس علي الطباعه الافتراضيه ملحوظه المطلوب طباعة الفورم وليس الشيت شكراً لمن اراد ان يساعدني جزاكم الله خيراً1 point
-
من فضلك ممنوع تكرار نفس المشاركات .. وبما انك لم تقم برفع ملف لما تريد فكان أولى استخدام خاصية البحث بالمنتدى فطلبك تكرر كثيراً تفضل تعديل كـود صلاحية المستخدمـين برنامج صلاحيات المستخدمين الاصدار 3 تعديل على يوزرفورم بحث واضافة مع عمل صلاحية مستخدمين لصفحات الملف وهذا فيديو أيضاً للشرح وهذا فيديو اخر افضل طريقة تحديد صلاحيات لاى عدد من المستخدمين داخل ورقة عمل واحدة1 point
-
1 point
-
وعليكم السلام ورحمة الله وبركاته لا اعلم سبب وجود زرين للترخيل وزرين للاضافة باكواد مختلفة ربما يكون لها اهمية في ملفك الرئيسي اكتب بياناتك ثم ترخيل وهكذا اذا لم يكن هذا طلبك ارفق ملفك الرئيسي ختى تتضح الفكرة listbox (3).xlsm1 point
-
بواسطة المعادلات لا يمكن عمل هذا الشيء لانه مجرد ان تغير الأرقام يتم مسح كل شيء من الصفحة شهري و يبقى فقط اليوم المسجل في اليومية تفيير اسماء الصفحات الى Daily و Montghly لحسن نسخ الكود ولصقة الكود Option Explicit Sub From_Daily_to_Monthly() Dim D As Worksheet, M As Worksheet Dim F_rg As Range, Find_what, RO%, n%, Answer As Byte Set D = Sheets("Daily") Set M = Sheets("Monthly") Find_what = D.Range("O4") Set F_rg = M.Range("M3:M35").Find(Find_what, lookat:=1) If F_rg Is Nothing Or Find_what = vbNullString Then MsgBox "in range " & M.Range("M3:M35").Address & Chr(10) & _ "I can't find your data " & Find_what, 64 Exit Sub End If RO = F_rg.Row n = Application.CountA(M.Range("C" & RO).Resize(, 10)) If n Then Answer = MsgBox("This data Already Exit " & Chr(10) & _ "Do you want to Replace It", vbYesNo) If Answer <> 6 Then Exit Sub End If M.Range("C" & RO).Resize(, 10).Value = _ D.Range("C6").Resize(, 10).Value End Sub dr_ahmed.xlsm1 point
-
odate = Dlookup("your filedDate name","your table name") بدلا من odate = #3/28/2021# باعتبار your filedDate name هو اسم حقل التاريخ في الجدول و your table name هو اسم الجدول1 point
-
السلام عليكم ورحمة الله استخدم هذه المعادلة =IFNA(VLOOKUP($A2;التحميل!$A$2:$B$1000;2;0);VLOOKUP($A2;مستودع!$A$2:$B$1000;2;0))1 point
-
جرب هذا الشيء بمجرد ادخال رقم في العمود1 عند كتابة الرقم يحبث في الشيتين ويجلب البيانات.xlsm1 point
-
1 point
-
هذا الكود يعطيك نافدة الاختيارات استعمله حسب طلبك ملاحظة حملت ملفك ولم اجد فيه اية اكوا Sub PRIT() Application.Dialogs(xlDialogPrinterSetup).Show Range("d7:e20").PrintPreview 'السطر اسفله يمكنك تفعيله للطباعة مباشرة ' Range("d7:e20").PrintOut End Sub د1 point
-
جرب المرفق ادخل الفترة في الخلية b3 ثم اضغط الزر متابعة الاقتطاع الشهري.xlsm1 point
-
تم عمل المطلوب بمعادلة المصفوفة (Ctrl+Shift+Enter) بصفحة بحث =IFERROR(INDEX(Sheet1!$A$2:$A$2000,SMALL(IF(Sheet1!$B$2:$B$2000=$A$1,IF(Sheet1!$C$2:$C$2000="مفتوح",ROW(A$2:A$2000)-ROW(A$2)+1)),ROWS($A$3:A3))),"") اومر التوريد1.xlsx1 point
-
وعليكم السلام -أهلاً بك فى منتدانا , يمكنك استخدام هذه المعادلة لتلبية طلبك =SUMPRODUCT(SUMIF(INDIRECT("'"&$B9&"'!"&"C9:C19"),C$7,INDIRECT("'"&$B9&"'!"&"D9:D19"))) Boo2.xlsx1 point
-
تم حذف Sheets("login").Select وتم إضافة Sheets("login").Visible = 1 Sheets("login").Activate في بداية الكود وتم لإضافة Sheets("login").Visible = 2 في نهاية الكود لأن Sheets("login") يجب أن يكون مرئي عند عمل الكود وتم إخفاء مرة أخرى بعد تشغيل الكود جرب هذا ربما يفي الغرض الملف المراد اصلاحة.xlsb1 point
-
تفضل أستاذ hakimino2002 هذا العمل كنت قمت بتنفيذ من عدة سنوات أرجو أن يكون مفيد لك ويمكنك إضافة التعديلات والتقارير التي تنقصه تجربة عقارات.rar1 point
-
نعديل الكود (نفس النتسيق) اكنب رؤوس الأعمدة التي تريدها في الصف رقم 8 Option Explicit Sub Form_To() Dim F As Worksheet, W As Worksheet Dim max_ro%, max_col% Set F = Sheets("From") Set W = Sheets("Where") max_ro = F.Cells(Rows.Count, 1).End(3).Row max_col = F.Cells(8, Columns.Count).End(1).Column With W.Cells(8, 1) .CurrentRegion.Clear .Offset(, 9).CurrentRegion.Clear F.Cells(8, 1).Resize(max_ro - 7).Copy .PasteSpecial F.Cells(8, 2).Resize(max_ro - 7, max_col - 1).Copy .Offset(, 9).PasteSpecial End With Application.CutCopyMode = False End Sub Naser_1.xlsm1 point
-
الغرض منه هو تنفيذ أمر بضغط زر من أي مكان فى البرنامج ، دون الارتباط بكائن معين 1- اذهب الي جموعة الماكرو 2- اختار ماكرو جديد 3- اضغط علي الأيقون الزي عليه أحرف xyz مثلما فى الصورة 4-سيظهر عمود جديد به اسم الماكرو 5-ضع فى العمود الزر الذي تريد استخدامه و هذه بعض الامثلة فى التعليمات عن طريقة كتابة الزر طريقة الكتابة ---> ما تدل عليه ^A or ^4 ---> CTRL+A or CTRL+4 {F1} ---> F1 ^{F1} ---> CTRL+F1 +{F1} ---> SHIFT+F1 {INSERT} ---> INS ^{INSERT} ---> CTRL+INS +{INSERT} ---> SHIFT+INS {DELETE} or {DEL} ---> DEL ^{DELETE} or ^{DEL} ---> CTRL+DEL +{DELETE} or +{DEL} ---> SHIFT+DEL 6- إختار الفعل الذي تريد تخصيصه لكل زر 7- أحفظ الماكرو باسم autokeys يمكن اضافة مجموعة من ضغطات المفاتيح و لكل منها الفعل الخاص بها كما فى الصورة1 point
-
1 point
-
السلام عليكم. طريقة اخرى عن طريق winAPI '---------------------------------- 'API CONSTANTS FOR PRIVATE INPUTBOX '---------------------------------- Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, _ ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" _ (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long Private Declare Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" _ (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, _ ByVal lpClassName As String, ByVal nMaxCount As Long) As Long Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long 'Constants to be used in our API functions Private Const EM_SETPASSWORDCHAR = &HCC Private Const WH_CBT = 5 Private Const HCBT_ACTIVATE = 5 Private Const HC_ACTION = 0 Private hHook As Long '---------------------------------- 'PRIVATE PASSWORDS FOR INPUTBOX '---------------------------------- '//////////////////////////////////////////////////////////////////// 'Password masked inputbox 'Allows you to hide characters entered in a VBA Inputbox. ' 'Code written by Daniel Klann 'March 2003 '//////////////////////////////////////////////////////////////////// Public Function NewProc(ByVal lngCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Dim RetVal Dim strClassName As String, lngBuffer As Long If lngCode < HC_ACTION Then NewProc = CallNextHookEx(hHook, lngCode, wParam, lParam) Exit Function End If strClassName = String$(256, " ") lngBuffer = 255 If lngCode = HCBT_ACTIVATE Then 'A window has been activated RetVal = GetClassName(wParam, strClassName, lngBuffer) If Left$(strClassName, RetVal) = "#32770" Then 'Class name of the Inputbox 'This changes the edit control so that it display the password character *. 'You can change the Asc("*") as you please. SendDlgItemMessage wParam, &H1324, EM_SETPASSWORDCHAR, Asc("*"), &H0 End If End If 'This line will ensure that any other hooks that may be in place are 'called correctly. CallNextHookEx hHook, lngCode, wParam, lParam End Function Function InputBoxDK(Prompt, Title) As String Dim lngModHwnd As Long, lngThreadID As Long lngThreadID = GetCurrentThreadId lngModHwnd = GetModuleHandle(vbNullString) hHook = SetWindowsHookEx(WH_CBT, AddressOf NewProc, lngModHwnd, lngThreadID) InputBoxDK = InputBox(Prompt, Title) UnhookWindowsHookEx hHook End Function 'Call: InputBoxDK("Enter your Password.", "Password Required") حسنين1 point
-
اخى الفاضل طريقة اخرى لإثراء الموضوع ولعلها تفيد أحد الاخوة الأعضاء ... كل ما عليك هو وضع الصور بالتسلسل في اى مجلد تريده ثم بالضغط على الخلية A1 مرتين تحدد مسار الصور وفقط تحياتى Excel-Photo-Example.rar1 point
-
السلام عليكم ورحمة الله أخي الكريم، هذا الموضوع قام بتناوله الأخ سلامي غنام مند أيام في الموضوع الذي رابطه http://www.officena.net/ib/index.php?showtopic=58266&hl= أرجو أن يفيدك مضمونه... وأقدم لك بالإضافة الملف بالمرفق بعمل -تقريبا- مماثل باستعمال الدوال فقط (لجلب الصورة فقط)... أخوك بن علية الملف المرفق : الملف_2.rar1 point
-
السلام عليكم لقد أرجعت التعديلات السابقة وذلك لأن إنشاء نماذج في نسخ MDE غير متاح . تحياتي . ArbMsgBox_Ver1.rar1 point
-
7. اختصار التغييرات الغير ضرورية التي تم تسجيلها : رأينا في المشاركة الأولى أن مسجل المايكرو ينتج أكواداً لا تتميز بالكفاءة بسبب قيامه بتسجيل جميع الحركات التي يقوم بها المستخدم حتى و لو كانت غير ذات أهمية (كتنشيط الأهداف) ، و اليوم سنتحدث عن مشاكل أخرى يعاني منها مسجل المايكرو تدفعنا إلى عدم الاعتماد عليه بصورة نهائية في إنتاج الأكواد و ذلك عن طريق تنقيح الأكواد بعد توليدها : أولاً : عدم قدرة مسجل المايكرو على تمييز الخيارات التي تم تعديلها من داخل صناديق الحوار : لنقم بتسجيل المايكرو التالي ، وذلك حتى نستطيع معاينة المشكلة بصورة واضحة : اضغط على الخيار Record New Macro الموجود في القائمة Tools (القائمة الفرعية Macro) لتبدأ عملية تسجيل المايكرو. حدد المجال B9:G17 . الآن انقر على الخيار Cells الموجود في القائمة Format لتظهر لك نافذة : ضمن التبويب Font و تحت Font style اختر نوع الخط مثقل (Bold) و اضغط OK . أوقف تسجيل الماكرو من نفس الخيار السابق (لاحظ تغير اسمه إلى Stop Recording). الآن اضغط على Alt+Enter لتفتح لك نافذة محرر الفيجوال ، افتح الموديل المنشأ لترى فيه الكود الذي تم تسجيله مؤخراً: Sub Macro1() Range("B9:G17").Select With Selection.Font .Name = "Arial" .FontStyle = "Bold" .Size = 10 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With End Sub الآن أعد شكل الخط الموجود في خلايا المجال B9:G17 إلى Regular أو Italic و شغل الكود السابق ... بالتأكد ستشعر بالنشوة و ذلك لأن كودك المسجل قد أدى المهمة التي حددتها له سابقاً و قام بتغير شكل الخط إلى Bold :( و لكن مهلاً يا أخي ... لا تتسرع بالحكم و ذلك خوفاً من أن تصيبك صدمة إذا ما قمت بتجريب الكود السابق عدد من المرات الإضافية. :p الآن قم بتغيير نوع الخط الموجود في المجال السابق B9:G17 إلى Andalus و شكله إلى Italic و قم بعدها بتجريب الكود الذي قمت بتسجيله سابقاً : سوف تصرخ قائلاً بأنك لم تحدد للمسجل (عند تسجيل الكود السابق) أن يغير نوع الخط إلى Arial :@ لكي تحدد ماهية المشكلة السابقة يجب أولاً التعرف على الأسلوب الذي يستخدمه مسجل المايكرو في توليد أكواده . كما قلنا سابقاً ، فإن مسجل المايكرو لا يقدر على تمييز الخيارات التي تم تعديلها من داخل صناديق الحوار ، كيف ؟ عندما قمت (في المثال السابق) بتغيير شكل الخط إلى Bold فإن مسجل المايكرو لم يستطيع و للأسف معرفة الخيار الذي قمت بتعديله ، ولتعويض عن هذا النقص قام المسجل (عندما قمت بالضغط على الزر OK) بإدراج قيم جميع الخيارات الموجودة في التبويب Font. مما لا شك فيه أن المشكلة السابقة تسبب قصورين خطيرين في الكود المنشأ : زيادة حجم الكود ، و عدم القدرة على تنفيذ مهام محددة و مفصلة . حل هذه المشكلة بسيط جداً ، و يتلخص في حذف جميع التغييرات الغير ضرورية من الكود و الإبقاء على الأسلوب المطلوب فقط ، لاحظ التعديل التالي للكود السابق : Sub Macro1() Range("B9:G17").Font.FontStyle = "Bold" End Sub ثانياً : عدم قدرة مسجل المايكرو في كثير من الأحيان على توليد أكواد مختصرة : كما تعودنا ، لنقم بتسجيل مايكرو يتضمن المشكلة موضوع البحث : اضغط على الخيار Record New Macro الموجود في القائمة Tools (القائمة الفرعية Macro) لتبدأ عملية تسجيل المايكرو. حدد المجال B9:G17 . الآن انقر على الخيار Cells الموجود في القائمة Format لتظهر لك نافذة : ضمن التبويب Border قم بإحاطة جميع خلايا المجال بخط ذو سماكة و لون قياسيين ، و من ثم اضغط OK . أوقف تسجيل الماكرو من نفس الخيار السابق (لاحظ تغير اسمه إلى Stop Recording). الآن اضغط على Alt+Enter لتفتح لك نافذة محرر الفيجوال ، افتح الموديل المنشأ لترى فيه الكود الذي تم تسجيله مؤخراً: Sub Macro2() Range("B9:G17").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With End Sub لاحظ أخي أن الكود السابق يقوم بإدراج الخطوط في كل موضع بصورة مستقلة عن الموضع الآخر. يمكننا اختصار الكود السابق إلى ما يلي : Sub Macro2() With Range("B9:G17").Borders() .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With End Sub و لكن هل يمكننا اختصار الكود السابق بصورة أكثر ؟ يمكننا عمل ذلك فقط عندما تكون الخيارات المحدد ة من نوع Default ، كيف ؟ عندما تبحث داخل التعليمات البرمجية تجد أن الثوابت xlContinuous ، xlThin ، xlAutomatic الخاصة بالمعاملات السابقة LineStyle ، Weight ، ColorIndex هي من النوع Default ، أي أن الخط المستمر و العرض الرفيع و اللون التلقائي تعتبر من الخصائص الافتراضية في الأسلوب Borders ، و بما أن جميع الخصائص المستخدمة في الكود السابق تعتبر من و جهة النظر البرمجة خصائص افتراضية ، فيمكننا بذلك حذف هذه الخصائص و الإبقاء على خاصية واحدة منها فقط ، وذلك لأن الاكسل سيدرجها بصورة افتراضية ، لاحظ التعديل التالي على الكود السابق : Sub Macro2() Range("B9:G17").Borders().LineStyle = xlContinuous End Sub بالتوفيق1 point
-
و الآن سنبدأ بانشاء جدول بالطريقة الأولي: بالنقر المزدوج علي الخيار الأول : إنشاء الجداول عن طريق عرض التصميم و اختيار كل الخصائص ، بدون مساعدة الاكسس و نبدأ فى ملئ بيانات الحقول التي نريد و اختيار أنواعها و هنا سنختار حقول بسيطة ، الي أن ندرس أنواع البيانات فى الدرس القادم و من المستحسن وضع وصف لكل حقل فى خانة ال Description و لن يسبب كتابة الوصف بالعربية أية مشكلة ، علي عكس أسمء الحقول و الكائنات التي تسبب العربية فيها مشاكل فى الاكواد و بعد ذلك نحفظ الجدول باسم Table1 و بعد ذلك يسأل الاكسس كما سبق عن تحديد المفتاح و نتركه يحدده فيضيف الاكسس تلقائيا حقل من نوع ترقيم تلقائي autonumber و هكذا نكون قد استخدمنا الثلاث طرق المتاحة لانشاء الجداول1 point
-
و الآن سنبدأ بانشاء جدول بالطريقة الثانية : و نبدأ بالنقر المذدوج علي خيار انشاء الجدول عن طريق المعالج ، فتظهر الشاشة التالية : و منها نحدد طربيعة البيانات الموجودة فى الجدول ، هل هي بيانات عمل أم بيانات شخصية ، و يلي ذلك انتقاء الحقول المطلوبة، و هنا تم انتقاء الاسم و الاسم الاخير و المدينة و بالطبع يمكن تعديل الحقول و بياناتها لاحقا ، و أيضا اعادة تسمية الحقل المنتقي عن طريق زر Rename ثم ننقر علي زر "التالي" نصل الي الشاشة التالية : و فيها مطلوب : أولا : تحديد اسم الجدول ثانيا : تحديد هل سنحدد حقل مفتاح ؟ أم نترك الاكسس يضيف حقل و هذه المرة سنختار أن نحدد الحقل بأنفسنا و بعد ذلك تظهر الشاشة التالية و فيها ثلاث خيارات عن نوع البيانات في حقل المفتاح أرقام متتالية يحددها الاكسس آليا AutoNumber أرقام أدخلها بنفسي عند إضافة سجل أرقام أو أحرف أدخلها بنفسي عند إضافة سجل جديد و هذه الانواع علي التوالي هي AutoNumber,Number,Text و سنختار الأول و الخطو التالية هي أن يسأل عن العلاقات بين هذا الجدول و الجداول الأخري ، و سنترك هذا الخيار كما هو الي أن نأتي الي دراسة العلاقات و لكن للتعرف علي خطوات المعالج لو ضغطنا عالي زر العلاقات Relationships ستظهر الشاشة التالية : لتبين نوع العلاقة بين الجدول و الجدول الآخر و لكن لن نتعرض لها الآن ، و لكن لاحقا و بعد ذلك نحفظ الجدول كماسبق و نحدد الاسم و لنعرف سريعا ما حدث باختيار العلاقات : من قائمة Tools نختار Relationships فيظهر شكل العلاقة التي نتجت من استخدام المعالج و لكن سنعرض الي العلاقات و أنواعها و ما يناسب كل حالة فى دروس قادمة1 point
-
لنفتح الآن برنامج الأكسس 2002 سنجد علي يمين الشاشة اطار به الصورة الموضحة فنختار منه خيار انشاء قاعدة بيانات جديدة Blank Database و يلي ذلك ظهور شاشة تحديد مكان و إسم ملف قاعدة البيانات : و بعد ذلك نجد أن مربع حوار قاعدة البيانات كما فى الشكل التالي مقسم الي الجداول الاستعلامات نماذج تقارير صفحات ماكرو موديول هذا من ناحية اليسار ، أما من الأعلي فينقسم الي طرق التعامل مع كل منها ، أي أننا نتعامل مع كل من هذه الكائنات إما : فى وضع الإظهار ( العرض) عن طريق زر open او النقر المذدوج علي اسم الجدول أو وضع التصميم - و الذي يتم فيه تحديد مكونات و خصائص ما سيظهر فى وضع العرض- و يلي ذلك الزر الخاص بإنشاء كائن جديد ، ثم طرق الاظهار المتعارف عليها فى الويندوز للملفات ( ايقون - تفاصيل -...) و كل ما هو فى الأعلي يناظر كل جزء من الأجزاء السبعة و نلاحظ أن محتويات إطار قاعدة البيانات فى الشاشة السابقة تشير الي ثلاث طرق لإنشاء الجداول و هي إنشاء الجداول من وضع التصميم إنشاء الجداول باستخدام المعالج إنشاء الجداول عن طريق إدخال البيانات و الطريقة الأولي هي الأكثر إستخداما ، و الاثنان الأخريان مناسبتان أكثر للمبتدئين للتجربة أو عند انشاء جدول مؤقت لتجربة شيء. و سنعرض للثلاث طرق بترتيب تنازلي بدءاً من الطريقة الأخيرة و الآن نبدأ فى انشاء جدول باستخدام الطريقة الثالثة: بالنقر المذدوج علي الخيار الثالث : إنشاء الجداول عن طريق إدخال البيانات ، نجد الشاشة التالية و فيها افتراض من الاكسس أن الحقول مسماة Field1,2,3 علي التوالي و ان الاسم الافتراضي للجدول هو Table1 نبدأ بعد ذلك فى إدخال البيانات كما هو موضح ، علي سبيل المثال الاسم و الطول و تاريخ الميلاد ، لأي عدد من السجلات و سنكتفي الآن بسجل و احد ثم نختار حفظ الجدول من ايقونة الحفظ ، فيظهر مربع الحوار التالي و فيه نغير الاسم بدلا من الاسم الافتراضي الي Table1-Byentry فيظهر تنبيه من الاكسس ، يفيد بعدم وجود حقل مفتاح ، و يستأذن هل يضيف حقل مفتاح أم لا و هنا سنختار نعم و اذا دخلنا علي وضع عرض الجدول ، سنجد أنه تمت اضافة حقل جديد باسم ID و أنه مكتوب تحته AutoNumber فماذا حدث و ماذا يعني حقل المفتاح و ما هو ال AutoNumber ؟؟ أولا لنستعرض و ضع التصميم للجدول باختيار الجدول و الضغط علي زر design ، او باختيار design من القائمة المختصرة للماوس ، لنجد الآتي : هناك رسم مفتاح بجانب حقل المعرف الحقل الأول تم تحديد نوعه بانه Text و الثاني Number و الثالث Date/Time و لنتعرف علي خصائص الحقل التي أعطاها الاكسس تلقائيا لحقل المفتاح نجد أنها كما هو مبين و سنعرض للخصائص بالتفصيل لاحقا و لكن نلاحظ مبدأيا أن الحقل من نوع AutoNumber و انه حقل مفهرس indexed و لا يسمح فيه بالتكرار No Duplicates و جدير بالذكر أن تحديد أو الغاء تحديد خاصية المفتاح من ايقونة المفتاح التي تظهر فى الأعلي فى وضع تصميم الجداول اتجاه الجدول يمكن أن يظهر اتجاه الجدول من اليمين الي الشمال والعكس و ذلك بالضغط علي ايقونة خصائص الجدول المبينة فى الشاشة السابقة فيظهر مربع حوار الخصائص المبين هنا : و منه يمكن تغيير اتجاه الجدول من آخر خاصية و هي الاتجاه Orientation و سنعرض لباقي الخصائص لاحقا و هكذا نتهينا من تصميم الجدول بالطريقة الثالثة و سيليها لطريقة االثانية ثم الاولي1 point
-
بعد المقدمة ، ننتقل الي التعامل مع الأكسس نفسه :d و ستنقسم هذه المرحلة الي ثلاث حلقات بإذن الله : الاولي : التعامل مع اطار قاعدة البيانات ، و انشاء الجداول و أنواع البيانات المتاحة الثانية : الفهارس و حقل المفتاح و التعامل مع البيانات فى الجداول ، و خصائص الحقول الثالثة : العلاقات بين الجداول و تطبيق علي ما سبق و الاختبار الأول فى هذه الدورة و سيتم طرح كل مجموعة علي حدة ، مع وجود موضوع واحد للحوار حول تصميم الجداول و موضوع الحوار سيتم فتحه اعتبارا من 10 - 7 مساء1 point
-
السلام عليكم هذه أداة إضافيه لبرنامج الاكسس وضيفتها هي عمل توثيق لجميع الكائنات في ملف قاعدة البيانات تحياتي ezydoc2k.zip1 point
-
ماكرو AutoExec هو ماكرو يقوم بتنفيذ مهام نحددها له فور تشغيل قاعدة البيانات لعمل ذلك اتبع الخطوات التاليه: 1 - قم بانشاء ماكرو جديد 2 - قم بوضع الأوامر الذي تريد ان تعمل من تلقاء نفسها فور تشغيل قاعدة البيانات وليكن فتح فورم للترحيب 3 - قم بعمل حفظ للماكرو وقم بتسميته بـ AutoExec 4 - قم بإغلاق قاعدة البيانات ثم قم بفتحها مره اخرى .. تجد بمجرد فتح قاعدة البيانات فورمة الترحيب ظهرت من تلقاء نفسها1 point
-
كثير ما نحتاج لكتابة جمل SQL داخل كود فيجوال بيزيك التطبيقات و ذلك اما لتنفيذ استعلامات مركبة أو لبناء منطق معين داخل جملة الاستعلام نفسه و لكن هل تحتاج لكتابة جملة السي كيو ال مباشرة ؟؟ الاجابة لا كل ما عليك هو تنفيذ استعلام يناظر أو يشابه شكلا ما تريد ، ثم عرض الاستعلام فى واجهة ال سي كيو ال و نسخ الكود ثم التعديل فيه مثال للتوضيح أكثر اذا أردت تنفيذ استعلام إضافة يضيف القيم الموجودة فى حقلين فى جدول رقم 2 الي جدول رقم واحد يمكن اعداد الاستعلام بالطريقة العادية و اذا نظرنا الي عرض ال SQL له يكون كالتالي INSERT INTO Table1 ( Field1, Field2 ) SELECT Table2.Field1, Table2.Field2 FROM Table2; اما اذا أردنا تنفيذه بجملة SQL بال vba فكل ما علينا هو توحيد جملة ال SQL فى سطر واحد ووضعها بين "" علامتي تنصيص و أن نسبقها ب Docmd.RunSQL فتصير كالتالي : DoCmd.RunSQL "INSERT INTO Table1 ( Field1, Field2 )SELECT Table2.Field1, Table2.Field2 FROM Table2;" او لفصلها الي سطرين Private Sub Command0_Click() DoCmd.RunSQL "INSERT INTO Table1 ( Field1, Field2 )SELECT " & _ "Table2.Field1, Table2.Field2 FROM Table2;" End Sub و النتيجة واحدة و ما نستفيده هو امكانية التدخل فى بناء جملة ال SQL عن طريق منطق البرمجة1 point