اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

ashraf

المشرفين السابقين
  • Posts

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

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

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

  1. في الوحدة النمطية العامة اكتب : Declare Function SetTimer Lib "user32" (ByVal hWnd _ As Long, ByVal nIDEvent As Long, ByVal uElapse _ As Long, ByVal lpTimerFunc As Long) As Long Declare Function KillTimer Lib "user32" _ (ByVal hWnd As Long, ByVal nIDEvent As Long) _ As Long Declare Function FindWindowEx Lib "user32" _ Alias "FindWindowExA" (ByVal hWndParent As _ Long, ByVal hWndChildAfter As Long, ByVal _ lpClassName As String, ByVal lpWindowName _ As String) As Long Declare Function Sendmessagebynum _ Lib "user32" Alias "SendMessageA" (ByVal _ hWnd As Long, ByVal wMsg As Long, ByVal _ wParam As Long, ByVal lParam As Long) _ As Long Const EM_SETPASSWORDCHAR = &HCC Public str_Title$, TimerId& Sub TimerProc(ByVal hWnd As Long, ByVal uMsg As Long, _ ByVal uElapse As Long, ByVal lpTimerFunc As Long) KillTimer 0, TimerId Dim lng_Hwnd& lng_Hwnd = FindWindowEx(0, 0, "#32770", _ Trim(str_Title)) lng_Hwnd = FindWindowEx(lng_Hwnd, 0, _ "Edit", vbNullString) If lng_Hwnd Then Sendmessagebynum lng_Hwnd, EM_SETPASSWORDCHAR, 42, 0 End If End Sub وفي حدث عند نقر زر أمر اكتب : TimerId = SetTimer(0, 0, 1, AddressOf TimerProc) str_Title = "كلمة المرور مطلوبة" str_Prompt = "ادخل كلمة المرور" MsgBox InputBox(str_Prompt, str_Title) الكود السابق تظهر الكلمة بعد كتابتها في رسالة Msgbox وهذا فقط للاختبار ، أما إذا أردت وضع قيمة شرطية لعمل إجراء ما حسب الكلمة المدخلة فكالتالي : TimerId = SetTimer(0, 0, 1, AddressOf TimerProc) str_Title = "كلمة المرور مطلوبة" str_Prompt = "ادخل كلمة المرور" If InputBox(str_Prompt, str_Title) = "كلمة" Then ' اكتب هنا الإجراءات إذا كانت الكلمة صحيحة Else ' اكتب هنا الإجراءات إذا كانت الكلمة غير صحيحة End If غير "كلمة" بكلمة السر لديك . ************************ مع تحيات صفحة ابو حمود
  2. من الاستخدامات منع تشغيل القاعدة في جهاز آخر إذا أختلف رقم القرص عن الرقم المسجل بالقاعدة . في الوحدة النمطية العامة اكتب : Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" ( _ ByVal lpRootPathName As String, _ ByVal lpVolumeNameBuffer As String, _ ByVal nVolumeNameSize As Long, _ lpVolumeSerialNumber As Long, _ lpMaximumComponentLength As Long, _ lpFileSystemFlags As Long, _ ByVal lpFileSystemNameBuffer As String, _ ByVal nFileSystemNameSize As Long) As Long وفي حدث عند نقر زر أمر اكتب : Dim disk As String Dim serialnum As Long, serial As String disk = "c:\" 'غير الى القرص الذي تريد RetVal = GetVolumeInformation(disk, NomVolume, Len(NomVolume), _ serialnum, dum, dum, ResStr, Len(ResStr)) 'استخراج الرقم التسلسلي serial = Right(String(8, "0") + Hex$(serialnum), 8) serial = Left(serial, 4) + "-" + Right$(serial, 4) MsgBox serial ************** مع تحيات موقع أبو حمود
  3. ضع فى معيار الاستعلام ما يلى وغير ما يلزم Eval("inputbox ('أدخل الرسالة :','عنوان','قيمة افتراضية')") طبعا في المعيار وغير الرسالة والعنوان كما تحب ...
  4. في حدث عند عدم الوجود في القائمة ضع الكود التالي مع تغيير اسم القائمة : If MsgBox("هذا البند غير موجود بالقائمة ." _ & vbCrLf & "هل ترغب بإضافته إلى بنود القائمة ؟" _ , vbYesNo + vbMsgBoxRight + vbMsgBoxRtlReading) = vbYes Then Response = acDataErrAdded LimitToList = False [اسم القائمة].RowSource = [اسم القائمة].RowSource & ";" & NewData DoCmd.Save LimitToList = True End If[/sql] يجب وضع التزام بالقائمة إلى نعم . ****************** أبو حمود
  5. لإخفاء الجدول CurrentDb.TableDefs("table1").Attributes = dbHiddenObject لإظهار الجدول CurrentDb.TableDefs("table1").Attributes = 0
  6. إضافة رسم خلفي لتقرير بإضافة رسم خلفي لتقرير، يمكنك محاكاة إحدى العلامات المائية الموجودة على بعض الورق، وتنطبق الصورة الخلفية في التقرير على كافة صفحاته . 1- افتح التقرير في طريقة عرض "التصميم" . 2- انقر نقراً مزدوجاً فوق محدد التقرير لفتح صفحة الخصائص . 3- اختر تنسيق ثم قم بتعيين خاصية "رسم " ، انقر الزر " إنشاء " وحدد ملف صورة بامتداد ( bmp. ، ico. ، wmf ، dib أو emf ) 4- في مربع خاصية "نوع الرسم" حدد ما إذا كنت تريد الرسم مضمناً أم مرتبطاً. عندما تقوم بتضمين أحد الرسومات، فإنه يكون محفوظاً في ملف قاعدة البيانات. وإذا أردت استخدام مساحة القرص الثابت بكفاءة، حدّد الإعداد "مرتبط". 5- خاصية "وضع حجم الرسم". لهذه الخاصية ثلاثة إعدادات: ·قطع :يعرض الرسم بالحجم الفعلي. إذا كان الرسم أكبر من المساحة الواقعة بين الهوامش، سيتم قطعها. ·توسع :يغير حجم الصورة بما يناسب المساحة الواقعة بين الهوامش. قد يشوه الأعداد الرسم. ·تكبير :يغير حجم الصورة بما يناسب إما ارتفاع المساحة الواقعة بين الهوامش أو عرضها. هذا الأعداد لا يقطع الصورة ولا يشوه نسبها. 6 - يمكنك تحديد وضع الصورة على الصفحة بتعيين خاصية " محاذاة الرسم" فيحاذي الرسم ضمن هوامش التقرير. الإعدادات المتاحة هي "أعلى اليسار "،" أعلى اليمين "،" وسط "،" أسفل اليسار " و "أسفل اليمين " . 7- يمكنك تكرار الصورة عبر الصفحة بتعيين خاصية " تجانب الرسومات " إلى " نعم " فيبدأ التجانب عند الوضع المحدد في خاصية "محاذاة الرسم ". ملاحظة : تتجانب رسومات الخلفية بشكل أفضل عندما يكون تم تعيين خاصية "وضع حجم الرسم" إلى " قطع " . 8- يمكنك تحديد صفحات التقرير التي سوف تظهر الصورة فيها وذلك بتعيين خاصية " صفحات الرسوم ". والإعدادات المتاحة هي " كافة الصفحات" و "الصفحة الأولى " و" دون صفحات ".
  7. نفرض أن لديك فاتورة مطبوعة جاهزة وتريد أن يكون عدد الأصناف التي تأخذها الفاتورة لا يتعدى 10 أصناف مثلا . وبافتراض أن الفاتورة مكونة من جدولين أحدهما رئيسي وهويحتوى على رقم الفاتورة واسم العميل والتاريخ ونوع الفاتورة والثاني فرعي ويحتوى على الصنف والعدد ورقم الصنف والسعر والجمالى فى حد عند الحالى للنموذج الفرعي للفاتورة ضع الكود التالى : Private Sub Form_Current() If Me.Recordset.RecordCount >= 10 Then Me.AllowAdditions = False Else Me.AllowAdditions = True End If End Sub
  8. لعمل ما قبله فى الصفحة الثانية ثم تجمع فى النهاية وتظهر فى الصفحة الثالثة وهكذا اتبعوا الخطوات التالية للخبير أبو هادي : *************************************** بافتراض أن العمود المطلوب جمعه هو [الصافي] ------------------------------ أولا : في Detail إعمل عمود آخر بإسم [الصافي2] ثم من Properties من Data اختر Over All لـ Running Sum من Format اختر No لـ Visible ----------------------------- ثانيا : في Page Header إعمل Text Box بإسم [ماقبله] ثم من Properties من Data أكتب [الصافي]-[بعده]= في الـ Control Source ----------------------------- ثالثا : في Page Footer إعمل Text Box بإسم [بعده] ثم من Properties من Data أكتب [الصافي2]= في الـ Control Source -----------------------------
  9. أولأ أعتذر عن التاخير لظروف كثيره اجتمعت معا : ********************************************** أحب أن أطرح هنا فكرة جديدة تهدف إلى تجاهل همزة الألف عند الكتابة لأن بعضهم يعتبر الهمزة مشكلة لأنه أحياناً يدخل ألف مهموزة أو بدون همزة مثل ( أحمد - احمد ) وتهدف الفكرة إلى تجاهل الألف المهموزة و الممدودة و استبدالها بألف بدون همزة .. في الوحدة النمطية العامة أضف : Function ForTrAlfbet(Astr As Variant) As String Dim L1 As String, L2 As String, NewStr As String If Nz(Astr, "") = "" Then Exit Function Astr = CStr(Astr) L1 = Mid(Astr, 2, Len(Astr)) L2 = Mid(Astr, 1, 1) Select Case Asc(L2) Case 194, 195, 197: L2 = Chr(199) Case Else: L2 = L2 End Select NewStr = L2 & L1 ForTrAlfbet = NewStr End Function ' Asc(" آ ") = '194 ' Asc(" أ ") = '195 ' Asc(" إ ") = '197 ' Asc(" ا ") = '199 و في حدث بعد التحديث للعنصر أضف : Private Sub First_Name_AfterUpdate() First_Name = ForTrAlfbet(Nz(First_Name)) End Sub ******** اقتباس للأخ / فينوس
  10. إضافة بسيط -------------------------------------- انشاء قواعد البيانات والجداول والعناصر الاخرى بواسطة اوامر SQL عندما تكتب برنامجاً يتعامل مع قواعد بيانات SQL Server، لابد ان تجهز هذا البرنامج بامكانية انشاء قواعد البيانات وجداولها عند اول تشغيل للبرنامج او عند اعداد البرنامج، وايضا قد تحتاج لان تضيف ميزة صيانة قواعد البيانات او تطويرها وذلك بالتعديل على الجدوال وقواعد البيانات والعناصر الاخرى، في هذا الدرس سأحاول سرد كل اوامر SQL التي تقوم بانشاء وتعديل قواعد البيانات وعناصرها برمجياً. في هذا الدرس سألقي الضوء على كيفية انشاء قواعد البيانات Databases والجداول Tables والعمليات المعرفة Stored Procedures و الاستعلامات الجاهزة Views و الفهارس Indexes و القواعد Rules. كما سألقي الضوء على كيفية تعديل الجدول بعد انشاؤه. طبعا سنقوم بكل ماسبق بواسطة اوامر SQL فقط وبذلك يمكنك استخدامها من اي لغة برمجة. واوامر SQL هذه معروفة باسم SQL 92 وهي مجموعة من الاوامر مهمتها التعامل مع عتاصر قواعد البيانات من انشاء وتعديل. انشاء قواعد البيانات لو راجعت الدرس الموجود في هذا الرابط والذي يتحدث حول كيفية انشاء قواعد البيانات والجدوال، لوجدت ان برنامج Enterprise Manager يقوم بطلب بعض البيانات منك قبل انشاء قاعدة البيانات، نفس هذه المتطلبات سنحتاجها في امر SQL الخاص بانشاء قاعدة البيانات، نحتاج الى اسم قاعدة البيانات واسم ملف البيانات وحجمه، وايضا اسم ملف تسجيل العمليات Log File وحجمه. الامر الخاص بانشاء قواعد البيانات هو CREATE DATABASE وهو بسيط نوعا ما، كالتالي: CREATE DATABASE MyDataBase ON PRIMARY (Name = test_data, filename = 'C:\sqlserver\mydb_data.mdf', size = 5, maxsize = 100, filegrowth = 10 %) log ON (name = mydbb_log, filename = 'C:\sqlserver\mydb_log.ldf', size = 3, maxsize = 20, filegrowth = 1) الكلمات التي باللون الازرق هي محجوزة ولاتتغير، فقط الكلمات التي باللون الاسود او الاحمر هي التي قد تحتاج الى تغييرها. في السطر الاول حددنا اسم قاعدة البيانات MyDataBase قم بتغييره الى الاسم الذي تريده، وفي السطر الثاني حددنا اسم name وفي السطر الثالث حددنا مكان ملف حفظ البيانات filename. وفي السطر الرابع حددنا الحجم الابتدائي للملف Size والحجم الاقصى Maxsize ونسبة الزيادة filegrowth . وفي السطر الرابع حددنا اسم ومكان ملف حفظ العمليات، وفي السطر الاخير حددنا حجم ملف العمليات. اذا لم تفهم ماهو المقصود بملف البيانات وملف العمليات والحجم الابتدائي ونسبة الزيادة، يفضل ان تراجع هذا الدرس لتعرف ماهو المقصود بهذه الكلمات. انشاء الجداول انشاء الجداول بواسطة اوامر SQL يكون بواسطة الامر Create Table. لكن قبل تنفيذ الامر لابد ان تختار قاعدة البيانات التي تريد انشاء الجدول داخلها، يمكنك ذلك عن طريق تحديدها داخل امر الربط Connect String في لغة البرمجة، او بواسطة اختيارها بالامر USE. لانشاء الجدول يجب تحديد اسم الجدول، ثم تحديد الحقول مع ذكر نوع كل حقل وحجمه كالتالي: USE myDatabase --لاختيار قاعدة البيانات CREATE TABLE myTable (nID INTEGER IDENTITY PRIMARY KEY, theName VARCHAR(100) NOT NULL, theAddress VARCHAR(255), thePhone CHAR(10) NOT NULL ) في السطر حددنا قاعدة البيانات التي نريد انشاء الجدول فيها. وفي السطر الثاني اخترنا اسم للجدول وهو MyTable يمكنك تغييره كما تشاء، وفي السطر الثاني انشأنا حقل من نوع رقمي INTEGER اسمه nID ، لاحظ اننا استخدمنا كلمة IDENTITY وهذه الكلمة تستخدم لجعل الحقل يتزايد تلقائيا عند اضافة حقل جديد، وكلمة PRIMARY KEY تحدد ان الجدول هو المفتاح ولايسمح بتكرار القيمة في اكثر من حقلين. وفي السطر الثاني الى الاخير قمنا باضافة حقول بعضها من نوع نصي متغير الحجم VARCHAR والاخر من نوع CHAR اي نصي ثابت. لاحظ ان كلمة NOT NULL تستخدم لاخبار SQL Server بان هذا الحقل لايمكن ان يكون فارغ. الان يمكنك البدء في تعبئة الجدول السابق بالبيانات التي تريدها. ولاختباره جرب تنفيذ الامر التالي : INSERT INTO myTable (theName, theAddress, thePhone) VALUES ('halabi','saudi','14125412') بعد التنفيذ، ستجد ان صف كامل من البيانات تم اضافته الى الجدول. انشاء الاجراءات المعرفة Stored Procedures لانشاء الاجراءات المعرفة، تحتاج الى تنفيذ الامر Create Procedure مع تمرير اسم الاجراء المعرف ومحتواه. والاجراءات المعرفة هي اجراءات تحفظ في قاعدة البيانات ثم يمكنك طلبها لاحقا وهي تنفذ في جهة الخادم وبذلك تختصر الوقت. المثال التالي يبين كيفة انشاء اجراء معرف مهمته اضافة صف بيانات في الجدول الذي انشأناه في هذا الدرس : CREATE PROCEDURE AddEntry @name VARCHAR(100), @address VARCHAR(255), @phone CHAR(10) AS INSERT INTO myTable (theName, theAddress, thePhone) VALUES (@name, @address, @phone) GO في السطر الاول طلبنا الامر Create Procedure مع تمرير اسم الاجراء له، وفي السطرين الثاني والثالث عرفنا المتغيرات التي ستمرر الى الاجراء وهي الاسم والعنوان ورقم الهاتف، وفي السطرين الخامس والسادس قمنا يتنفيذ الاجراء والذي هو اضافة صف بيانات الى الجدول. والكلمة GO تعني اننا انتهينا من كتابة الاجراء. انشاء الاستعلامات Views الاستعلام View او كما يعرف في Access بـ Query يفيدك في اختصار الوقت في طلب الاستعلامات فهي تنفذ جهة الخادم وترسل النتائج الى العميل اي انها تشبه الاجراءات المعرفة في طريقة عملها ماعدا انها مخصصة للاستعلام فقط. ولانشائها نطلب الامر Create View كالتالي: CREATE VIEW myView AS SELECT theName,Thephone FROM myTable انشاء الفهارس Indexes كما ذكرت في درسي السابق والموجود في هذا الرابط ، يمكنك انشاء نوعين من الفهارس Clustered و non-Clustered . لهذا عند استخدام امر انشاء الفهارس Create Index يجب تحديد نوع الفهرس. بالاضافة الى تحديد خاصية UNIQUE او هل الفهرس موحد ام لا. وايضا يجب تحديد اسم الجدول والحقول التي تريد تضمينها في الفهرس. المثال التالي يوضح ذلك: CREATE UNIQUE CLUSTERED INDEX myIndex ON myTable(theName,thePhone) المثال السابق ينشئ فهرس اسمه myIndex من نوع Clustered وموحد. والحقول المضمنة في هذا الفهرس هي theName و thePhone.لاحظ انه يمكنك اضافة فهرس واحد من نوع Clustered. بالنسبة لاضافة فهارس من نوع Non-Clustered فقط بدل كلمة CLUSTERED الى NONCLUSTERED كما في المثال التالي: CREATE UNIQUE NONCLUSTERED INDEX myIndex2 ON myTable(theName,thePhone) انشاء القواعد Rules القاعدة Rule هي عنصر ، مهمته التحكم في نسق البيانات المدخلة للتأكد من انها تطابق المطلوب، فمثلا يمكنك انشاء قاعدة Rule تحدد ان رقم الهاتف لابد ان يحتوى على خمسة خانات على الاقل. ولانشاء القواعد Rules نستخدم الامر Create Rule مع تحديد اسم القاعدة Rule و القاعدة نفسها: CREATE RULE myRule AS Len(@thePhone) >= 5 AND Len(@thePhone) <= 10 القاعدة Rule السابقة اذا ربطتها مع الحقل thePhone، ستم اصدار رسالة خطا اذا حاول احدهم اضافة رقم هاتف يحتوى على اقل من خمسة خانات او اكثر من عشرة خانات. تعديل الجداول و/أو حذفها بعد انشائها نعم يمكنك تعديل حقول الجدول وخصائصها بعد انشائها بواسطة الامر ALTER TABLE . الطريقة كالتالي: ALTER TABLE MyTable ALTER COLUMN theName VARCHAR(120) NOT NULL فقط مرر اسم الجدول بعد الامر، ثم مرر اسم الحقل والخصائص الجديدة ليتم تعديلها فور تنفيذك للامر. بالنسبة لحذف الجدول كاملا بعد انشائه، استخدم الامر DROP TABLE مع تمرير اسم الجدول فقط كالتالي: DROP TABLE MyTable لاحظ ان تنفيذك للامر السابق سيحذف الجدول نهائيا . لذلك كن حذرا. كيف استطيع تنفيذ ماسبق من داخل لغة البرمجة ؟ يمكنك تنفيذ اوامر SQL السابقة من اي لغة برمجة تستطيع الاتصال بقاعدة بيانات SQL Serverمثل Visual Basic و ++C و #C و DELPHI وغيرها من اللغات. فقط قم بتنفيذ الامر Execute مع تمرير الباراميترات المطلوبة. واترك الباقي لـ SQL Server. لكن لاحظ، لابد ان تتصل مع قاعدة البيانات قبل تنفيذ الاوامر، وايضا لابد ان يكون المستخدم المتصل له الصلاحيات لاضافة وتعديل قواعد البيانات وعناصرها، ويمكنك اعداد تلك الصلاحيات عن طريق SQL Server بواسطة برنامج Enterprise Manager والذي يأتي مع SQL Server. مقتبس من الرابط الأصلى http://www.dev4arabs.com/ar/sql/ أشرف خليل
×
×
  • اضف...

Important Information