بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
-
Posts
2167 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
55
كل منشورات العضو Moosak
-
اريد المساعدة في فتح التقرير بناء علي السجل المحدد بالنموذج
Moosak replied to حسام محمود's topic in قسم الأكسيس Access
أكتب الأمر هكذا على زر الطباعة : DoCmd.OpenReport "reprint1", acViewPreview, , "[ID] =" & Me.ID -
وجود تغيير فى تنسيق التقرير بعد تصديره لصيغة TXT
Moosak replied to ahmed289's topic in قسم الأكسيس Access
فيه فكرة في بالي لعمل الفواصل 🙂 وهي انشاء استعلام من عمود واحد ويكون مصدره الجدول .. في هذا العمود يتم جمع جميع أعمدة الجدول والفصل بينهم بالفاصلة هكذا : [Field1] & " ," & [Field2] وبعدها يتم تصدير الاستعلام .. والتجربة خير برهان 👌🏼 -
العودة الى الفورم الذي استدعى الفورم عند الاغلاق
Moosak replied to alsihran's topic in قسم الأكسيس Access
معلومة جديدة 😄👌🏼 -
العودة الى الفورم الذي استدعى الفورم عند الاغلاق
Moosak replied to alsihran's topic in قسم الأكسيس Access
تفضل أخي السهران 🙂 تم تعريف متغير عام في موديول يحفظ اسم النموذج الأخير ، ومن ثم يستدعيه مجددا عند إغلاق النموذج frm visbelform.accdb -
أتفق معك أخي @مبرمج سابق😉👌🏻 وصمتك في هذا الحال هو صمت غير محمود 😏 اصدح بما لديك ودعنا ننهل مما علمك الله .
-
وأنا أيضا أشتغل معي صوتين فقط ولا أدري لماذا ! 😅 ولكن لاستخدام الكود .. تضعه في موديول مستقل ثم تنادي الصوت المطلوب بهذه الطريقة ( نفس المثال الذي في الكود الأصلي) : BeepType MB_ICONHAND والمثال عليك
-
أفكار سريعة: تمرير البيانات من التقرير الي النموذج
Moosak replied to أبو عبدالله الحلوانى's topic in قسم الأكسيس Access
شكرا أخي العزيز @أبو عبدالله الحلوانى 🙂 نفعنا الله بك ، وزادك الله من واسع فضله وفتح لك أبواب الخيرات والبركات والأرزاق . 🤲 -
نقل سجل كامل من جدول الى آخر عن طريق النموذج
Moosak replied to Ahmed_J's topic in قسم الأكسيس Access
بعد إذنك أستاذي @عمر ضاحى لدي فكرة تغنيك عن عمل الكثير من الاستعلامات 🙂 هو موديول واحد فيه جملة SQL وتجعل أسماء الجداول عبارة عن متغير كل مرة يتغير حسب الاسم اللي في القائمة المنسدلة . وبعدها يشغل جملة ال SQL حسب المعطيات 🙂 طبعا هذا مع توافق أن جميع أسماء الحقول متشابهة في الجداول الثلاثة .. -
وهذه أخرى : 🙂 Function ConversionHeures(Nombre As Integer) As String If Nombre = 0 Or Nombre = 24 Then ConversionHeures = "Minuit " Exit Function ElseIf Nombre = 12 Then ConversionHeures = "Midi " Exit Function End If Const stEspace As String = " " Dim Varnum, VarnumD, VarnumU, Resultat, Varlet Static Chiffre(1 To 19) Chiffre(1) = "une" Chiffre(2) = "deux" Chiffre(3) = "trois" Chiffre(4) = "quatre" Chiffre(5) = "cinq" Chiffre(6) = "six" Chiffre(7) = "sept" Chiffre(8) = "huit" Chiffre(9) = "neuf" Chiffre(10) = "dix" Chiffre(11) = "onze" Chiffre(12) = "douze" Chiffre(13) = "treize" Chiffre(14) = "quatorze" Chiffre(15) = "quinze" Chiffre(16) = "seize" Chiffre(17) = "dix-sept" Chiffre(18) = "dix-huit" Chiffre(19) = "dix-neuf" Static dizaine(1 To 9, 1 To 5) dizaine(1, 1) = "dix" dizaine(2, 1) = "vingt" dizaine(3, 1) = "trente" dizaine(4, 1) = "quarante" dizaine(5, 1) = "cinquante" dizaine(6, 1) = "soixante" dizaine(7, 1) = "soixante" dizaine(8, 1) = "quatre-vingt" dizaine(9, 1) = "quatre-vingt" Resultat = "" Varnum = Int(Nombre) Mod 1000 If Varnum > 0 Then GoSub centaine_dizaine Resultat = Resultat + " " + Varlet End If Resultat = LTrim(Resultat) Varlet = Right$(Resultat, 4) 'traitement du "s" final pour vingt et cent Select Case Varlet Case "cent", "ingt" Resultat = Resultat + "s" End Select FinTraitement: Resultat = Resultat + stEspace 'renvoi du résultat de la fonction et fin de la fonction ConversionHeures = Replace(Resultat, " ", " ") Exit Function 'sous programme centaine_dizaine: Varlet = "" 'traitement des centaines If Varnum >= 100 Then Varlet = Chiffre(Int(Varnum / 100)) Varnum = Varnum Mod 100 If Varlet = "un" Then Varlet = "cent " Else Varlet = Varlet + " cent " End If End If 'traitement des dizaines If Varnum <= 19 Then If Varnum > 0 Then: Varlet = Varlet + Chiffre(Varnum) Else VarnumD = Int(Varnum / 10) VarnumU = Varnum Mod 10 Varlet = Varlet + dizaine(VarnumD, 1) If VarnumU = 1 And VarnumD < 8 Then Varlet = Varlet + " et " Else If VarnumU <> 0 Or VarnumD = 7 Or VarnumD = 9 Then: Varlet = Varlet & " " End If If VarnumD = 7 Or VarnumD = 9 Then: VarnumU = VarnumU + 10 If VarnumU <> 0 Then: Varlet = Varlet + Chiffre(VarnumU) End If Varlet = Trim(Varlet) Return End Function
-
وجدت لك هذه الدالة أخي هيجو 🙂 Public Function Chiffrelettre(s) Dim a As Variant, gros As Variant a = Array("", "un", "deux", "trois", "quatre", "cinq", "six", "sept", _ "huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", "seize", "dix sept", _ "dix huit", "dix neuf", "vingt", "vingt et un", "vingt deux", "vingt trois", "vingt quatre", _ "vingt cinq", "vingt six", "vingt sept", "vingt huit", "vingt neuf", "trente", "trente et un", _ "trente deux", "trente trois", "trente quatre", "trente cinq", "trente six", "trente sept", _ "trente huit", "trente neuf", "quarante", "quarante et un", "quarante deux", "quarante trois", _ "quarante quatre", "quarante cinq", "quarante six", "quarante sept", "quarante huit", _ "quarante neuf", "cinquante", "cinquante et un", "cinquante deux", "cinquante trois", _ "cinquante quatre", "cinquante cinq", "cinquante six", "cinquante sept", "cinquante huit", _ "cinquante neuf", "soixante", "soixante et un", "soixante deux", "soixante trois", _ "soixante quatre", "soixante cinq", "soixante six", "soixante sept", "soixante huit", _ "soixante neuf", "soixante dix", "soixante et onze", "soixante douze", "soixante treize", _ "soixante quatorze", "soixante quinze", "soixante seize", "soixante dix sept", _ "soixante dix huit", "soixante dix neuf", "quatre-vingts", "quatre-vingt un", _ "quatre-vingt deux", "quatre-vingt trois", "quatre-vingt quatre", "quatre-vingt cinq", _ "quatre-vingt six", "quatre-vingt sept", "quatre-vingt huit", "quatre-vingt neuf", _ "quatre-vingt dix", "quatre-vingt onze", "quatre-vingt douze", "quatre-vingt treize", _ "quatre-vingt quatorze", "quatre-vingt quinze", "quatre-vingt seize", "quatre-vingt dix sept", _ "quatre-vingt dix huit", "quatre-vingt dix neuf") gros = Array("", "billions", "milliards", "millions", "mille", "Dirhams", "billion", _ "milliard", "million", "mille", "Dirhams") sp = Space(1) chaine = "00000000000000" centime = s * 100 - (Int(s) * 100) s = Str(Int(s)): lg = Len(s) - 1: s = Right(s, lg): lg = Len(s) If lg < 15 Then chaine = Mid(chaine, 1, (15 - lg)) Else chaine = "" s = chaine + s 'billions au centaines gp = 1 For k = 1 To 5 x = Mid(s, gp, 1): C = a(Val(x)) x = Mid(s, gp + 1, 2): D = a(Val(x)) If k = 5 Then If t2 <> "" And C & D = "" Then mydz = "Euros" & sp: GoTo fin If t <> "" And C = "" And D = "un" Then mydz = "un Euros" & sp: GoTo fin If t <> "" And t2 = "" And C & D = "" Then mydz = "d'Euros" & sp: GoTo fin If t & C & D = "" Then myct = "": mydz = "": GoTo fin End If If C & D = "" Then GoTo fin If D = "" And C <> "" And C <> "un" Then mydz = C & sp & "cents " & gros(k) & sp: GoTo fin If D = "" And C = "un" Then mydz = "cent " & gros(k) & sp: GoTo fin If D = "un" And C = "" Then myct = IIf(k = 4, gros(k) & sp, "un " & gros(k + 5) & sp): GoTo fin If D <> "" And C = "un" Then mydz = "cent" & sp If D <> "" And C <> "" And C <> "un" Then mydz = C & sp & "cent" + sp myct = D & sp & gros(k) & sp fin: t2 = mydz & myct t = t & mydz & myct mydz = "": myct = "" gp = gp + 3 Next D = a(centime) If t <> "" Then myct = IIf(centime = 1, " centime", " centimes") If t = "" Then myct = IIf(centime = 1, " centime d'Euro", " centimes d'Euro") If centime = 0 Then D = "": myct = "" Chiffrelettre = t & D & myct End Function ولكن تأكد من تعطيل خيار Option Explicit لأن في الكود الكثير من المتغيرات الغير معرفة .. 😅🖐🏼️
-
بعد البحث وجدت لك هذا الكود أخي @alsihran يحضر لك بقية الأصوات 🙂 'API Declaration Private Declare PtrSafe Function MessageBeep& Lib "user32" (ByVal wType As Long) 'Enumeration of the beep types Public Enum BeepTypes MB_OK = &H0& MB_ICONASTERISK = &H40& MB_ICONEXCLAMATION = &H30& MB_ICONHAND = &H10& End Enum Public Function BeepType(lSound As BeepTypes) As Long ' Function to return BeepType = MessageBeep(lSound) End Function Sub TestTheBeep() ' Play the beep BeepType MB_ICONHAND ' BeepType MB_ICONEXCLAMATION ' BeepType MB_ICONASTERISK ' BeepType MB_OK End Sub الدالة الأخيرة تختبر لك الأصوات الأخرى TestTheBeep()
-
أكتب في الكود: Beep
-
أهلا أخي العزيز 🙂 هناك عشرات المواضيع التي تتكلم عن نفس الموضع 🙂 ، أنظر هنا : https://www.officena.net/ib/search/?q=تفقيط&quick=1&type=forums_topic&nodes=89
-
أعجبتني الفكرة 👍🏼😊
-
قسم الأكسيس access ربط متعدد اسماء بأقسام ومُحكمين
Moosak replied to Mohamed ElGanainy's topic in قسم الأكسيس Access
وعليكم السلام ورحمة الله وبركاته 🙂 أهلا وسهلا بك أخي @Mohamed ElGanainy في ربوع منتدانا 🙂 🌹 حبذا أن ترفق ملف الأكسس في موضوعك أخي محمد للتمكن من فهم الفكرة عملياً 🙂 -
وعليكم السلام أخي حاتم .. 🙂 هل تقصد التعديل في هذا الحقل ؟ إن كان كذلك .. فغير مصدره هكذا : =Nz([1].[Form]![A])+Nz([3].[Form]![C])+Nz([2].[Form]![B]) sum.accdb
-
شكرا لك أستاذنا الحبيب @أبو عبدالله الحلوانى 🙂 حل جميل أعجبني .. ولكن المشكلة كما ذكرت أنت أنه متعلق بالكثير من العمليات الحسابية والتنسيقات الشرطية لذلك ستكون عمليات الحساب والفرز مرهقة .. باش مهندس @Eng.Qassim 🙂 زادك الله من واسع علمه .. المشكلة أن الحقول ليست حسابية وإنما يعبئها المستخدم 😅 معلمنا الكبير @jjafferr 🙂 فعلا أنا اقتنعت بترك الحقول رقمية وأن أكتب النسبة هكذا مثلا 100 أو 75 ... بمعنى 100% و 75% واشتغلت الحسابات بشكل جيد ولو أنا تظهر بدون علامة ال %. والآن حولت الحقول لمزدوج Double كما أشرت ولكن كيف يتم التفريق بين الأرقام والنسب من خلال عملية الإدخال في رأيك ؟ بالمناسبة هناك حقل اسمه نوع المؤشر .. وضعته لكي يفرق المستخدم بين النسب والأرقام .. وأنوي أن أستخدمه لاحقا في بعض العمليات الحسابية والتقارير 🙂 وشكرا لمساندتكم ومروركم جميعا ☺️
-
يمكنك وضع الدالة في مصدر بيانات مربع نص في نموذج بنفس الصياغة .. ويمكنك وضعها في محرر الأكواد كذلك ولكن ستغير ال (؛) إلى (,) ، وتنتبه لتغيير صيغة المتغير في معايير الدالة هكذا (مثلا) : DCount("[ID]","[Table1]","[اسم المدرسة او القسم] ='" & Me.اسم_المدرسة_او_القسم & "' And [ID] <=" & Me.ID & " ") ملاحظة : يحبذ استخدام اسماء الحقول باللغة الإنجليزية لتجنب الكثير من الأخطاء 🙂
-
كنت مستمتع جدا معك أخي أبو هالة .. لك تحياتي 😊
-
السلام عليكم أيها الأفذاذ 🙂 لدي سؤال أكسسي استعصى علي 😅 عندي جدول لمتابعة إنجاز أنشطة معينة .. ولكل نشاط مؤشرات لقياس إنجازه ...... المهم أنه تختلف نوعية المؤشرات لكل نشاط فبعضها يقاس إنجازه بالأرقام ، وبعضها تقاس بالنسبة المئوية .. مثال : النشاط المؤشر المستهدف الإنجاز الفعلي عمل دورات أكسس متقدم كم عدد الدورات المنجزة؟ 5 3 تطبيق نظام العهدة الجديد نسبة تطبيق النظام 80% 60% وهذه لقطة من البرنامج الفعلي : السؤال هو : كيف أجعل حقول الأرقام [ المستهدف السنوي ] يكون تنسيقها رقمي في المؤشرات الرقمية ؟ وتكون نسبة عند المؤشرات النسبية ؟ المرفق : Number Fields.accdb
-
تفضل أخي أبو هالة : قمت بعمل استعلام Query1 فيه جميع حقول الجدول ، ثم أضفت حقل اسمه Tsalsul ، واستخدمت كاتب الدوال لكتابة دالة DCount كما يلي .. فكانت النتيجة كما ترى 🙂 : يمكنك أن تقارن النتيجة من خلال عمود تسلسل السابق والعمود الجديد Tsalsul لترى التطابق بين النتيجتين 🙂 وهذه صياغة الدالة : DCount("[ID]";"[Table1]";"[اسم المدرسة او القسم] ='" & [اسم المدرسة او القسم] & "' And [ID] <=" & [ID] & " ") تفضل الملف : 111111111111.accdb
-
ضع ملفك أخي أبو هالة . يختلف صياغة الدالة حسب موقع استخدامك لها .. 🙂
-
هذه طريقة كتابة الدالة لو كان اسم المدرسة موجود كحقل في النموذج ( اختر اسم حقل المدرسة بدل ال First Name ) حسب المثال الذي في ملفك الأكسل : DCount("[ID]","[SampleTable]","[First Name] ='"& [Forms]![SampleForm]![TxtBox1] &"' And [ID] <="& Me.ID &" ") طبعا برعاية الكاتب الذكي لدوال المجال 😊👌🏼 مثل ما تلاحظ وضعت شرطين في الدالة : 1- أن يكون اسم المدرسة هو الاسم الموجود في مربع النص . 2- الشرط الثاني أن يكون ال ID أصغر من أو يساوي ال ID الموجود في السجل الحالي.
-
أنظر هنا أخي أبو هالة 🙂☝️ ولتسهيل العمل على دالة DCOUNT استخدم هذه الأداة الجميلة 😄👇