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

نجوم المشاركات

  1. صالح حمادي

    صالح حمادي

    أوفيسنا


    • نقاط

      12

    • Posts

      1,745


  2. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      8

    • Posts

      9,814


  3. الزباري

    الزباري

    الخبراء


    • نقاط

      5

    • Posts

      462


  4. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      5

    • Posts

      12,211


Popular Content

Showing content with the highest reputation on 12 ينا, 2017 in all areas

  1. تفضلي 1. عملنا نموذج فيه التاريخ من/الى ، 2. عملنا استعلام مجموعي ، لحساب عدد الغياب فقط بين التاريخين ، والموظف الذي يملك عدد غياب اكبر من يومين ، يتم ارسال اسمه الى الوحدة النمطية Check_Abs . تقوم الوحدة النمطية بمقارنة اليوم rst!Date ، باليوم السابق + يوم (DateAdd("d", 1, Prev_Date)، واذا كانت النتيجة متساوية ، يقوم العداد Seq بجمع الايام ، Function Check_Abs(EN) 'EN = Employee Name Dim rst As DAO.Recordset fD = [Forms]![frm_Days]![Date_From] eD = [Forms]![frm_Days]![Date_To] myCriteria = "[Emp_Name]='" & EN & "'" myCriteria = myCriteria & " And [Leave_Type]='غياب'" myCriteria = myCriteria & " And [Date] Between " & DateFormat(fD) & " And " & DateFormat(eD) 'Set rst = CurrentDb.OpenRecordset("Select * From Enterans_Absent Where [Emp_Name]='" & EN & "' And [Leave_Type]='غياب' And [Date] Between '" & DateFormat(fD) & "' And '" & DateFormat(eD) & "'") Set rst = CurrentDb.OpenRecordset("Select * From Enterans_Absent Where " & myCriteria & " Order by [Date]") rst.MoveLast: rst.MoveFirst RC = rst.RecordCount Seq = 1 Prev_Date = rst![Date] For i = 1 To RC If rst![Date] = DateAdd("d", 1, Prev_Date) Then Seq = Seq + 1 End If Prev_Date = rst![Date] rst.MoveNext Next i If Seq >= 3 Then Check_Abs = Seq & " ايام متتالية" Else Check_Abs = RC & " ايام غير متتالية" End If rst.Close: Set rst = Nothing End Function . والنتيجة: . جعفر 527.مثال 5.accdb.zip
    3 points
  2. وكما لاحظنا بأن أخونا ابراهيم وقع في مأزق كبير أجبره على تغيير نمط تفكيره في مشاركة الملفات، وبعد التشاور مع بعض زملائه المختصين في التقنية توصل بأن يُرجع كل ملف إلى صاحبه وأن يجعل مجلد المشاركة خالياً من ملفات الإكسيل، ويقوم بفكرة ذكية هي أخذ نسخة من ملفات المندوبين إلى المجلد ويقوم هو بالتعامل مع النسخ في التقارير، يعني إيه؟ وما هي الملفات اللي راح ننسخها داخل المجلد غير ملف الإكسيل؟ في الحقيقة لا ينبغي قراءة الإكسيل من ملف إكسيل مماثل ، بل يفضل استخدام الصيغ البسيطة التي تكون ضمن ملفات نظام الكمبيوتر مثل txt.* أو csv.* وغيرها من الصيغ الأساسية. بمعنى أن تكون هيكلة الملفات كالتالي: ملفات بصيغة txt أو صيغة csv ؟!!!! وكيف أٌنشئها؟ وكيف أتعامل معها عن طريق الإكسيل؟ وهل ستنجح الفكرة؟ كل هذا سنجيب عليها لاحقاً بمثال عملي.. فقط تابعونا
    3 points
  3. تفضل هذا مثال على كل حالة إضافة التنسيقات لمربع نص.rar
    2 points
  4. أخي رمهان لو أننا نكتب هذا الكود DatePart("d";3) سوف يعطينا النتيجة 2 يعني أنه ينقص 1 يوم دائما من الدالة التي تحسب الفرق بالأيام Diff("d";;Date()) لذلك أضطررت لإضافة 1 لناتج الدالة كذا "1+Diff("d";;Date())". أما بالنسبة لــ-1 في عبارة الأشهر ذلك لأنه عندما تضع مثلا DatePart("m";5) يعطيك الناتج 1 شهر و أيض DatePart("m";35) يعطينا الناتج شهرين بينما هي أقل من ذلك. بالنسبة للسنوات إذا وضعنا هذا الكود مثلا DatePart("yyyy";2) فإن الناتج يكون 1900 يعني هو يبدأ الحساب من 1900. أنا إجتهدت و هذا الحل هو الذي أعطاني أكبر دقة.
    2 points
  5. حساب العمر.rar إليك الحل أخي عبد العزيز لقد أضفت ذلك في مشاركة سابقة
    2 points
  6. بارك الله لكم على مجهودكم شباب أنا عملت برنامج يحسب عمر الأنسان بالسنوات و الأشهر و الأيام هو يعمل بشكل جيد سوف أقدمه لكم إذا كان عندكم ملاحظات تساعدنني في تحسينه إخوتي في الله حساب العمر.rar
    1 point
  7. وأخيراً تمت مشاركة ملف الإكسيل في شبكة محلية مع الموظفين وتم تبادل البيانات معهم والتعديل عليها.. تابعونا لمعرفة الخطوات.
    1 point
  8. بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته دعائي لكل الأخوة الأعزاء والمشرفين والقائمين على هذا المنتدى الكريم بسنة مباركة عامرة بالتقدم والأزدهار وحسن العاقبة إن شاء الله عملت قاعدة بيانات وفيها نموذج أدخال معلومات الموظفين emploey ويتم ادخال مفردات الراتب من خلال فورم ratib وهو على مدار السنة لايتغير الا بحصول متغيرات شهريه مثل زيادة في الراتب أو تغيير بقطع اداري او مالي والمطلوب هو أنه عند إكتمال إدخال راتب لشهر كانون الثاني 2014 مثلا" ... يتم عمل تقارير كامله بمفردات راتب كل فرد على حدة أولا" وتقرير كامل لجهات العمل بصورة جماعية ..... وكذلك أن يكون هناك فورم لعمل المتغيرات على راتب كل موظف بجلب بيانات راتبه كلها ونغير فيها لتطبع للشهر الذي يليه , بمعنى التغيير يحصل فقط للأفراد الذي لديهم متغيرات وأذا لاتوجد متغيرات تظهر معلومات الشهر التالي شباط مثلا" وهكذا forat_personal.rar
    1 point
  9. السلام عليكم اتنمى من الله ان تكونوا في صحة وعافية جميعا اخوتي لدي قاعدة البيانات وحاليا احاول تجهزيها لتقسيمها لمشاركتها عن اكثر من مستخدم عبر سرفر او شبكة داخلية السؤال هل ممكن تقسيم قاعدة البيانات وفي نفس الوقت تحويلها الى برنامج تنفيذ هل يمكن ان يتم الاجراءين (التقسيم، وتحويل الى برنامج تنفيذ) واذا كان ممكن ماهي الخطوة الاول التقسيم او التحويل خالص مودتي لكم
    1 point
  10. السلام عليكم و رحمة الله تعالى و بركاته أخوتي الكرام حياكم الله أردت في هذه المشاركة توضيح فكرة إضافة أكثر من تنسيق لمربع نص واحد و كما نعلم جميعنا فإن هذا الأمر غير موجود في الأكسس لذلك نضطر للإستعانة بلغة HTML و سوف أقوم بشرح و توظيف هذه الفكرة قدر المستطاع من أجل فك اللبس على هذه المشكلة التي طالما تعيقنا في إنشاء البرامج. على بركة الله فلنبدأ بالشرح: تغيير لون الخط: "<font color=""red"">" & "صالح حمادي" & "</font>" هذا الكود سوف يقوم بتغيير لون العبارة "صالح حمادي" إلى اللون الأحمر "<font color="red"">" هذا الجزء لفتح خاصية اللون و إعطائها اللون الأحمر في هذا المثال "</font>" و هذا الجزء لإغلاق هذه الخاصية جعل النص غامق: "<b>" &"صالح حمادي"& "</b>" يستعمل هذا الكود لجعل خط النص المحصور بينه إلى غامق جعل النص مائل: "<i>" &"صالح حمادي"& "</i>" يستعمل هذا الكود لجعل النص مائل التسطير تحت النص "<u>" &"صالح حمادي"& "</u>" تغيير نوع الخط: "<font face=""times new roman"">" & "صالح" & "</font>" يستعمل هذا الكود لتغيير نوع النص المحدد في هذا المثال وضعت نوع النص "times new roman" تغيير حجم الخط: "<font size=""24"">" & "صالح" & "</font>" هذا الكود يقوم بتغيير حجم الخط في هذا المثال حجم الخط هو 24 ملاحظة: يجب تغيير خاصية مربع النص "تنسيق النص" إلى "نص منسق"
    1 point
  11. هذا خاص بإصدار 2007 فما فوق حسب علمي
    1 point
  12. عفوا ما فهمت اعملي التغيير على المرفق ، واعطيني مثال من البرنامج جعفر
    1 point
  13. جربي المرفق واخبرينا عن النتائج جعفر
    1 point
  14. هذا يرجع الي اصدار الويندوز لديك فمثلا الصورة المرفقة هي لويندوز اكس بي وفي ويندوز 8 يمكنك تغيير لون الاطار كما تحب هذا والله اعلم
    1 point
  15. تفضل الكود على حدث نقر زر "تفعيل خانة الاختيار في النموذج الفرعي": Dim rst As DAO.Recordset Set rst = Me.ORDER.Form.RecordsetClone rst.MoveLast: rst.MoveFirst RC = rst.RecordCount What_Was_The_First_Selection = rst!Do For i = 1 To RC rst.Edit rst!Do = Not What_Was_The_First_Selection rst.Update rst.MoveNext Next i rst.Close: Set rst = Nothing جعفر 528.CHECK BOX.accdb.zip
    1 point
  16. استاذي الفاضل صالح حمادي جزاك الله كل الخير اذا امكن على اوفيس 2003 واكون ممنون الك يالطيب ربي يحميك من كل شر يارب
    1 point
  17. انااريد ان اضع في قائمة مينيو
    1 point
  18. شو رأيك بهذه النتيجة
    1 point
  19. وعليكم السلام جرب الكود التالي Sub Test() Dim wsControl As Worksheet Dim wsData As Worksheet Dim wsDB As Worksheet Dim i As Long Dim lrwsData As Long Dim lrwsDB As Long Dim newlr As Long Dim cel As Range Dim rg As Range Application.ScreenUpdating = False Set wsControl = Sheets("Control") Set wsData = Sheets("Data") Set wsDB = Sheets("DB") Set rg = wsDB.UsedRange.Columns(2).Find(CDate(wsControl.[G1].Value2), , xlValues, xlWhole) If Not rg Is Nothing Then MsgBox "Date Existed", vbExclamation: Set rg = Nothing: Exit Sub lrwsDB = wsDB.Cells(Rows.Count, 5).End(xlUp).Row + 1 lrwsData = wsData.Cells(Rows.Count, 4).End(xlUp).Row For i = lrwsData To 2 Step -1 If Len(wsData.Cells(i, 4)) > 0 Then lrwsData = i: Exit For Next i wsData.Range("D2:BG" & lrwsData).Copy wsDB.Range("E" & lrwsDB).PasteSpecial xlPasteValues wsDB.Range("B" & lrwsDB).Value = wsControl.Range("G1").Value wsDB.Range("C" & lrwsDB).Value = wsControl.Range("G2").Value wsDB.Range("D" & lrwsDB).Value = wsControl.Range("G3").Value newlr = wsDB.Cells(Rows.Count, 5).End(xlUp).Row For Each cel In wsDB.Range("A" & lrwsDB & ":A" & newlr) cel.Value = cel.Row - 2 Next cel Application.CutCopyMode = False Application.ScreenUpdating = True End Sub
    1 point
  20. وعليكم السلام اختي لوسمحتي تعطينا معلومات اكثر عن طلبك: 1. هل سوف تطلبين البيانات بين تاريخين؟ 2. اذا كان جوابك نعم ، واذا طلبتي البيانات لفترة شهر مثلا ، وكان هناك 3 ايام غياب متتايه ولكن لأكثر من مرة ، فماذا تريدين شكل رسالة التنبيه؟ 3. كم عدد الموظفين جميعا تقريبا؟ جعفر
    1 point
  21. برنامج متابعه الشيكات المرسله للتحصيل m.ajore@yahoo.com.rar
    1 point
  22. السلام عليكم أخي الكريم جرب هذا الكود Sub BOQ() For s = 1 To Sheets.Count Sheets(s).Select x = Cells.SpecialCells(xlCellTypeLastCell).Row For r = 8 To x If IsNumeric(Cells(r, "G")) = False Then Cells(r, "D").FormulaR1C1 = "=RC[2]*RC[4]" Next r Next s End Sub مرفق الملف وبه الكود BOQ.rar
    1 point
  23. السلام عليكم حل سريع بالجداول المحورية تفضل New Microsoft2.rar
    1 point
  24. صحيح أستاذ جعفر شكرا أنا لم ألاحظ ذلك معذرة أستاذي
    1 point
  25. السلام عليكم اختم الموضوع بجمع 3 طرق كما سبق ، ولكن باختلافات بسيطة ، واعرض هنا كيفية عمل جدول مؤقت خارج قاعدة البيانات (طبعا الجدول سيكون في قاعدة بيانات خارجية مؤقتة) ، ثم كيف ربط هذا الجدول المؤقت ببرنامجنا الحالي - تم حذف الجدول المؤقت من البرنامج ، 1. تم إضافة وحدات نمطية 2 (طبعا يمكن الاستغناء عنهم ، وذلك بضمهم لكود النموذج) ، الوحدة النمطية الاولى فيها كود لمناداة بعض مجلدات الوندوز المهمة ، ومنها مجلد Temp ، والذي سنتعامل معه لجميع البرامج/الملفات المؤقته ، والوحدة النمطية الثانية لعمل قاعدة البيانات الخارجية المؤقته ، 2. تم تقسيم عدد الاسطر الى عدد الاسطر والاعمدة ، ليتناسب مع عمل صفحة الانترنت بلغة HTML ، 3. سيقوم بعمل التقرير بواسطة صفحة انترنت بلغة HTML ، 4. سوف يفتح المجلد Temp وسيكون مختار ملف الانترنت الذي تم عمله بالزر رقم 3 ، 5. عمل التقرير بطريقة الاستاذ رمهان ، ولكن باستخدام جدول خارجي مؤقت ، 6. عمل التقرير بطريقة الاستاذ صالح ، ولكن باستخدام جدول خارجي مؤقت ، وهذه الطريقة هي الطريقة المستخدمة غالبا لمعظم الجداول المؤقته ، 7. يفتح المجلد Temp وسيكون مختار قاعدة البيانات الخارجية المؤقتة ، والتي تم عملها بالزرين رقم 5 و 6 ، . التقرير ، ونلاحظ انه لا يوجد له مصدر للبيانات (حيث ان المصدر يعتمد على استخدامنا للزر 5 او 6 ) ، والتقرير كما عمله اخونا ابوخليل ، . هذا كود التقرير: - عند فتحة ، يأخذ مصدر البيانات من المتغير mySQL والذي هو عبارة عن استعلام بصيغة SQL ، والذي يؤخذ من الجدول المؤقت (وسنرى في النموذج هذا الكود) ، - وعند اغلاق التقرير ، نغلق الجدول المؤقت ، وبقية الاستعلامات المحلية التي عُملت على اساسه ، Private Sub Report_Open(Cancel As Integer) Me.RecordSource = mySQL DoCmd.Maximize End Sub Private Sub Report_Unload(Cancel As Integer) On Error GoTo err_Report_Unload Dim OtherDB As Object qrydef.Close CurrentDb.Close 'close the temp_DB sOther = GetWinTemp & "\temp_DB.mdb" Set OtherDB = GetObject(sOther) OtherDB.Application.Quit Exit Sub err_Report_Unload: If Err.Number = 424 Then Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub . الوحدة النمطية لمناداة بعض مجلدات الوندوز المهمة ، ومنها مجلد Temp ، والذي سنتعامل معه لجميع البرامج/الملفات المؤقته ، 'Return Windows directory Function GetWinDir() Set FS = CreateObject("Scripting.FileSystemObject") GetWinDir = FS.GetSpecialFolder(WindowsFolder) Set FS = Nothing End Function 'Return Windows/System directory Function GetWinSys() Set FS = CreateObject("Scripting.FileSystemObject") GetWinSys = FS.GetSpecialFolder(1) Set FS = Nothing End Function 'Return Windows/temp directory Function GetWinTemp() Set FS = CreateObject("Scripting.FileSystemObject") GetWinTemp = FS.GetSpecialFolder(2) Set FS = Nothing End Function 'Return temp filename Function GetTempName() Set FS = CreateObject("Scripting.FileSystemObject") GetTempName = FS.GetTempName Set FS = Nothing End Function 'Return full path and temp filename Function GetTempFullPath() GetTempFullPath = GetWinTemp & "\" & GetTempName Set FS = Nothing End Function . والوحدة النمطية الثانية لعمل قاعدة البيانات الخارجية المؤقته ، وبها وضعنا المتغيرات ، والتي تكون متاحة لكل كائنات قاعدة البيانات ، من نماذج وتقارير ووو Public tbldf As dao.TableDef, qrydf As dao.QueryDef, fld As Field Public rst As dao.Recordset, rst_TQ As dao.Recordset Public sfrm As Form Public wrkAcc As Workspace Public dbsNew As Database Public mdb_Path_Name As String Public mySQL As String Function Make_DB(mdb_Path_Name) On Error GoTo err_Make_DB 'create an empty mdb in the same PC as the FE 'this will allow more than one user to use This DB Set wrkAcc = CreateWorkspace("AccessWorkspace", "admin", "", dbUseJet) ' Make sure there isn't already a file with the name of the new database. If Dir(mdb_Path_Name) <> "" Then Kill mdb_Path_Name ' Create the new database Set dbsNew = wrkAcc.CreateDatabase(mdb_Path_Name, dbLangGeneral) dbsNew.Close wrkAcc.Close Exit Function err_Make_DB: If Err.Number = 3270 Then 'this field does not have a caption for it, give it the field name ElseIf Err.Number = 3024 Or Err.Number = 91 Or Err.Number = 52 Or Err.Number = 53 Or Err.Number = 3055 Then 'mdb, and Table not found to Delete Resume Next ElseIf Err.Number = 3167 Then 'ignor, Records Deleted Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Function . هذا كود عمل الزر رقم 3 ، وهو كما وضعته في المشاركة السابقة ، والفرق اني وضعت ملف HTML في مجلد وندوز Temp ، وعملت الملصقات منع: Private Sub cmd_ie_Click() ' 'make Reference to Microsoft Internet Controls 'c:\windows\sysytem32\ieFrame.dll ' Dim web As SHDocVw.InternetExplorerMedium Set web = New SHDocVw.InternetExplorerMedium Dim HTML_File As String 'url header webBody = "<html style='width: 100%; height: 100%;'>" & vbCrLf webBody = webBody & "<head><style>" & vbCrLf '1 here we can change the Font Type, and Font size webBody = webBody & "table {font-family: arial, sans-serif; font-size:15px;border-collapse: collapse; width: 100%;}" & vbCrLf '2 here we can change cell border size, border color, Text alignment 'with black border 'webBody = webBody & "td, th {border: 1px solid #dddddd; text-align: center; padding: 8px;}" & vbCrLf 'without black border webBody = webBody & "td, th {border: 1px solid #FFFFFF; text-align: center; padding: 8px;}" & vbCrLf webBody = webBody & "</style></head><body>" & vbCrLf webBody = webBody & "<table style='width: 100%; height: 100%;'>" & vbCrLf 'How many Rows For i = 1 To Me.Rows 'to create the Table Row webBody = webBody & "<tr>" 'How many columns For j = 1 To Me.columns 'make each cell webBody = webBody & "<th>" & Me.co1.Column(1) & "</th>" Next j 'close the Table Row webBody = webBody & "</tr>" & vbCrLf Next i 'close the HTML code webBody = webBody & "</table></body></html>" 'Debug.Print webBody 'save the HTML file to windows Temp folder HTML_File = GetWinTemp & "\524.webBody.html" Open HTML_File For Output As #1 Print #1, webBody Close #1 'make an IE web.Navigate HTML_File 'wait until the page if fully loaded Do While web.ReadyState <> READYSTATE_COMPLETE Loop web.Stop 'print preview web.ExecWB OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DODEFAULT web.Quit Set web = Nothing End Sub . وهذا كود الزر رقم 4 ، والذي يفتح المجلد Temp وسيكون مختار ملف الانترنت الذي تم عمله بالزر رقم 3 : Private Sub cmd_Temp_Folder_web_Click() HTML_File = GetWinTemp & "\524.webBody.html" 'check if the file exists If Dir(HTML_File, vbNormal) = "" Then MsgBox "الملف غير موجود" Exit Sub End If 'open windows explorer and select the temporary inter file Shell "explorer.exe /select," & HTML_File, vbNormalFocus End Sub . وهذا كود الزر رقم 5 ، طريقة عمل التقرير للاستاذ رمهان بالجدول الخارجي المؤقت Private Sub cmd_Temp_Serial_Click() On Error GoTo err_cmd_Temp_Serial_Click 'طريقة الاستاذ رمهان If Len(Me.co1 & "") = 0 Then MsgBox "رجاء اختيار اسم الملصق" Exit Sub End If '1 'make a temp mdb mdb_Path_Name = GetWinTemp & "\temp_DB.mdb" Call Make_DB(mdb_Path_Name) '2 'Create table tbl_temp with Seq field as Integer. Set dbsNew = OpenDatabase(mdb_Path_Name) dbsNew.Execute "CREATE TABLE tbl_temp " & "(Seq INTEGER);" 'OR we can make a copy of an existing table from currentDB to the new DB 'make a Table temp_DB using "Make Table" query in the DB temp_DB.mdb ' mySQL = "SELECT temp_DB.* INTO tbl_temp IN " & Chr(34) & mdb_Path_Name & Chr(34) ' mySQL = mySQL & " FROM tmp_tbl_Dates_Days" 'Debug.Print mySQL ' DoCmd.SetWarnings False ' DoCmd.RunSQL mySQL ' DoCmd.SetWarnings True '3 'add Records to the temp table Set rst = dbsNew.OpenRecordset("Select * From tbl_temp") 'add one extra Record to meet the criteria For i = 1 To Me.Rows * Me.columns + 1 rst.AddNew rst!Seq = i rst.Update Next i rst.Close: Set rst = Nothing dbsNew.Close '4 'make a temporary query in this DB, from tbl_temp mySQL = "Select * From tbl_temp IN '" & mdb_Path_Name & "'" 'delete the old querydef, if exists CurrentDb.QueryDefs.Delete ("qrydef") 'create a new querydef Set qrydef = CurrentDb.CreateQueryDef("qrydef", mySQL) CurrentDb.Close '5 'make the Report Record Source 'mySQL is declared as Global Variable mySQL = "SELECT tbl1.B_Nm, qrydef.Seq FROM tbl1, qrydef" '6 'now open the Report 'DoCmd.OpenReport "QpNew", acViewPreview, , "[B_Nm]='" & Me.co1.Column(1) & "' And Seq<=" & Me.Rows * Me.columns myCriteria = "B_Nm='" & Me.co1.Column(1) & "'" myCriteria = myCriteria & " And Seq<=" & Me.Rows * Me.columns DoCmd.OpenReport "QpNew", acViewPreview, , myCriteria Exit Sub err_cmd_Temp_Serial_Click: If Err.Number = 3265 Or Err.Number = 3167 Or Err.Number = 3078 Then Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub . وكود عمل التقرير بطريقة الاستاذ صالح ، بالجدول الخارجي المؤقت Private Sub cmd_Temp_Records_Click() 'طريقة الاستاذ صالح حمادي If Len(Me.co1 & "") = 0 Then MsgBox "رجاء اختيار اسم الملصق" Exit Sub End If '1 'make a temp mdb mdb_Path_Name = GetWinTemp & "\temp_DB.mdb" Call Make_DB(mdb_Path_Name) '2 'Create table tbl_temp with B_Nm field as Text. Set dbsNew = OpenDatabase(mdb_Path_Name) dbsNew.Execute "CREATE TABLE tbl_temp " & "(B_Nm Text);" 'OR we can make a copy of an existing table from currentDB to the new DB 'make a Table temp_DB using "Make Table" query in the DB temp_DB.mdb ' mySQL = "SELECT temp_DB.* INTO tbl_temp IN " & Chr(34) & mdb_Path_Name & Chr(34) ' mySQL = mySQL & " FROM tmp_tbl_Dates_Days" 'Debug.Print mySQL ' DoCmd.SetWarnings False ' DoCmd.RunSQL mySQL ' DoCmd.SetWarnings True '3 'add Records to the temp table Set rst = dbsNew.OpenRecordset("Select * From tbl_temp") For i = 1 To Me.Rows * Me.columns rst.AddNew rst!B_Nm = Me.co1.Column(1) rst.Update Next i rst.Close: Set rst = Nothing dbsNew.Close '4 'make the Report Record Source 'mySQL is declared as Global Variable mySQL = "Select * From tbl_temp IN '" & mdb_Path_Name & "'" '5 'now open the Report DoCmd.OpenReport "QpNew", acViewPreview End Sub . واخيرا ، كود الزر رقم 7 ، والذي يفتح المجلد Temp وسيكون مختار قاعدة البيانات الخارجية المؤقتة ، والتي تم عملها بالزرين رقم 5 و 6 ، Private Sub cmd_Temp_Folder1_Click() mdb_Path_Name = GetWinTemp & "\temp_DB.mdb" 'check if the file exists If Dir(mdb_Path_Name, vbNormal) = "" Then MsgBox "الملف غير موجود" Exit Sub End If 'open windows explorer and select the temporary database Shell "explorer.exe /select," & mdb_Path_Name, vbNormalFocus End Sub . جعفر 524.3.rep2.mdb.zip
    1 point
  26. السلام عليكم هذه تظهر دائما عند النسخ واللصق اذا كان فيه حروف عربية بين الاكواد وهذه هي على الصورة الصحيحة Call MsgBox("مطلوب قم بتحديده واختياره (BData.mdb) ملف البيانات", vbCritical) واسم قاعدة البيانات الظاهرة تخصني وعليك بتعديلها الى قاعدة الجداول عندك
    1 point
  27. إذا كنت تستخدم التقرير للطباعة على قالب شهادة ورقي فيمكن عمل التالي: .. وضع مكون المتصفح في التقرير وضبط أبعاده بما يتوافق مع قالب الشهادة. .. تحديد الأبعاد التي تريد الطباعة فيها، ومن ثم ضبط عناصر هتشمل بما يتوافق مع متطلباتك. *** فائدة عناصر هتشمل يمكن ضبطها بأي نوع من المقاييس وبدقة متناهية! هي عندي أسهل بكثير من تقرير أكسس. سم بالله وابدأ بإعطائنا أفكارك وتصاميمك ونحن مع..
    1 point
  28. تفضل هذا الموضوع يقوم بشرح المطلوب بالتفصيل
    1 point
  29. السلام عليكم و رحمة الله تعالى و بركاته بعد إذنك أستاذ أبوخليل لقد قمت بوضع مشاركة أشرح فيها هذا المطلوب بالتفصيل:
    1 point
  30. تفضل هذا رابط اتمنى تجد فيه بغيتك
    1 point
  31. الفكرة الثانية: ظن ابراهيم بأنه لو أنشأ ملف إكسيل يقوم فيه بعملية تجميع ملفات المندوبين بالمعادلات هي الطريقة السليمة تجنبه فتح ملفات المندوبين كالتالي: ومن هنا يضمن ابراهيم تحديث الملف حين فتحه بما لا يتعارض مع المندوبين، فيا ترى هل ما قام به يعتبر صحيح، وما هي المشاكل التي سيتعرض لها، تابعوووونا.
    1 point
  32. لو تقصد إن رقم آخر صف مش هيكون الإجمالي ممكن تعتمد على أمر آخر وهو قيمة الخلية في آخر صف (أعتقد إن فيه تسلسل من 1 إلى 410 مثلاً) .. فلو كان رقم آخر صف 400 مثلاً : حاجة من الاتنين يا إما تزود 10 على رقم آخر صف عشان توصل لإجمالي الطلاب بالشكل دا For i = 1 To sh.Cells(Rows.Count, 2).End(xlUp).Row + 10 Step 2 يا إما تجيب قيمة الخلية في آخر صف بالشكل دا For i = 1 To sh.cells(sh.Cells(Rows.Count, 2).End(xlUp).Row,1).value Step 2 أو طريقة تالتة إنك تستخدم دالة Countif في محرر الأكواد عشان تعد عدد الطلاب .. كل السبل تؤدي إلى روما ..
    1 point
  33. مرحبا احبتي الفكرة التي طرحتها لا يوجد بها حذف او اضافة وليس بمفهوم جدول مؤقت بقدر ماهو تلبية للمطلوب ! البيانات ثابته هذا مرفق استاذ ابا خليل يوضح ماقصدت واستاذنك في التعديل في الكود هذه فكرة ان وضعت شرط عند فتح التقرير ويمكن الاستغناء عنه بمساعدة الخاصية اعلى القيم للاستعلام وتكون متغيره حسب قيمة المربع تحياتي rep2.rar وبالنسبة لعدد النسخ اعتقد ان الحل لديك ولك مشاراكات بذلك استاذنا
    1 point
  34. استاذي الكريم ياسر خليل أبو البراء اشكرك على تجاوبك وتعاونك وادعو الله ان يبيض وجهك و يشرح صدرك و يرفع قدرك و يعلي كلمتك و يوفقك في حياتك و يسعدك بعد مماتك و يقضي عنك دينك و يوسع في رزقك و يبارك لك في يومك و يجعل محبتك في قلوب عباده و يسخر لك من تعرف ومن ﻻتعرف و يجعلك مبارك في الدنيا و مغفوراً ذنبك في الآخرة و يحميك من عين الحاسدين و من نظرات الشياطين و يرزقك برزق ليس له حدود و يسخر لك كل الجنود و يهدي بالك و يريح قلبك و يغفر لك كل خطيئة علمت بها أو لم تعلم بها و أسأل الله الكريم أن يرزقك الفردوس الاعلى من الجنة و أسأله أن يعيذك من جهد البلاء و درك الشقاء و سوء القضاء و شماتة اﻷعداء كما أسأله أن يعيذك من زوال نعمته و من تحول عافيته و فجاءة نقمته و جميع سخطه و أسأله أن يرضى عليك رضاً ﻻ يعقبه سخط والله يجزاك الجنة ووالديك وذريتك ومن تحب انت وانا وجميع المسلمين اللهم آمين و صل اللهم على سيدنا محمد و على آله وصحبه وسلم تسليمآ كثيرآ
    1 point
  35. السلام عليكم اليكم الطريقة كاملة نقوم بانشاء ملفات مثلا كتالي نفتح ملف الاكسل ولنفرض المشتريات ونقوم بعمل الفورم المطلوب للعمل نكر العملية لجميع الملفات المطلوبة نحفظ الملف ونقوم بتفح قاعد ةالبيانات واتبع الصورة / يجب ان يكون هناك جدول واحد على الاقل في القاعدة ليقبل الخيار الاخير كرر العملية نفسها لجميع الملفات اصبح لدينا الان ثلاث جداول اكسل داخل قاعدة البيانات افتح تصميم استعلام واتبع الصورة يجب ان تقوم باضافة جميع الخانات الى الاستعلام لكل جدول استعلام خاص به اخيرا قم باختيار طريقة عرض SQL وانتبه الى جميع الاضافات ان تكون موجودة ثم احفظ كرر العملية نفسها ليصبح لديك 3 استعلامات افتح ملف الاكسل باسم مدير واتبع الصورة حدد الاستعلام المطلوب واتبع الصور تم استيراد البيانات بنجاح الان قم بفتح ملف المشتريات مثلا واكتب به ثم احفظ اذهب الى صفحة المدير واختر بيانات وتحديث الكل وشاهد النتيجة مبروك عليك انتهى الشرح الان فكر بعمق كيف تستطيع ربط جمع الصفخات او المستخدمين ببرنامجك حسب ماتريد انت وشكرا تحميل الصور والملفات والشرح http://www.up-00.com/?rIXR ايضا تستطيع رفع قاعدة البيانات على الشيربونت او موقع مشاركة للعمل على الشبكة او الانترنت مثلا انت في مصر والموظف في السعودية والمراقب في سوريا يستطيعون العمل معا على قاعدة واحدة عبر الشير بونت او موقع مشاركة وشكرا
    1 point
  36. مشكور اخ صالح انا اقصد التعبير التالي للسنوات =DatePart("yyyy";(DateDiff("d";[b];Date()))+1)-1900 من اين جاءت 1900 ولماذا بالناقص ؟ ولماذا اضفنا واحد ؟ وكذلك التعبير التالي للاشهر DatePart("m";(DateDiff("d";[b];Date()))+1)-1 لماذا +1 ثم -1 ؟! ياليت تشرح فكرة الحل وليس شرح الدالة تحياتي
    1 point
  37. اخي صالح وبعد اطيب تحية هذه المعادلة او التعبير هو نفس ما شاركت به في اول رد وهو الحل المناسب لان السؤال كان مشترطا عدد السنوات فقط وكانت باللون الازرق فشاركت بذلك التعبير لسهولته وقمت انت بالتطبيق مشكورا وحصلت الفائده طلبي هو : التكرم بشرح التعبير او المعادلة في مشاركتك الثالثة والتي تم بها حساب العمر بالتفصيل كسنوات واشهر وايام وحبذا شرح كل تعبير على حده اي تعبير عدد السنوات والاشهر والايام تحياتي
    1 point
  38. اهلا بك الاستاذ عبدالعزيز في منتدى الاكسس وتشرفت بالرد ضع التعبير التالي في حقل جديد باستعلام جديد Expr1: DateDiff("yyyy";[birth];Date()) وتم استخدام الدالة datediff لحساب فرق السنوات بين تاريخين حيث اصبح التاريخ الثاني هو دالة تحسب تاريخ اليوم بالتوفيق
    1 point
  39. السلام عليكم ورحمة الله وبركاته إخواني وأحبابي في الله أحياناً ما تحدث بعض المشاكل عند التعامل مع النوافذ الموجودة في محرر الأكواد .. كأن تختفي نافذة أو تتحرك نافذة من مكانها الذي تعودنا عليه ، وعند محاولة إرجاعها إلى مكانها لا نستطيع .. أنا مؤمن بمبدأ : بدلاً من تضييع الوقت في محاولة ترقيع الثوب المهلهل .. عليك بشراء ثوب جديد .. (وفر وقتك وفلوسك واحصل على نتيجة أفضل) أقصد من كلامي بدلاً من الخوض في تفاصيل معرفة حل المشكلة وقد يضيع الوقت في محاولة الحل وفي النهاية قد لا تصل لنتيجة مرضية أو يمكن أن تصل لنتيجة ويحدث خطأ في نقطة أخرى المهم موضوعنا عن كيفية إعادة ضبط إعدادات محرر الأكواد .. 1- اقفل برنامج الإكسيل (أو الأوفيس بشكل عام) 2- روح لقايمة Start في الويندوز ثم الأمر Run واكتب الأمر regedit للدخول إلى ريجستري الويندوز 3- روح لهذا المسار HKEY_CURRENT_USER\Software\Microsoft\VBA\6.0\Common\ بالنسبة للرقم 6 قد يكون مختلف حسب نسخة الويندو سواء كانت 32 بت ستجدها رقم 6.0 أما 64 بت فستجدها 7.1 أو 7.0 4- المهم ادخل على المجلد المسمى Common ، اعمل عليه كليك يمين ثم Delete (جمد قلبك ومتخافش .. لو حصل حاجة أنا مش مسئول) هتخرج لك رسالة تأكد الحذف .. انقر نعم يا بطل ومتخافش ..الويندوز هيسقط بس 5- افتح برنامج الإكسيل .. من لوحة المفاتيح اضغط Alt + F11 لتجد نسخة جديدة من محرر الأكواد (محرر الأكواد في ثوبه الجديد) كأنك لسه منصب أوفيس جديد ****************************** يمكنك إعادة ضبط الإعدادات التي تريدها .. الإعدادات التي أقوم بضبطها بشكل شخصي هي كالتالي : ** بعمل Maximize للنافذة اللي قدامي عشان تكون الصورة أوضح ** من Tools ثم Options أعلم علامة صح على الخيار Require Variable Declaration عشان أضيف السطر الخاص بإجبار المبرمج على الإعلان عن المتغيرات .. السطر دا بيكون شكله كالتالي Option Explicit ** من نفس النافذة أشيل علامة الصح من أول خيار Auto syntax Check عشان وأنا بكتب وغلطت متظهرش رسالة تنبيه بالخطأ ( واحد هيقولي طيب دي خاصية مفيدة .. ماشي كويس بس بتعطلني عن كتابة أسطر الكود ..يكفي أنني أرى السطر باللون الأحمر بعد الانتهاء منه .. هذا تنبيه كافي ) ** من نفس النافذة بدخل على التبويب المسمى Editor Format ثم أغير حجم الخط Size عشان أشوف أسطر الكود بشكل واضح ، ثم أوك في النهاية ** على يمين شريط الأدوات بعمل كليك يمين في مكان فارغ وبختار شريط Edit وبسحب الشريط وأضعه جنب شريط الأدوات القياسي (الموجود بالفعل) وفي نهاية المطاف .. أرجو أن يكون الموضوع (رغم بساطته) أن يكون مفيد لمن يريد التعامل مع محرر الأكواد) تقبلوا وافر تقديري وحبي واحترامي
    1 point
  40. السلام عليكم موضوع مطلوب ومجهود كبير ولاكن للامانة لم استطيع ان استفيد منه للأسباب الاتية 1- تحديد هوية البرنامج (هدفه ونطاق عمله (مخازن فقط -مخازن وعملاء وموردين - حسابات جزئي (يعنى به حسابات العملاء والموردين والضرائب والخزينة من واقع النشاط المباشر مع المخازن))) وفى خلال ذالك نحدد التقارير المطلوبة (المخرجات) وبالتالي نحدد ما نريد إدخاله (المدخلات)الى البرنامج للحصول على النتائج المرجوة 2- طريقة التسلسلية للشرح غير واضحة مثل (جداول البرنامج طبقا للمدخلات المطلوبة - ثم نماذج الادخال - ثم التقارير) وهكذا على سبيل المثال 3- موضوع انشاء قاعدة لعام جديد او النسخ الاحتياطي للقاعدة الحالية هو بلا شك مطلوب وبقوة للبرامج الناجحة 4- تختلف طبيعة احتياجات البرنامج من مكان واخر ومن شخص لأخر ولذألك يجب الاخذ بالنواحي الأساسية فقط وعدم التعديل طبقا لكل عضو (والالتزام من جميع الأعضاء بعدم كثرة المشاركات) 5- قد لا تكون اخى مضطر لرفع القاعدة والتعويض عن ذالك بفيديوهات للشرح مع الصور في شكل دروس متتالية ونهج واضح لتفادى اختلاف النسخ فكل يطبق طبقا لما عنده من نظام او اوفيس الا الحصريات لم ادخل في تفاصيل البرنامج و معرفتي بالأكسس مبتدئ ولاكن اعمل محاسب ومراجع داخلي بالسعودية وقد قمت بأنشاء برنامجين للمخازن نسخة للشركات التجارية - ونسخة لمصنع وقمت ببيعها وبها عمليات تكاليف وتسعير ولاكن ذالك كان ب الاكسيل vba وليس بالاكسس والعمل في الاكسل اكثر ارهاقا ارجوا منكم تقبل مرورى اريد الدخول في مجالكم والاستفادة من الموضوع فبعد 4 صفحات لم احصل شيئا رغم المجهود الكبير هذا والله الموفق ،،،،،،،،،،،،،،،،،
    1 point
  41. اشكرك اخي وبارك الله فيك وفي كل اهل المنتدى وكل الامة الاسلامية اللهم امين
    1 point
  42. استاذي العزيز " يحيــــــــــــــــــــــاوي " مرفق ملف كود للتنقل بين اوراق العمل ( هذا الكود له مشاركة مشابهة نوعا ما ) ولكن هذه المرة بعض الاوراق ( ويمكن تحديدها من الكود ) لا تظهر فى القائمة من اعمال اخونا الاستاذ " عبد الله المجرب " ابو احمد وفقك الله ياسر الحافظ " ابو الحارث " تنقل بين اوراق عمل مع اخفاء البعض من القائمة.rar
    1 point
  43. أخي العزيز حسب إعتقادي أنك لاتستطيع تنفيذ ضغط وإصلاح لنفس قاعدة البيانات اللي أنت فيها إلا عن طريق القوائم وليس عن طريق كود يوضع لزر أمر لذا يرجى منك توضيح طلبك بالتحديد ليتم شرحه بتفصيل أكثر تحياتي,,,
    1 point
  44. اخي الكريم كل عام وأنت بخير جهاز الباركود يمكن ربطه على اي برنامج فهو يعمل نيابة عن لوحة المفاتيح يعني بديل للوحة المفاتيح ، وبمعنى أوضح : هو يقرأ الرقم على المنتج ويرسله الى البرنامج . وبتوضيح أكثر : اي برنامج مصمم بحيث انك لما تدخل كود الصنف تظهر البيانات والعمليات المصاحبة، فهذا البرنامج جاهز لربطه بجهاز الباركود لعل هذه المعلومات المقتضبة تعطي التصور الصحيح لطريقة عمل الباركود
    1 point
  45. السلام عليكم نموذج فاتورة بفورم بعشرين صف استدعاء اسم الصنف والسعر اثناء اختيارك لرقم الصنف اظهار اجمالي الصنف بعد كتابتك للكمية من صنف معين مع اظهار الاجمالي الكلي للفاتورة متبوعا بالتنقيط اثناء مسحك لرقم الصنف تمسح باقي البيانات في الصف ضبط الاخطاء اثناء الترحيل ويتم ايقاف العملية لإعادة التصحيح طباعة للفاتورة بامكانية اختيار عدد النسخ فاتورة متكاملة بالعناويين وراس الصفحة والتذييل وكانك تتعامل مع ورقة العمل بل اسهل من ذلك وفي النظر والتجربة ما يغني عن الشرح تحياتي وشكري ____________________.rar
    1 point
  46. بارك الله فيك أخي خبور وجعل هذا العمل في ميزان حسناتكم.
    1 point
  47. الزميلات والزملاء أتيت اليكم ببرنامج قمت بعملهمن خلال برنامج Excell والبرنامج يقوم باصدار اذون الصرف النقدية وايضا اذون الاسستلام ويقوم بتدويررصيد الخزينة اتوماتيكيا بمجرد ضغط يوم جديد طريقة عمل البرنامج يلزم تهيئة برنامج excell لعمل الماكرو يتم وضع رصيد الخزينة اجنبي ومحلي وايضا بداية سريال الاستلام وبداية سريال الصرف وهذا يحدث للمرة الاولي فقط يقوم بتعريف اكواد الحسابات الذى سوف يتم العمل عليها من حلال التعريفات حسابات المصاريف والايرادات فى حالة استلام نقدية يتم كتابة الكود ويظهر بجاانبة اسم الحساب والبرنامج يقوم بالتفقيط وكتابة التاريخ فى حالة صرف النقدية يتم احتيار الحساب مثلمل حدث فى استلام النقدية ويذكر اسم ا مركز التكلفة فى حالة تعدد الفروع نسخ المقبوضات يتم نسخ المقبوضات من خلال نسخ المقبوضات وتوضع فى الحافظة ومثلها نسخ المدفوعات وفى حالة يوم جديد يتم مسح ما تم كتابتة ويتم تدوير الرصيد لبداية يوم جديد واذا اردت استعداء صرف نقدية او استلام تقوم بالضغط علي ما تريد من الشاة الافتتاحية للبرنامج ثم تكتب رقم الايصال اذا كان استلام او صرف وتقوم بالطباعة .... وفى النهاية انا مستعد للمساعدة فى اى وقت وتقبل الملاحظات... البرنامج يعمل على office 2003 Cash_Sysytem_Standard.rar
    1 point
×
×
  • اضف...

Important Information