نجوم المشاركات
Popular Content
Showing content with the highest reputation on 12/31/17 in مشاركات
-
السلام عليكم ورحمة الله وبركاته سنة 2017 رحلت ، واذا احد عنده حساب معاها ، فالدعاء والاستغفار هو ما بقى لنا منها ، وان شاء الله سنة 2018 تكون لنا جميعا سنة صحة وسلامة وخير ونعمة ورزق وفير وقضاء الديون ، ورضى من رب العالمين ، لنا ولمن احببنا ، ولا ننسى ، هي صحيفة اعمالك ، فاملأها بالعمل الصالح جعفر3 points
-
السلام عليكم ورحمة الله وبركاته في السنة الماضية ( 2017 ) كان اريد افتح موضوع و اسأل عن كيفية تغيير محاذاة النص في ليست بوكس الى الوسط العمود تجولت في دار دار في النيت لكن وصلت للحل لاوفيس 2003 وهو تحويل ليست بوكس الى كومبوبوكس وبعدين اغير محاذات الى الوسط و بعدي اغير من جديد الى ليست بوكس لكن ما نفعت مع اصدار 2010 وفي الاخير وجدت حل لاسئلتي على الرغم غير مضبوطة مع الاسماء بالعربية كما انا اريد لكن احسن من لا شيء و رأيت الحل هناhttp://www.tek-tips.com/viewthread.cfm?qid=1111959 وباستخدام هذا الكود في وحدة النطية Option Compare Database Option Explicit 'Authors: Stephen Lebans ' Terry Kreft 'Date: Dec 14, 1999 'Copyright: Lebans Holdings (1999) Ltd. ' Terry Kreft 'Use: Center and Right Align data in ' List or Combo control's 'Bugs: Please me know if you find any. 'Contact: Stephen@lebans.com Private Type Size cx As Long cy As Long End Type Private Const LF_FACESIZE = 32 Private Type LOGFONT lfHeight As Long lfWidth As Long lfEscapement As Long lfOrientation As Long lfWeight As Long lfItalic As Byte lfUnderline As Byte lfStrikeOut As Byte lfCharSet As Byte lfOutPrecision As Byte lfClipPrecision As Byte lfQuality As Byte lfPitchAndFamily As Byte lfFaceName As String * LF_FACESIZE End Type Private Declare Function apiCreateFontIndirect Lib "gdi32" Alias _ "CreateFontIndirectA" (lplogfont As LOGFONT) As Long Private Declare Function apiSelectObject Lib "gdi32" _ Alias "SelectObject" (ByVal hDC As Long, ByVal hObject As Long) As Long Private Declare Function apiGetDC Lib "user32" _ Alias "GetDC" (ByVal hWnd As Long) As Long Private Declare Function apiReleaseDC Lib "user32" _ Alias "ReleaseDC" (ByVal hWnd As Long, _ ByVal hDC As Long) As Long Private Declare Function apiDeleteObject Lib "gdi32" _ Alias "DeleteObject" (ByVal hObject As Long) As Long Private Declare Function apiGetTextExtentPoint32 Lib "gdi32" _ Alias "GetTextExtentPoint32A" _ (ByVal hDC As Long, ByVal lpsz As String, ByVal cbString As Long, _ lpSize As Size) As Long ' Create an Information Context Declare Function apiCreateIC Lib "gdi32" Alias "CreateICA" _ (ByVal lpDriverName As String, ByVal lpDeviceName As String, _ ByVal lpOutput As String, lpInitData As Any) As Long ' Close an existing Device Context (or information context) Declare Function apiDeleteDC Lib "gdi32" Alias "DeleteDC" _ (ByVal hDC As Long) As Long Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long Private Declare Function GetDeviceCaps Lib "gdi32" _ (ByVal hDC As Long, ByVal nIndex As Long) As Long ' Constants Private Const SM_CXVSCROLL = 2 Private Const LOGPIXELSX = 88 ' ' 1) We now call the function with an Optional SubForm parameter. This is ' the name of the SubForm Control. If you used the Wizard to add the ' SubForm to the main Form then the SubForm control has the same name as ' the SubForm. But this is not always the case. For the benefit of those ' lurkers out there<bg> we must remember that the SubForm and the SubForm ' Control are two seperate entities. It's very straightforward, the ' SubForm Control houses the actual SubForm. Sometimes the have the same ' name, very confusing, or you can name the Control anything you want! In ' this case for clarity I changed the name of the SubForm Control to ' SFFrmJustify. Ugh..OK that's not too clear but it's late! ' ' So the adjusted SQL statement is now. ' CODENUM: JustifyString("FrmMain","List5",[code],0,True,"SFfrmJustify") ' ' ***CODE START Function JustifyString(myform As String, myctl As String, myfield As Variant, _ col As Integer, RightOrCenter As Integer, Optional Sform As String = "") As Variant ' March 21, 2000 ' Changes RightOrCenter to Integer from Boolean ' -1 = Right. 0 = Center, 1 = Left ' Called from UserDefined Function in Query like: ' SELECT DISTINCTROW JustifyString("frmJustify","list4",_ ' [code],0,False) AS CODENUM, HORTACRAFT.NAME FROM HORTACRAFT; ' myform = name of form containing control ' myctl = name of control ' myfield is the actual data field from query we will Justify ' col = column of the control the data is to appear in(0 based index) ' RightOrCenter True = Right. False = Center Dim UserControl As Control Dim UserForm As Form Dim lngWidth As Long Dim intSize As Integer Dim strText As String Dim lngL As Long Dim strColumnWidths As String Dim lngColumnWidth As Long Dim lngScrollBarWidth As Long Dim lngOneSpace As Long Dim lngFudge As Long Dim arrCols() As String Dim lngRet As Long ' Add your own Error Handling On Error Resume Next ' Need fudge factor. ' Access allows for a margin in drawing its Controls. lngFudge = 60 ' We need the Control as an Object ' Check and see if use passed SubForm or not If Len(Sform & vbNullString) > 0 Then Set UserForm = Forms(myform).Controls(Sform).Form Else Set UserForm = Forms(myform) End If ' Assign ListBox or Combo to our Control var Set UserControl = UserForm.Controls.Item(myctl) With UserControl If col > Split(arrCols(), .ColumnWidths, ";") Then Exit Function If col = .ColumnCount - 1 Then ' Add in the width of the scrollbar, which we get in pixels. ' Convert it to twips for use in Access. lngScrollBarWidth = GetSystemMetrics(SM_CXVSCROLL) lngScrollBarWidth = lngScrollBarWidth * (1440 / GetTwipsPerPixel()) End If lngColumnWidth = Nz(Val(arrCols(col)), 1) lngColumnWidth = lngColumnWidth - (lngScrollBarWidth + lngFudge) End With ' Single space character will be used ' to calculate the number of SPACE characters ' we have to add to the Input String to ' achieve Right justification. strText = " " ' Call Function to determine how many ' Twips in width our String is lngWidth = StringToTwips(UserControl, strText) ' Check for error If lngWidth > 0 Then lngOneSpace = Nz(lngWidth, 0) ' Clear variables for next call lngWidth = 0 ' Convert all variables to type string Select Case VarType(myfield) Case 1 To 6, 7, 14 ' It's a number(1-6) or 7=date strText = Str$(myfield) Case 8 ' It's a string..leave alone strText = myfield Case Else ' Houston, we have a problem Call MsgBox("Field type must be Numeric, Date or String", vbOKOnly) End Select 'let's trim the string - better safe than sorry strText = Trim$(strText) ' Call Function to determine how many ' Twips in width our String is lngWidth = StringToTwips(UserControl, strText) ' Check for error If lngWidth > 0 Then ' Calculate how many SPACE characters to append ' to our String. ' Are we asking for Right or Center Alignment? Select Case RightOrCenter Case -1 ' Right strText = String(Int((lngColumnWidth - lngWidth) / lngOneSpace), " ") & strText Case 0 ' Center strText = String((Int((lngColumnWidth - lngWidth) / lngOneSpace) / 2), " ") & strText _ & String((Int((lngColumnWidth - lngWidth) / lngOneSpace) / 2), " ") Case 1 ' Left strText = strText Case Else End Select ' Return Original String with embedded Space characters JustifyString = strText End If End If ' Cleanup Set UserControl = Nothing Set UserForm = Nothing End Function Function Split(ArrayReturn() As String, ByVal StringToSplit As String, _ SplitAt As String) As Integer Dim intInstr As Integer Dim intCount As Integer Dim strTemp As String intCount = -1 intInstr = InStr(StringToSplit, SplitAt) Do While intInstr > 0 intCount = intCount + 1 ReDim Preserve ArrayReturn(0 To intCount) ArrayReturn(intCount) = Left(StringToSplit, intInstr - 1) StringToSplit = Mid(StringToSplit, intInstr + 1) intInstr = InStr(StringToSplit, SplitAt) Loop If Len(StringToSplit) > 0 Then intCount = intCount + 1 ReDim Preserve ArrayReturn(0 To intCount) ArrayReturn(intCount) = StringToSplit End If Split = intCount End Function '************* Code End ************* Private Function StringToTwips(ctl As Control, strText As String) As Long Dim myfont As LOGFONT Dim stfSize As Size Dim lngLength As Long Dim lngRet As Long Dim hDC As Long Dim lngscreenXdpi As Long Dim fontsize As Long Dim hfont As Long, prevhfont As Long ' Get Desktop's Device Context hDC = apiGetDC(0&) 'Get Current Screen Twips per Pixel lngscreenXdpi = GetTwipsPerPixel() ' Build our LogFont structure. ' This is required to create a font matching ' the font selected into the Control we are passed ' to the main function. 'Copy font stuff from Text Control's property sheet With myfont .lfFaceName = ctl.FontName & Chr$(0) 'Terminate with Null fontsize = ctl.fontsize .lfWeight = ctl.FontWeight .lfItalic = ctl.FontItalic .lfUnderline = ctl.FontUnderline ' Must be a negative figure for height or system will return ' closest match on character cell not glyph .lfHeight = (fontsize / 72) * -lngscreenXdpi End With ' Create our Font hfont = apiCreateFontIndirect(myfont) ' Select our Font into the Device Context prevhfont = apiSelectObject(hDC, hfont) ' Let's get length and height of output string lngLength = Len(strText) lngRet = apiGetTextExtentPoint32(hDC, strText, lngLength, stfSize) ' Select original Font back into DC hfont = apiSelectObject(hDC, prevhfont) ' Delete Font we created lngRet = apiDeleteObject(hfont) ' Release the DC lngRet = apiReleaseDC(0&, hDC) ' Return the length of the String in Twips StringToTwips = stfSize.cx * (1440 / GetTwipsPerPixel()) End Function Private Function GetTwipsPerPixel() As Integer ' Determine how many Twips make up 1 Pixel ' based on current screen resolution Dim lngIC As Long lngIC = apiCreateIC("DISPLAY", vbNullString, _ vbNullString, vbNullString) ' If the call to CreateIC didn't fail, then get the info. If lngIC <> 0 Then GetTwipsPerPixel = GetDeviceCaps(lngIC, LOGPIXELSX) ' Release the information context. apiDeleteDC lngIC Else ' Something has gone wrong. Assume a standard value. GetTwipsPerPixel = 120 End If End Function وفي مصدر الليست بوكس لكل عمود يجب ان تستخدم فانكشن بهذا الشكل مثلا لحقل تسلسل ستستخدم هكذا تسلسل: JustifyString("frmmaalomat";"List0";[id];0;False) اسم الفاكشن ( اسم النموذج بعدين اسم ليست بوكس اللي في النموذج وبعدين اسم الحقل المطلوب و بعدين رقم صفر وبعدين فالس للوسط او ترو لليمين اليكم صورة لقبل استخدام و بعد استخدام الفانكشن على الرغم ان هناك نقص في ترتيب هوامش للاسماء بالعربية لكن نقدر ان نغير في هذه الخاصية كما مبية في الصورة وبعدين سيظهر لنا ليست بوكس هكذا اليكم المرفق تحياتي شفان ريكاني AlignListbox.rar2 points
-
حياك الله كود اخي شفان سيصبح هذا للاعتيادية =Nz(DSum("[مدة الإجازة]";"جدول الإجازات";"[نوع الاجازة]='اعتيادية'" & "and [رقم الموظف]=" & [Forms]![AAA]![رقم الموظف]);"لا يوجد") وهذا للاجازات التعويضية =Nz(DSum("[مدة الإجازة]";"جدول الإجازات";"[نوع الاجازة]='تعويضية'" & "and [رقم الموظف]=" & [Forms]![AAA]![رقم الموظف]);"لا يوجد") جعفر2 points
-
2 points
-
السلام عليكم ورحمة الله تفضل الملف المرفق وبه المطلوب... بطبيعة الحال المعادلات التي وُضعت لا تكون صحيحة إلا إذا كانت قائمة كل فصل مرتبة ومجتمعة في صفوف متتالية (كما في المرفق) -ترتيب الفصول فيما بينها غير مهم- بن علية حاجي استدعاء تسلسل التلاميذ.rar2 points
-
السلام عليكم فاتورة شراء وبيع المعدلة تم اضافة كشف العميل تحياتي محمد علي الطيب فاتورة شراء وبيع المعدلة.rar1 point
-
الأخوة الأعزاء كيف يمكن ان تجعل النموذج يقوم بعمل الترقيم الا بعد ان يقوم المدخل بضغط على زرار الحفظ ولكم جزيل الشكر1 point
-
1 point
-
1 point
-
السلام عليكم اخي رعد انا احاول اتفادى الاسئلة اللي تتكلم بلغة المحاسبة ، ولكن لما يكون السؤال واضح بأسماء الحقول وتفصيل ، احاول المساعدة طلبك بسيط ، ولكن اريد بعض الاجابات لوسمحت: 1. المدين: رقم او صفر ، ولكن الصورة فيها فراغ اذا الدائن فيه رقم ، يعني لا رقم ولا صفر !! 2. اذا المدين فيه رقم ، الدائن = صفر ، ولكن الصورة فيها فراغ اذا المدين فيه رقم ، يعني لا يوجد صفر !! 3. رجاء شرح المادة 3 باللون الاحمر ، 4. واذا لم يتم التوازن ، لا يتم الحفظ !! ، هذا معناه اذا عندك 100 سجل ادخلتهم ولم يتم التوازن ، وما عندك وقت تدقق وين الخطأ ، تحذف كل العمل !! جعفر1 point
-
المرفق مافيه بيانات ، عليه لا استطيع عمل شيء جعفر1 point
-
السلام عليكم ورحمة الله اكتب الكود التالى فى موديول Sub ColoredRows() For i = 10 To 34 For Each c In Range("E10:E34") If Cells(i, "H") <> "" Then If c.Value = Cells(i, "H") Then Range(Cells(c.Row, 2), Cells(c.Row, 5)).Interior.ColorIndex = 10 End If End If Next Next End Sub وفى حدث الصفحة اكتب الكود التالى Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 8 And Target.Row < 10 And Target.Row > 34 Then Exit Sub Call ColoredRows End Sub1 point
-
1 point
-
اتفضل اليك هذا للاعتيادية =Nz(DSum("[مدة الإجازة]";"جدول الإجازات";"[نوع الاجازة]='اعتيادية'" & "and [رقم الموظف]=" & [Forms]![AAA]![رقم الموظف])) وهذا للاجازات التعويضية =Nz(DSum("[مدة الإجازة]";"جدول الإجازات";"[نوع الاجازة]='تعويضية'" & "and [رقم الموظف]=" & [Forms]![AAA]![رقم الموظف])) نوع الاجازة.rar1 point
-
1 point
-
اتفضل اضفت حقل جديد في الجدول باسم يوزر نيم وعند عملية تحديث او تسجيل اي سجل سيتم كتابة اسم المستخدم اللي عمل التحديث او اللي سجل السجل وهناك طريقة اخرى وهو سيعمل جدول خاص لكي تعرف من سجل السجل جديد وفي اي وقت و من قاب بعد ذلك بتعديله example.rar1 point
-
السلام عليكم ورحمة الله وأحسن من ذلك كله هو (COLUMN(A$1 بن علية حاجي1 point
-
1 point
-
اخي بن علية استعمال COLUMN()-6 يلزمنا ان نضع المعادلة فقط في العامود F بينما باستعمال (COLUMNS($A$1:A1 تستطيع ان تضع المعادلة اينما اردت1 point
-
السلام عليكم ورحمة الله أو يمكن استعمال المعادلة التالية: =IFERROR(ROUND(INDEX(date,$F$6,COLUMN()-6),0),INDEX(date,$F$6,COLUMN()-6)) بن علية حاجي1 point
-
يمكن ابضاً هذه: =CHOOSE(ISNUMBER(INDEX(date,$F$6,COLUMNS($A$1:A1)))+1,INDEX(date,$F$6,COLUMNS($A$1:A1)),ROUND(INDEX(date,$F$6,COLUMNS($A$1:A1)),0))1 point
-
السلام عليكم ورحمة الله وبركاته جزاكم الله خيرا استاذ سليم جعله الله في ميزان حسناتكم لكم وافر احترامي1 point
-
جرب هذه المعادلة =IF(N(INDEX(date,$F$6,COLUMNS($A$1:A1)))=0,INDEX(date,$F$6,COLUMNS($A$1:A1)),ROUND(INDEX(date,$F$6,COLUMNS($A$1:A1)),0))1 point
-
في حدث عند الضغط على الزر اكتب هذا ME.ID = NZ(DMAX("[ID]","Tbl1"),0)+1 غير هذه العبارات الاسفل باللي عندك ME.ID = هو اسم المربع الترقيم في النموذج ID = هو اسم الحقل الترقيم في جدول Tbl1 = هو الجدول اللي نريد ان نعمل الترقيم فيه1 point
-
. بينما نموذجك ، نموذج مستمر ، فلا يعمل الكود على حقل في سجل معين ، وانما يعمل على جميع السجلات (حسب قيمة اول سجل) ، اما التنسيق الشرطي ، فاليك مثال: https://stackoverflow.com/a/45284549 جعفر1 point
-
اشكرك اخي العزيز وفعلا" انا أحاول وانت معي نصل الى الأفضل1 point
-
اذا تريد بيانات هذه الحقول تظهر تظهر لك في النموذج، فنعم يجب إدخالها في الكود1 point
-
قلت لك اني عملته !! لازم تغير اسم الجدول الموجود tbl_Training الى اسم آخر، وبعدين تقوم بهذا العمل. طبعا، اذا بدأت استعمال البرنامج، فيجب عليك حذف جدول المتقدمين، والعمل فقط على الجدول tbl_Training1 point
-
بس مافي داعي، لأني عملته انا، وعليه أصبح عندنا الجدول tbl_Training . ولكن لا بأس بعمله، ليطمئن قلبك جعفر1 point
-
وعليكم السلام هذا الزر هو الذي قام بتنظيم الدورات ونقلها إلى حقل واحد. لاستخدامه: 1. أعمل نسخه من جدول المتقدمين، واسميه tbl_Training ، 2. غيّر اسم الحقل دورة1 الى دورة ، 3. اضغط على هذا الزر ، 4. ارجع الى الجدول tbl_Training ، سترى السجلات الجديدة، وهي نسخة من الدورات دورة2 الى دورة5 تم تصفيفها في حقل دورة، مع الأخذ في الاعتبار التاريخ والأيام و الجهة ، 5. احذف حقول دورة2 الى دورة5. بعد تحويل الجدول بهذه الطريقة، ينتهي دور النموذج، ولا تستعمله مرة ثانية. جعفر1 point
-
اليك هذا الرابط به ما تريد واذا تريد شيء اضافي ارفق نسخة مصغرة من قاعدة بياناتك كما اشر به استاذ @ابو ياسين المشولي ليتم التعديل عليه لاني لا احب الموضوعات اللي ما بها المرفق1 point
-
1 point
-
تفضل هذا الجدول بحقلين اضافيين . وهذا الكود (قد اكون قلبت قيمة Filled_Fields ، فلم افهم طلبك ، ايهم صفر وايهم 1 ) Private Sub cmd_No_Empty_Fields_Click() Dim Counter As Integer Set rst = CurrentDb.OpenRecordset("Select * From tbl_Letters") rst.MoveLast: rst.MoveFirst RC = rst.RecordCount RF = rst.Fields.Count 'Records For i = 1 To RC Counter = 0 'Fields For j = 0 To RF - 1 'Debug.Print rst(j).Name & vbTab & rst(j) If rst(j).Name <> "Auto_ID" And rst(j).Name <> "Auto_Date" And _ rst(j).Name <> "Number_of_Filled_Fields" And rst(j).Name <> "Filled_Fields" Then If Len(rst(j) & "") <> 0 Then Counter = Counter + 1 End If End If 'rst Next j rst.Edit rst!Number_of_Filled_Fields = Counter If Counter = 0 Then rst!Filled_Fields = 0 Else rst!Filled_Fields = 1 End If rst.Update rst.MoveNext Next i rst.Close: Set rst = Nothing End Sub جعفر 826.Records.mdb.zip1 point
-
السلام عليكم ورحمة الله وبركاتة مرفق المطلوب بجمع كل مبيعات الجردل فقط في الخلية اللي فوق كلمة الفارغ وهي = 45 جردل ولكن احب ان انوه ان لا بد من كتابة كلمة جردل صحيحة في حالة الاختلاف الكلمة لم يتم جمعها في حالة نقل المعادلة للملف الرئيسي بعد الانتهاء من كتابة المعادلة لا بد من الضغط علي ctrl+shift+enter حتي يتمكن من عمل المصفوفة و مرفق فيديو بكيفية عملها . الملف المرفق : test.rar1 point
-
مشاركة مع استاذنا يوسف او قم بازالة نسخة الاوفيس الحالية لديك والتي هي ( 64 بت ) ثم قم بانزال نسخة اوفيس ( 32 بت ) بالتوفيق1 point
-
و عليكم السلام اخي العزيز اضف كلمة PtrSafe بعد جملة Private declare و ان شاء الله تفتح معك الملفات بالتوفيق1 point