بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|

امير عاطف
المشرفين السابقين-
Posts
760 -
تاريخ الانضمام
-
تاريخ اخر زياره
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو امير عاطف
-
حذف السجلات الأولى اذاوصل عدد السجلات الى عدد محدد
امير عاطف replied to أبو وليد's topic in قسم الأكسيس Access
وها هو مثال لذلك delrec.zip -
حذف السجلات الأولى اذاوصل عدد السجلات الى عدد محدد
امير عاطف replied to أبو وليد's topic in قسم الأكسيس Access
يبدو انك لم تنسخ الدالة السابقة بشكل سليم .... بقم بعمل نسخ ولصق للدالة كما هي منعاً للخطأ وبعد ذلك كل ما عليك هو استبدال اسم الجدول الذي به البيانات لديك بدلاً من TableName واستبدال اسم حقل المدينه بدلاً من City ولا مشكله اذا كان اسم حقل المدينه بالعربي لكن ضعه بين قوسين مربعين هكذا [] -
طريقة اخرى لتشغيل نفس الاداه السابقة: وللوصول اليها افتح النموذج في طريقة عرض التصميم ثم اذهب الى شريط القوائم واضغط على Insert>>>ActiveX Control... وبعد ذلك ابحث عن Shockwave Flash Object داخل القائمة التي امامك ثم اضغط Ok بعد ذلك قم بفتح خصائص الاداة واذهب الى الخاصيه Customاضغط عليها لفتحها سوف يظهر لك مربع تضع به موقع ملف الفلاش بجهازك الذي بامتداد swf وتكتب مسار ملف الفلاش بجانب Movie URL وبعد ذلك قم بوضع علامة يجانب التشيك بوكس المكتوب بجانبه Embed Movie بعد ذلك قم بعرض النموذج لترى العرض
-
كيفية نقل بيانات الى نسخة احدث من البرنامج
امير عاطف replied to hassaan100's topic in قسم الأكسيس Access
ماذا تعني بذلك ؟ على وجه العموم .. يمكنك عمل تصدير للبيانات الى الاكسيل من النسخة القديمة وبعد ذلك استيرادها في النسخة الجديدة -
اعتقد انه من الافضل لا تستخدم مربع نص Text Box وقم بوضع العبارة بالكامل داخل مربع نص واحد بدلاً من وضع اكثر من مربع نص بالتقرير وتكون الصيغة مثلاً .... هكذا ="نشهد نحن شركة اوفيسينا بأن" & " " & [حقل اسم الموظف] & " " & "يعمل لدينا براتب"& " " & [حقل راتب الموظف] & " " & "ومازال على رأس عملة"
-
الفكرة ممتازة يجزاك الله خير على هذه الفائدة :d
-
كود لإاغلاق جميع النماذج وفتح نموذج محدد
امير عاطف replied to رحال العمر's topic in قسم الأكسيس Access
اذا اردت فتح تقرير مع اغلاق كل النماذج المفتوحة بقاعدة البيانات واعادة فتح هذه النماذج بعد اغلاق التقرير قم بوضع هاتين الدالتين بوحدة نمطية عامة : الدالة الأولى : Public Function CloseForms() Dim objname As String Dim obj As AccessObject, dbs As Object Set dbs = Application.CurrentProject For Each obj In dbs.AllForms If obj.IsLoaded = True Then Dim db As DAO.Database Dim rst As DAO.Recordset Dim tbltest As DAO.TableDef Dim fldtest As DAO.Field Set db = CurrentDb Set tbltest = db.CreateTableDef("tblname") Set fldtest = tbltest.CreateField("formname", dbText) fldtest.Size = 50 tbltest.Fields.Append fldtest db.TableDefs.Append tbltest Set rst = db.OpenRecordset("tblname") While Forms.Count > 0 rst.AddNew objname = obj.Properties.Application.CurrentObjectName rst!formname = objname rst.Update obj.Properties.Application.DoCmd.Close Wend rst.Close db.Close End If Next obj End Function الدالة الثانية : Public Function OpenForms() Dim db As DAO.Database Dim rst As DAO.Recordset Set db = CurrentDb Set rst = db.OpenRecordset("tblname") rst.MoveFirst Do Until rst.EOF DoCmd.OpenForm rst!formname rst.MoveNext Loop rst.Close db.Close DoCmd.DeleteObject acTable, "tblname" End Function وقم باستداعاء الدالة الأولى عند حدث الفتح للتقرير الذي تريد لكي تقوم باغلاق جميع النماذج المفتوحه وحفظ اسماء هذه النماذج بجدول مؤقت . وقم باستدعاء الدالة الثانية عند حدث اغلاق نفس التقرير لكي تقوم بفتح النماذج التي كانت مفتوحة قبل فتح التقرير. مع خالص التحية :d -
فكرة الكود قائمة على انه اذا كانت قيمة الخلية e10 غير فارغة وايضاً لا يوجد بها قيمة صفريه فيتم اجراء المعادلة في الخلية g14 = E9 - E10 اما اذا كانت قيمة الخلية e10 قيمة صفريه او قيمة فارغة فلا يتم اجراء المعادلة وكأنها غير متواجدة
-
الأخ abdulwhab : قم بفتح محرر ال VBE عن طريق الضغط على مفتاحي ALT + F11 بعد ذلك سوف تجد على يمينك الكائنات المتاحة بدفتر العمل ..ثم قم بعمل نقرة مزدوجة على الكائن Sheet1(ورقة1) بعد ذلك قم بلصق الكود التالي .... وان شاء الله كل شيء بعد ذلك يكون على ما يرام Private Sub Worksheet_Change(ByVal Target As Range) If IsNull(Me.Range("e10")) Or Me.Range("e10") = 0 Then Exit Sub Else Me.Range("g14").Value = Me.Range("e9") - Me.Range("e10") End If End Sub
-
لو سمحت اخي عبدالله تضع الاداة Microsoft Winsock بملف مرفق
-
هذا الكود يقوم بذلك Private Sub Workbook_Open() 'هذا السطر لإخفاء شاشة الاكسيل Application.Visible = False 'هنا تضع الأوامر الذي تريد تشغيلها سواء ماكروات أو اي شيء 'هذا السطر لاغلاق ملف الاكسيل مع الحفظ Workbooks("FileName.XLS").Close SaveChanges:=True End Sub
-
هناك سؤال مشابه لذلك ويفي بالغرض بقسم الخلاصات هنــــــــــــــــــــــــــــــــــــــا
-
كيقية عمل التفقيط في قاعدة البيانات
امير عاطف replied to officenamember's topic in قسم الأكسيس Access
عفواً قمت باضافة المثال الذي نجح معي بمشاركه أخرى وذلك خطأ مني :SHY: وقمت بنقله هنا الان هنـــــــــــــــــــــــــــــــــــــــــــــا -
كيقية عمل التفقيط في قاعدة البيانات
امير عاطف replied to officenamember's topic in قسم الأكسيس Access
الاخ officenamember انت ليس لديك مشكلة بالتفقيط مثل عنوان السؤال !!!!! والمشكله موضحه في العبارة المقتبسه بأعلى كل ما عليك هو وضع احدى الدوال الذي اشار اليها اخي الفاضل محمد طاهر في وحدة نمطيه بدلاً من الوحدة النمطيه التي لديك حيث انها لا تعمل .... وبعد ذلك قم بوضع الاكواد الموضحة بأعلى كما هي في الاحداث الخاصة بها .... لكن لا تنسى استدعاء دالة التفقيط داخل الكود .... انظر بالكود بأعلى لترى اين يتم وضع استدعاء دالة التفقيط ولو قمت بالتركييز في الاكواد تجد انه عند اغلاق النموذج لا يتم وضع التفقيط ويتم الغاءه ويوضع التفقيط في حالة فتح النموذج والطباعة فقط حيث قمت بتجربة ذلك على مثالك ونجحت 100% -
حذف السجلات الأولى اذاوصل عدد السجلات الى عدد محدد
امير عاطف replied to أبو وليد's topic in قسم الأكسيس Access
ااسف على التأخير اخي ابو وليد ... ولكن حتى نصل لحل مناسب هذه الدالة تفي بالمطلوب كما تريد بالضبط واذا زاد عدد سجلات اي مدينه عن عشرون سوف تقوم الداله بالغاء السجلات الاولى الزائدة عن العشرون سجل وذلك بالطبع لكل مدينة على حدة : Public Function delfirstrec() On Error Resume Next Dim db As DAO.Database Dim rst As DAO.Recordset Dim rsttransaction As DAO.Recordset Dim rst_temp As DAO.Recordset Dim tblofficena As DAO.TableDef Dim qryOfficena As DAO.QueryDef Dim fldtest As DAO.Field Set db = CurrentDb Set rst = db.OpenRecordset("TableName", dbOpenTable) rst.MoveFirst Do Until rst.EOF Set tblofficena = db.CreateTableDef("tbltest") Set fldtest = tblofficena.CreateField("city_temp", dbText) fldtest.Size = 50 tblofficena.Fields.Append fldtest db.TableDefs.Append tblofficena Set rst_temp = db.OpenRecordset("tbltest", dbOpenTable) rst_temp.AddNew rst_temp!city_temp = rst!city rst_temp.Update rst_temp.Close Set qryOfficena = db.CreateQueryDef("Officena", _ "SELECT city FROM TableName where city = dlookup('[city_temp]','[tbltest]')") Set rsttransaction = db.OpenRecordset("Officena") Do Until DCount("[city]", "[officena]") <= 20 rsttransaction.MoveFirst rsttransaction.Delete Loop rsttransaction.Close rst.MoveNext db.TableDefs.Delete ("tbltest") db.QueryDefs.Delete ("officena") Loop rst.Close db.Close MsgBox "تم الغاء السجلات اللازمة", vbOKOnly, "فريق اوفيسنا" End Function كل ما عليك هو استبدال اسم الجدول الذي به البيانات لديك بدلاً من TableName واستبدال اسم حقل المدينه بدلاً من City -
اولاً بالنسبه للخطأ الذي يظهر "عدم توافق نوع البيانات في المعايير فما الحل" فهذا بسبب انه وجد قيمة نصيه في وسط الأرقام ويمكن معالجة ذلك عن طريق استبدال القيمة النصيه الي تم استخدامها مع الداله iif برقم صفر قم بعمل نموذج جديد مصدر السجل الخاص به هو جدول الطلاب tblstudents وبعد ذلك قم بوضع مربع نص وضع به المعادلة التالية =100-DSum("[عدد الدرجات المخصمة]";"qry2";"student_id = forms!formname!student_id") هنا بالطبع استخدمنا الدالة Dsum لا تنسى مراجعة شرح الدوال بقسم خلاصة مشاركات الأكسس :WU: الملف المرفق absense.zip
-
انا لم اقم بالشرح كل ما فعلته هو نقل المشاركة في موضوع خاص بها نظراً لأهميتها الذي يستحق كل الشكر والتقدير على هذا الجهد هو اخينا الكريم عبد الله فتحي وله هذه :f4:
-
تأكد من وضع الأقواس المزدوجة " " حول اسم دفتر العمل وها هو مثلاً كود لدفتر عمل اسمه Book1 Workbooks("BOOK1.XLS").RefreshAll
-
كود التحقق من الإتصال بالإنترنت للاخينا الفاضل عبدالله فتحي هنـــــــــــــــــــــــــــــا
-
هذا هو كود التحقق من الاتصال بالانترنت للخ الكريم عبد الله فتحي جزاه الله كل خير بسم الله الرحمن الرحيم تحياتي لك أخي أمير على هذا المجهود الرائع .. هذا الكود للتأكد من حالة الاتصال بالإنترنت، وأنا متأكد أنه توجد أكواد أصغر من ذلك بمراحل، ولكن هذا هو المتاح حالياً: 1. بداية قم بإنشاء موديول جديد، وضع فيه الكود التالي كما هو: Public Declare Function RasEnumConnections Lib "RasApi32.dll" Alias "RasEnumConnectionsA" (lpRasCon As Any, lpcb As Long, lpcConnections As Long) As Long Public Declare Function RasGetConnectStatus Lib "RasApi32.dll" Alias "RasGetConnectStatusA" (ByVal hRasCon As Long, lpStatus As Any) As Long Public Const RAS95_MaxEntryName = 256 Public Const RAS95_MaxDeviceType = 16 Public Const RAS95_MaxDeviceName = 32 Public Type RASCONN95 dwSize As Long hRasCon As Long szEntryName(RAS95_MaxEntryName) As Byte szDeviceType(RAS95_MaxDeviceType) As Byte szDeviceName(RAS95_MaxDeviceName) As Byte End Type Public Type RASCONNSTATUS95 dwSize As Long RasConnState As Long dwError As Long szDeviceType(RAS95_MaxDeviceType) As Byte szDeviceName(RAS95_MaxDeviceName) As Byte End Type ثم بعد ذلك اذهب إلى كود الفورم وقم بوضع الكود التالي في أعلى الفورم وفي قسم التصريحات العامة General_Declartion Public Function IsConnected() As Boolean Dim TRasCon(255) As RASCONN95 Dim lg As Long Dim lpcon As Long Dim RetVal As Long Dim Tstatus As RASCONNSTATUS95 TRasCon(0).dwSize = 412 lg = 256 * TRasCon(0).dwSize RetVal = RasEnumConnections(TRasCon(0), lg, lpcon) If RetVal <> 0 Then MsgBox "ERROR" Exit Function End If Tstatus.dwSize = 160 RetVal = RasGetConnectStatus(TRasCon(0).hRasCon, Tstatus) If Tstatus.RasConnState = &H2000 Then IsConnected = True Else IsConnected = False End If End Function بعد أن انتهينا مما سبق الآن نصل إلى النقطة الأخيرة، لكي نتأكد من حالة الاتصال ضع الكود التالي في حدث الضغط على الزر، ويقوم الكود التالي بإظهار رسالة تبين حالة الاتصال، ويمكنك طبعاً تغيير الأمر بما تريده، سواء فتح ملف أكسل أو غيره ... If IsConnected() = True Then MsgBox ("الجهاز متصل بالانترنت") Else MsgBox ("الجهاز غير متصل بالانترنت") End If في حالة حدثت أي مشاكل أو سوء في الفهم يمكنك السؤال أخي العزيز أبو وليد .. ولقد أرفقت ملف يحتوي على نموذج فقط يمكنك مشاهدته ... يوجد كود آخر أقل من الكود السابق ولكنه سيحتاج إلى استخدام الأداة Winsock وأعتقد أنك لا تريد استخدام أدوات ... Check.rar
-
تم نقل هذه المشاركة لأخينا الفاضل عبد الله فتحي جزاه الله كل خير
-
المسألة ليست استعاضة الدوال بالاستعلامات ولكن هناك اكثر من فكرة لعمل ذلك واعتقد ان هناك افكار افضل لعمل ذلك ... ولو قمت بقراءة الجزء الذي تم انجازه بدورة الأكسس حتى الان والجزء الخاص بالدوال بقسم خلاصة مشاركات الاكسس بتمعن سوف تجد نفسك تجد افكار اخرى يمكن العمل من خلالها :d بالنسبة للاستعلام qry1 فهو الذي يحسب عدد الجزاءات لكل طالب عن طريق الدالة Count راجع الاستعلام وتمعن به جيداً وبعد ذلك تم استنتاج الاستعلام المسمى qry2 من هذا الاستعلام وتم استخدام الدالة iif لحساب الدرجات المخصمة من كل طالب اعتماداً على الاستعلام qry1 اما بالنسبه لحساب درجة المواظبه فيمكنك عمل ذلك بالطبع بدون اضافة حقل بجانب كل طالب لكتابة النهاية العظمى للمواظبة وذلك باضافة حقل بالاستعلام المسمى qry2 ووضع هذه القيمة بداخلة درجة المواظبة: 100-[عدد الدرجات المخصمة]
-
معرفة رصيد الصنف من كل عملية شراء بعد البيع
امير عاطف replied to أبو وليد's topic in قسم الأكسيس Access
اذا قم بعمل استعلام حذف لهذه السجلات -
بالنسبة لسؤال الأول: للتحديث دفتر العمل Workbook بكل اوراق العمل الذي يحتويها ضع هذا الكود في الماكرو الذي تريد او كحدث لزر امر (داخل ال VBA) Workbooks(WorkbokName).RefreshAll
-
معرفة رصيد الصنف من كل عملية شراء بعد البيع
امير عاطف replied to أبو وليد's topic in قسم الأكسيس Access
اخي ابو وليد: من غير المنطقي ان تقوم بحذف اي عملية شراء حتم يتم توفر لديك معلومات عن هذه العملية بعد ذلك