-
Posts
540 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
11
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو SEMO.Pa3x
-
طلب قاعدة بيانات فواتير مصروفات وايرادات _ عنوان معدل
SEMO.Pa3x replied to RaheemEGY's topic in قسم الأكسيس Access
عليكم السلام, يرجى مراجعة قوانين القسم قبل كتابة موضوع جديد. ممنوعات : تعرض المشاركة للالغاء الفوري 3. يفضل عدم طلب عمل برنامج فهذا المنتدي للتبادل العلمي و ليس للبحث عن البرامج الجاهزة ، و لكن ابدأ بالعمل و اطرح المشاكل التي تواجهك ( بعد البحث فى المنتدي منعا للتكرار ). و ما سبق طرحه من برامج يمكنك الوصول اليها باستخدام البحث ، و يفضل ألا تخصص مشاركة لهذا الغرض و إن كان ذلك متاح لكن ممنوع الالحاح فى ذلك . -
اضهار كلمة معينه في جميع الحقول بناً على قيمة حقل معين
SEMO.Pa3x replied to asdewq's topic in قسم الأكسيس Access
لم افهم طلبك، قم بشرح طلبك بواسطة صورة. -
صلاحيات المستخدمين للدخول علي نماذج قاعدة البيانات
SEMO.Pa3x replied to الحلبي's topic in قسم الأكسيس Access
Dim ReadUsername As String ReadUsername = DLookup("[UsernameLogin]", "AutoSave", "ID =1") Dim ReadFlags As String ReadFlags = DLookup("[frm_Input_Salaries]", "Login", "Username ='" & ReadUsername & "'") If ReadFlags = True Then DoCmd.OpenForm "frm_Input_Salaries", acNormal Else MsgBox "...ليست لديك صلاحيات كافية لإستخدام هذا الاجراء", vbCritical, "عملية خاطئة" End If تضع هذا الكود في الواجهة الرئيسية في الزر المسؤول عن عرض النموذج الذي تريده. اذا كان المستخدم يمتلك الصلاحية التي اسمها frm_Input_Salaries التي تكون قيمتها True سيفتح له النموذج frm_Input_Salaries والا فسوف تظهر له رسالة تمنعه من فتح النموذج بالنسبة للجدول AutoSave عبارة عن جدول يتم تسجيل اسم المستخدم الذي قام بالدخول للقاعدة. -
عليكم السلام. لماذا تستخدم دالة ShellExecuteA في تشغيل ملفات الصوت ؟؟ وظيفة الدالة الاساسية ليست لتشغيل ملفات الصوت. بل لتشغيل البرامج التنفيذية والتي بدورها ستقوم بتشغيل اما صوت او فيديو او صورة حسب البراميتر الممرر لها,, لتشغيل ملفات الصوت MP3 , WAV في الاكسس وبإستخدام API راجع موضوعي هنا، على العموم لحل مُشكلتك في دالة ShellExecuteA تحتاج لقتل العملية المسؤولة عن تشغيل الصوت كان يكون برنامج VLC او Windows Media Player ... الخ Private Sub DoStop_Click() Dim oServ As Object Dim cProc As Variant Dim oProc As Object Set oServ = GetObject("winmgmts:") Set cProc = oServ.ExecQuery("Select * from Win32_Process") For Each oProc In cProc If oProc.Name = "Music.UI.exe" Or oProc.Name = "wmplayer.exe" Then MsgBox "تم ايقاف الصوت بنجاح" oProc.Terminate End If Next End Sub تفضل قاعدة البيانات الخاصة بك بعد التعديل حسنين api_sounds_SEMO.rar
-
قم بعمل مجلد جديد وضعه بجانب قاعدة البيانات وقم باعطائه الاسم Sounds_Folder CurrentProject.Path & "\" & "Sounds_Folder" & "\" & "Name.mp3" هذا الكود سيكون مسؤولاً عن جلب مسار الصوت لمختلف الاجهزة, فقط قم بتغيير الاسم Name.mp3 الى اسم ملف الصوت الخاص بك.
-
اهلاً معلمي الغالي, تلبية لطلبك الكريم قمت بجمع الطريقتين بملف واحد اذا وضعت مسار ملف صوت MP3 او WAV فهو سيقوم بفلترة المدخلات وتشغيلها حسب صيغتها. Option Compare Database Private Declare PtrSafe Function mciSendString Lib "winmm.dll" Alias _ "mciSendStringA" (ByVal lpstrCommand As String, ByVal _ lpstrReturnString As Any, ByVal uReturnLength As Long, ByVal _ hwndCallback As Long) As Long Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" _ (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal lBuffer As Long) As Long Private Declare PtrSafe Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long Const SND_ALIAS_SYSTEMASTERISK As String = "SystemAsterisk" Const SND_ALIAS_SYSTEMDEFAULT As String = "SystemDefault" Const SND_ALIAS_SYSTEMEXCLAMATION As String = "SystemExclamation" Const SND_ALIAS_SYSTEMEXIT As String = "SystemExit" Const SND_ALIAS_SYSTEMHAND As String = "SystemHand" Const SND_ALIAS_SYSTEMQUESTION As String = "SystemQuestion" Const SND_ALIAS_SYSTEMSTART As String = "SystemStart" Const SND_ALIAS_SYSTEMWELCOME As String = "SystemWelcome" Const SND_ALIAS_YouGotMail As String = "MailBeep" ' playsound Params Const SND_LOOP = &H8 Const SND_ALIAS = &H10000 Const SND_NODEFAULT = &H2 ' silence if no sound associated with event Const SND_ASYNC = &H1 ' play async (don't freeze program while sound is playing) Private sMusicFile As String Dim Play, a Public Sub Sound_MP3(ByVal File$) sMusicFile = GetShortPath(File) Play = mciSendString("play " & sMusicFile, 0&, 0, 0) If Play <> 0 Then End If End Sub Public Sub Stop_MP3(Optional ByVal FullFile$) Play = mciSendString("close " & sMusicFile, 0&, 0, 0) End Sub Public Function GetShortPath(ByVal strFileName As String) As String Dim lngRes As Long, strPath As String strPath = String$(165, 0) lngRes = GetShortPathName(strFileName, strPath, 164) GetShortPath = Left$(strPath, lngRes) End Function Private Sub DoStartSound_Click() If IsNull(SoundPath) Then MsgBox "! áã ÊÞã ÈæÖÚ ãÓÇÑ ãáÝ ÇáÕæÊ", vbCritical, "ÚãáíÉ ÎÇØÆÉ" Exit Sub End If Dim Fix_Path As String Fix_Path = Mid(SoundPath, 2) Dim Rev_Extension As String Rev_Extension = FExtOnly(Fix_Path) If IsFile(Fix_Path) = False Then MsgBox "! áã íÊã ÇáÚËæÑ Úáì ÇáãáÝ", vbCritical, "ÚãáíÉ ÎÇØÆÉ" Exit Sub End If Select Case Rev_Extension Case "mp3" Sound_MP3 (Fix_Path) Case "wav" PlaySound Fix_Path, vbNull, SND_ALIAS Or SND_NODEFAULT Or SND_ASYNC Or SND_LOOP End Select Debug.Print Fix_Path End Sub Function IsFile(ByVal fName As String) As Boolean On Error Resume Next IsFile = ((GetAttr(fName) And vbDirectory) <> vbDirectory) End Function Function FExtOnly( _ ByVal filename As String) _ As String Dim nopath As String Dim dpos As Long Dim spos As Long spos = InStrRev(filename, "\") If spos > 0 Then nopath = Mid(filename, spos + 1) Else nopath = filename End If dpos = InStrRev(nopath, ".") If dpos > 0 Then FExtOnly = Mid(nopath, dpos + 1) Else FExtOnly = "" End If End Function Private Sub DoStopSound_Click() Dim Fix_Path As String Fix_Path = Mid(SoundPath, 2) Dim Rev_Extension As String Rev_Extension = FExtOnly(Fix_Path) Select Case Rev_Extension Case "mp3" Stop_MP3 (Fix_Path) Case "wav" PlaySound vbNullString, ByVal 0&, SND_NODEFAULT End Select End Sub حسنين MP3_WAV_Player_SEMO_Pa3x.accdb
-
اذهب الى ملف الصوت اضغط عليه كلك يمين ثم اختر اخر خيار "خصائص" او "Properties" ثم اذهب الى النافذة "الامان" او "Security" وانسخ مسار ملف الصوت
-
السلام عليكم ورحمة الله وبركاته. كنت قد طرحت سابقا موضوع لتشغيل ملفات الصوت في الاكسس وكان الموضوع يتناول تشغيل الملفات التي تكون بصيغة WAV حصرا رابط الموضوع: درس اليوم هو حول تشغيل ملفات الصوت بصيغة MP3 في الاكسس. الدوال المستخدمة: mciSendStringA GetShortPathNameA بعض الحقوق لأصحابها اتمنى منكم الدعاء لي ولوالدي. حسنين Mp3Sounds_SEMO_Pa3x.accdb
-
لا داعي للتحويل يمكنك تشغيل ملف صوت mp3 بإستخدام الدالة mciSendStringA تصريح الدالة: Private Declare PtrSafe Function mciSendString Lib "winmm.dll" Alias _ "mciSendStringA" (ByVal lpstrCommand As String, ByVal _ lpstrReturnString As Any, ByVal uReturnLength As Long, ByVal _ hwndCallback As Long) As Long تفضل سويتلك مشروع بسيط ان شاء الله ينفعك Mp3Sounds_SEMO_Pa3x.accdb
-
كيف أستخرج الارقام من النصوص في ملف الأكسس
SEMO.Pa3x replied to Mariam.m's topic in قسم الأكسيس Access
+1 -
اكيد وانا ايضا افضل الـ winAPI لانها الاسرع تنفيذا بالذاكرة.
-
طريقة اخرى لتشغيل الصوت بدون winAPI Call Shell("C:\windows\Sndrec32.exe /play ""C:\My Documents\alarm2.wav"" /close ", 0) يتم تحديد مكان الصوت واسمه داخل الجهاز كما هو مبين في هذا المثال "C:\My Documents\alarm2.wav" مكان الصوت في المثال هذا هو C:\My Documents اسم الصوت في المثال alarm2.wav نوع الصوت wav للأمانة منقول من الاخ فهد الدوسري
-
شكرا لسعة صدرك واعتذر منك مرة اخرى.
-
اعتذر ان كان ردي جارح بالنسبة الك، لان بصراحة ردك كان استفزازي جدا بالنسبة لي لان خلال 12 سنة قضيتها في معظم لغات البرمجة لم اسمع عن كود تكون له افضلية عن غيره لانه يوضع برأس الصفحة او في ( Module ) او دوال اثنان يختلفان في اسماء البراميترات لكن تبقى لهما نفس الوظيفة فقط الاختلاف بالمسميات. ان وضعت الكود في ( Module ) او في رأس الصفحة او في نهاية الصفحة.. سيعمل لانك تتعامل مع winAPI والذي يحدد ذلك طبيعة الدالة ( Private ) او ( Public ). اما القيمة ( Boolean ) لكي ترجعلك قيم منطقية في حال تشغيل الصوت أو لا.
-
جرب المرفق بعد التعديل. ملاحظة: لا تهتم لشكل الكود ما زال يعمل بنجاح وبدون اخطاء. تحويل من SQL الى VBA العكس.mdb
-
لتحويل او عرض استعلام اكسس الى SQL لا تحتاج الى برامج او غيرها.. يمكنك عرض ذلك من الاكسس مباشرة قم بعمل الاستعلام الذي يناسبك ثم اختر من الاعلى اضغط على السهم الصغير لكي تفتح لك قائمة منسدلة اختر منها طريقة عرض SQL النتيجة: يظهر لك الاستعلام على شكل SQL حسنين
-
درس بعد جهد كبير تحويل التاريخ الميلادي الى هجري بدقة كبيرة
SEMO.Pa3x replied to SEMO.Pa3x's topic in قسم الأكسيس Access
شكرا لك لسعة صدرك. -
درس بعد جهد كبير تحويل التاريخ الميلادي الى هجري بدقة كبيرة
SEMO.Pa3x replied to SEMO.Pa3x's topic in قسم الأكسيس Access
السبب لانني استخدمت الدالة ( CreateProcess ) وهذه يعتبرها الانتي فايروس تحرك مشبوه في النظام لانها تقوم بأنشاء عملية جديدة. اكتفي فقط بتعطيل الانتي فايروس وستعمل قاعدة البيانات بشكل صحيح وبدون اخطاء -
درس بعد جهد كبير تحويل التاريخ الميلادي الى هجري بدقة كبيرة
SEMO.Pa3x replied to SEMO.Pa3x's topic in قسم الأكسيس Access
عطل الانتي فايروس وجرب -
درس بعد جهد كبير تحويل التاريخ الميلادي الى هجري بدقة كبيرة
SEMO.Pa3x replied to SEMO.Pa3x's topic in قسم الأكسيس Access
هل لديك انتي فايروس ( معالج فيروسات ) ؟ -
يجب تعريف المتغير img والا ستظهر رسالة خطأ Dim img As Object قبل السطر الاول بحيث يصبح هكذا.. Dim img As Object Set img = CreateObject("wia.commondialog").ShowAcquireImage.SaveFile(CurrentProject.Path & "\" & InputBox("ÇÏÎá ÇÓã ÇáÕæÑÉ") & ".jpg")
-
درس بعد جهد كبير تحويل التاريخ الميلادي الى هجري بدقة كبيرة
SEMO.Pa3x replied to SEMO.Pa3x's topic in قسم الأكسيس Access
ارفق لي صورة للخطأ -
درس بعد جهد كبير تحويل التاريخ الميلادي الى هجري بدقة كبيرة
SEMO.Pa3x replied to SEMO.Pa3x's topic in قسم الأكسيس Access
تم تعديل خطأ بسيط كان في الموضوع. -
السلام عليكم. بعد جهد كبير وسهر ليالي كثيرة, وكلها محاولات بائت بالفشل لربط الـ Visual Studio .NET وقراءة البيانات بالاكسس وكانت متمثلة بمكتبة dll او tlb للاسف كانت هنالك عوائق ومنها لكي يتم استخدام مكتبة من نوع tlb كان يجب اعطائها صلاحيات مسؤول لكي تتمكن من تسجيل هذه المكتبة في HKEY_CLASSES_ROOT في الريجستري. وتستخدمها على شكل References وفي حال استخدام مكتبة من نوع dll كان يتطلب استخدام دالة LoadLibraryA وهذه سيعتبرها الانتي فايروس كـ ملف مريب خصوصا لانها تقوم بتحميل المكتبة في الذاكرة وبدون توقيع رقمي..الخ اليوم قمت ببرمجة شيء مختلف ومميز عبارة عن تطبيق صغير بلغة NET. يتم تمرير البيانات من الاكسس لهذه التطبيق لكي يقوم بعدها الاكسس باقتناص المخرجات من التطبيق بواسطة الي remote shell ثم عرضها في الاكسس مرة اخرى وكان التطبيق على تحويل التاريخ الميلادي الى هجري لكن هذه المرة بصورة ادق وافضل. كما نعرف جميعنا ان التاريخ الهجري يكون غير مضبوط زيادة يوم او يومين او نقصان يوم او يومين او لا يوجد زيادة او نقصان لذلك قمت بوضع ComboBox لهذا الأمر.. اكتب التاريخ الميلادي في الحقل الاول ثم اكتب فارق الايام ان وجدت زيادة او نقصان او اتركها صفر كما هي او لم يوجد تغيير السورس كود التطبيق بلغة NET. لمن يريده. Module SEMO_Pa3x '-------------------------------------------------------- 'c0ded bY : SEMO.Pa3x 'skype : security.najaf 'facebook : https://www.facebook.com/Nisr.Aln3jaf 'gmail : isec2090@gmail.com 'last edit : 26/4/2019 '-------------------------------------------------------- Sub Main() For Each arg As String In My.Application.CommandLineArgs If arg.StartsWith("/SEMO/") Then Dim rep As String Dim splt() As String rep = arg.Replace("/SEMO/", "") splt = Split(rep, ",") Dim GET_date, GET_args As String GET_date = splt(0) GET_args = splt(1) Dim ConvertToDate As DateTime ConvertToDate = DateTime.Parse(GET_date) DateFormating(ConvertToDate.AddDays(GET_args)) DateConvert(ConvertToDate.AddDays(GET_args)) Console.WriteLine(ArabicWeekdayString(Weekday(GET_date)) & "," & LongDateString) End If Next End Sub Public LongDateString As String = String.Empty '#Region " DateConverter (dateValue As String) As String " #Region " DateConverter (dateValue As String) As String " Public Function DateConvert(ByVal dateValue As String) As String LongDateString = "" ' الاحتفاظ بالإعدادت الحالية Dim currentCulture As Globalization.CultureInfo = Threading.Thread.CurrentThread.CurrentCulture Dim con As String = "" If DateFormating(dateValue) <> "" Then dateValue = DateFormating(dateValue) '---------------------------------- Dim y As String = IIf(dateValue <> "", dateValue.Split("/")(2), "") Dim mmm() As String If y > "1300" And y < "1451" Then con = GetGregorianDate(dateValue) mmm = Split(GetGregorianDate(dateValue), "/") LongDateString = ArabicWeekdayString(Weekday(GetGregorianDate(dateValue))) & " " & mmm(0) & " " & GregorianMonthString(Val(mmm(1))) & ", " & mmm(2) End If If y > "1883" And y < "2029" Then con = GetHijriDate(dateValue) mmm = Split(con, "/") LongDateString = mmm(0) & "," & HiriMonthString(Val(mmm(1))) & "," & mmm(2) & "H" End If End If ' إستعادة الإعدادت Threading.Thread.CurrentThread.CurrentCulture = currentCulture Return con End Function #End Region #Region " GetHijriDate(GregorianDate As String) As String " Private Function GetHijriDate(ByVal GregorianDate As String) As String Try Threading.Thread.CurrentThread.CurrentCulture = New Globalization.CultureInfo("ar-eg") Dim hijriDate As String = String.Empty 'Start Date is 10-31-1883 Dim DaysPan As Integer = DateDiff(DateInterval.Day, New System.DateTime(1883, 10, 31), CDate(GregorianDate)) + 1 Dim i As Integer = 0 Do While (DaysPan > 29 + Val(UmmUlquraHijriMonths.Chars(i))) DaysPan = DaysPan - 29 - Val(UmmUlquraHijriMonths.Chars(i)) i = i + 1 Loop hijriDate = Format$(DaysPan, "00") + "/" + Format((i Mod 12) + 1, "00") + "/" + CStr(1301 + (i \ 12)) Return hijriDate Catch ex As Exception ' MessageBox.Show("تأكد من التاريخ الميلادي.", "خطأ في التاريخ الميلادي", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign Or MessageBoxOptions.RtlReading) Return Nothing End Try End Function #End Region #Region " GetGregorianDate(HijriDate As String) As Date " Private Function GetGregorianDate(ByVal HijriDate As String) As String Try Threading.Thread.CurrentThread.CurrentCulture = New Globalization.CultureInfo("ar-eg") Dim gregorianDate As String = String.Empty Dim MonthsPan As Integer MonthsPan = (12 * (CInt(Mid(HijriDate, 7, 4)) - 1301)) + CInt(Mid(HijriDate, 4, 2)) Dim TempDaysPan As Integer Dim i As Integer For i = 0 To MonthsPan - 2 TempDaysPan = TempDaysPan + 29 + Val(UmmUlquraHijriMonths.Chars(i)) Next i If CInt(Mid(HijriDate, 1, 2)) > 29 + Val(UmmUlquraHijriMonths.Chars(i)) Then ' MessageBox.Show("رقم اليوم لهذا الشهر يجب أن لا يتجاوز 29", "خطأ اليوم الشهري للتاريخ الهجري", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign Or MessageBoxOptions.RtlReading) Return Nothing Else TempDaysPan = TempDaysPan + CInt(Mid(HijriDate, 1, 2)) End If 'Start Date is 10-31-1883 gregorianDate = CStr(DateAdd(DateInterval.Day, TempDaysPan - 1, New System.DateTime(1883, 10, 31))) Return gregorianDate Catch ex As Exception ' MessageBox.Show("تأكد من التاريخ الهجري.", "خطأ في التاريخ الهجري", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign Or MessageBoxOptions.RtlReading) Return Nothing End Try End Function #End Region #Region " UmmUlquraHijriMonths " 'UmmUlquraHijriMonths Private Function UmmUlquraHijriMonths() As String Dim HijriMonthSequence As String = "" 'Create the Months data from 1301H to 1450H - (150years) HijriMonthSequence += "111010010011" 'Year 1301H HijriMonthSequence += "011101001001" 'Year 1302H HijriMonthSequence += "011101100100" 'Year 1303H HijriMonthSequence += "101101101010" 'Year 1304H HijriMonthSequence += "010101110101" 'Year 1305H HijriMonthSequence += "010010110110" 'Year 1306H HijriMonthSequence += "101001010110" 'Year 1307H HijriMonthSequence += "101101001010" 'Year 1308H HijriMonthSequence += "110110100100" 'Year 1309H HijriMonthSequence += "110111010010" 'Year 1310H HijriMonthSequence += "010111011001" 'Year 1311H HijriMonthSequence += "001011011100" 'Year 1312H HijriMonthSequence += "100101011101" 'Year 1313H HijriMonthSequence += "010010101101" 'Year 1314H HijriMonthSequence += "101001010101" 'Year 1315H HijriMonthSequence += "101101001010" 'Year 1316H HijriMonthSequence += "101101101001" 'Year 1317H HijriMonthSequence += "010101110100" 'Year 1318H HijriMonthSequence += "100101110110" 'Year 1319H HijriMonthSequence += "010010110111" 'Year 1320H HijriMonthSequence += "001001010111" 'Year 1321H HijriMonthSequence += "010100101011" 'Year 1322H HijriMonthSequence += "011010010101" 'Year 1323H HijriMonthSequence += "011011001010" 'Year 1324H HijriMonthSequence += "101011010101" 'Year 1325H HijriMonthSequence += "010101011011" 'Year 1326H HijriMonthSequence += "001001011101" 'Year 1327H HijriMonthSequence += "100100101101" 'Year 1328H HijriMonthSequence += "110010010101" 'Year 1329H HijriMonthSequence += "110101001010" 'Year 1330H HijriMonthSequence += "111010100101" 'Year 1331H HijriMonthSequence += "011011010010" 'Year 1332H HijriMonthSequence += "101011010101" 'Year 1333H HijriMonthSequence += "010101011010" 'Year 1334H HijriMonthSequence += "101010101011" 'Year 1335H HijriMonthSequence += "010101001011" 'Year 1336H HijriMonthSequence += "011010100101" 'Year 1337H HijriMonthSequence += "011101010010" 'Year 1338H HijriMonthSequence += "101110101001" 'Year 1339H HijriMonthSequence += "001101110100" 'Year 1340H HijriMonthSequence += "101010110110" 'Year 1341H HijriMonthSequence += "010101010110" 'Year 1342H HijriMonthSequence += "101010101010" 'Year 1343H HijriMonthSequence += "110101010010" 'Year 1344H HijriMonthSequence += "110110101001" 'Year 1345H HijriMonthSequence += "010111010100" 'Year 1346H HijriMonthSequence += "101011101010" 'Year 1347H HijriMonthSequence += "010011011101" 'Year 1348H HijriMonthSequence += "001001101110" 'Year 1349H HijriMonthSequence += "100100101110" 'Year 1350H HijriMonthSequence += "101010100110" 'Year 1351H HijriMonthSequence += "110101010100" 'Year 1352H HijriMonthSequence += "110110101010" 'Year 1353H HijriMonthSequence += "010110110101" 'Year 1354H HijriMonthSequence += "001010110110" 'Year 1355H HijriMonthSequence += "100100110111" 'Year 1356H HijriMonthSequence += "010010011011" 'Year 1357H HijriMonthSequence += "101001001011" 'Year 1358H HijriMonthSequence += "101100100101" 'Year 1359H HijriMonthSequence += "101101010100" 'Year 1360H HijriMonthSequence += "101101101010" 'Year 1361H HijriMonthSequence += "010101101101" 'Year 1362H HijriMonthSequence += "010010101101" 'Year 1363H HijriMonthSequence += "101001010101" 'Year 1364H HijriMonthSequence += "110100100101" 'Year 1365H HijriMonthSequence += "111010010010" 'Year 1366H HijriMonthSequence += "111011001001" 'Year 1367H HijriMonthSequence += "011011010100" 'Year 1368H HijriMonthSequence += "101011101010" 'Year 1369H HijriMonthSequence += "010101101011" 'Year 1370H HijriMonthSequence += "010010101011" 'Year 1371H HijriMonthSequence += "011010010101" 'Year 1372H HijriMonthSequence += "101101001001" 'Year 1373H HijriMonthSequence += "101110100100" 'Year 1374H HijriMonthSequence += "101110110010" 'Year 1375H HijriMonthSequence += "010110110101" 'Year 1376H HijriMonthSequence += "001010111010" 'Year 1377H HijriMonthSequence += "100101011011" 'Year 1378H HijriMonthSequence += "010010101011" 'Year 1379H HijriMonthSequence += "010101010101" 'Year 1380H HijriMonthSequence += "011010110010" 'Year 1381H HijriMonthSequence += "011011011001" 'Year 1382H HijriMonthSequence += "001011101100" 'Year 1383H HijriMonthSequence += "100101101110" 'Year 1384H HijriMonthSequence += "010010101110" 'Year 1385H HijriMonthSequence += "101001010110" 'Year 1386H HijriMonthSequence += "110100101010" 'Year 1387H HijriMonthSequence += "110101010101" 'Year 1388H HijriMonthSequence += "010110101010" 'Year 1389H HijriMonthSequence += "101010110101" 'Year 1390H HijriMonthSequence += "010010111011" 'Year 1391H HijriMonthSequence += "001001011011" 'Year 1392H HijriMonthSequence += "100100101011" 'Year 1393H HijriMonthSequence += "101010010101" 'Year 1394H HijriMonthSequence += "101101001010" 'Year 1395H HijriMonthSequence += "101110100101" 'Year 1396H HijriMonthSequence += "010110101010" 'Year 1397H HijriMonthSequence += "101010110101" 'Year 1398H HijriMonthSequence += "010101010110" 'Year 1399H HijriMonthSequence += "101010010110" 'Year 1400H HijriMonthSequence += "110101001010" 'Year 1401H HijriMonthSequence += "111010100101" 'Year 1402H HijriMonthSequence += "011101010010" 'Year 1403H HijriMonthSequence += "011011101001" 'Year 1404H HijriMonthSequence += "001101101010" 'Year 1405H HijriMonthSequence += "101010101101" 'Year 1406H HijriMonthSequence += "010101010101" 'Year 1407H HijriMonthSequence += "101010100101" 'Year 1408H HijriMonthSequence += "101101010010" 'Year 1409H HijriMonthSequence += "101110101001" 'Year 1410H HijriMonthSequence += "010110110100" 'Year 1411H HijriMonthSequence += "100110111010" 'Year 1412H HijriMonthSequence += "010011011011" 'Year 1413H HijriMonthSequence += "001001011101" 'Year 1414H HijriMonthSequence += "010100101101" 'Year 1415H HijriMonthSequence += "101010100101" 'Year 1416H HijriMonthSequence += "101011010100" 'Year 1417H HijriMonthSequence += "101011101010" 'Year 1418H HijriMonthSequence += "010101101101" 'Year 1419H HijriMonthSequence += "010010111101" 'Year 1420H HijriMonthSequence += "001000111101" 'Year 1421H HijriMonthSequence += "100100011101" 'Year 1422H HijriMonthSequence += "101010010101" 'Year 1423H HijriMonthSequence += "101101001010" 'Year 1424H HijriMonthSequence += "101101011010" 'Year 1425H HijriMonthSequence += "010101101101" 'Year 1426H HijriMonthSequence += "001010110110" 'Year 1427H HijriMonthSequence += "100100111011" 'Year 1428H HijriMonthSequence += "010010011011" 'Year 1429H HijriMonthSequence += "011001010101" 'Year 1430H HijriMonthSequence += "011010101001" 'Year 1431H HijriMonthSequence += "011101010100" 'Year 1432H HijriMonthSequence += "101101101010" 'Year 1433H HijriMonthSequence += "010101101100" 'Year 1434H HijriMonthSequence += "101010101101" 'Year 1435H HijriMonthSequence += "010101010101" 'Year 1436H HijriMonthSequence += "101100101001" 'Year 1437H HijriMonthSequence += "101110010010" 'Year 1438H HijriMonthSequence += "101110101001" 'Year 1439H HijriMonthSequence += "010111010100" 'Year 1440H HijriMonthSequence += "101011011010" 'Year 1441H HijriMonthSequence += "010101011010" 'Year 1442H HijriMonthSequence += "101010101011" 'Year 1443H HijriMonthSequence += "010110010101" 'Year 1444H HijriMonthSequence += "011101001001" 'Year 1445H HijriMonthSequence += "011101100100" 'Year 1446H HijriMonthSequence += "101110101010" 'Year 1447H HijriMonthSequence += "010110110101" 'Year 1448H HijriMonthSequence += "001010110110" 'Year 1449H HijriMonthSequence += "101001010110" 'Year 1450H Return HijriMonthSequence End Function #End Region ' Function DateFormating(ByVal _Date As String) As String #Region " DateFormating( _Date As String) As String " Public Function DateFormating(ByVal _Date As String) As String ' / تجزئة نص التاريخ من الفاصل Dim dt() As String = Split(_Date, "/") '------------------------------------------------------ ' في حالة عدم وجود فاصل تاريخ أصلا فيتم المغادرة If dt.Length <> 3 Then Return "" '------------------------------------------------------ ' التأكد أن أجزاء التاريخ هي أرقام فعلا For i = 0 To dt.Length - 1 If Not IsNumeric(dt(i)) Then Return "" End If Next i '------------------------------------------------------ ' ترتيب التاريخ بحيث يبدأ باليوم وينتهي السنة If Val(dt(0)) > 999 And Val(dt(2)) < 99 Then Dim a As String = Val(dt(0)) Dim b As String = Val(dt(2)) dt(0) = b : dt(2) = a End If '------------------------------------------------------ ' التأكد من عدم تجاوز كل جزء الحدود المسموح له If Val(dt(2)) < 1301 Or Val(dt(2)) > 2029 Then Return "" ' عدم تجاوز الشهر عن 12 If Val(dt(1)) < 1 _ Or Val(dt(1)) > 12 Then Return "" End If ' عدم تجاوز اليوم الهجري عن 30 If Val(dt(2)) >= 1301 _ And Val(dt(2)) <= 1450 Then If Val(dt(0)) < 1 Or Val(dt(0)) > 30 Then Return "" End If '------------------------------------------------------ Dim y As Integer, m As Integer, d As Integer d = Val(dt(0)).ToString("00") m = Val(dt(1)).ToString("00") y = Val(dt(2)).ToString("0000") Return Val(dt(0)).ToString("00") _ & "/" & Val(dt(1)).ToString("00") _ & "/" & Val(dt(2)).ToString("0000") End Function #End Region '#End Region #Region " ArabicWeekdayString " Private Function ArabicWeekdayString(ByVal weekdayValue As Integer) Dim w As String = String.Empty Select Case weekdayValue Case 7 w = "Saturday" Case 1 w = "Sunday" Case 2 w = "Monday" Case 3 w = "Tuesday" Case 4 w = "Wednesday" Case 5 w = "Thursday" Case 6 w = "Friday" End Select Return w End Function #End Region #Region " HiriMonthString " Private Function HiriMonthString(ByVal hijriMonthValue As Integer) Dim m As String = String.Empty Select Case hijriMonthValue Case 1 m = "Muharram" Case 2 m = "Safar" Case 3 m = "Rabi al-Awwal" Case 4 m = "Rabi ath-Thani" Case 5 m = "Jumada al-Ula" Case 6 m = "Jumada al-Akhirah" Case 7 m = "Rajab" Case 8 m = "Shaaban" Case 9 m = "Ramadan" Case 10 m = "Shawwal" Case 11 m = "Dhu al-Qaadah" Case 12 m = "Dhu al-Hijjah" End Select Return m End Function #End Region #Region " GregorianMonthString " Private Function GregorianMonthString(ByVal gregorianMonthValue As Integer) Dim m As String = String.Empty Select Case gregorianMonthValue Case 1 m = "January" Case 2 m = "February" Case 3 m = "March" Case 4 m = "April" Case 5 m = "May" Case 6 m = "June" Case 7 m = "July" Case 8 m = "August" Case 9 m = "September" Case 10 m = "October" Case 11 m = "November" Case 12 m = "December" End Select Return m End Function #End Region End Module ملاحظة: حقوق بعض الاكواد من google ارجو ان ينال موضوعي اعجابكم. حسنين Hijri_SEMO_Pa3x.rar
-
@jjafferr سبقتني بالرد يامعلم. كنت اريد ارفاق فنكشن بسيط لارجاع مقبض او اسم الكائن الذي تم الضغط عليه في الفورم. Public Function getXcontrol() Dim ctlCurrentControl As Control Dim strControlName As String Set ctlCurrentControl = Screen.ActiveControl strControlName = ctlCurrentControl.Name MsgBox strControlName End Function @ابا جودى شغل متعوب عليه ومرتب وفقك الله لكل خير عزيزي.