بحث مخصص من جوجل فى أوفيسنا
Custom Search
|
-
Posts
685 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
13
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو أبو إبراهيم الغامدي
-
اضافة البيانات في أكثر من شيت في ملف اكسل
أبو إبراهيم الغامدي replied to عفرنس's topic in قسم الأكسيس Access
أهلا بالجميع.. الفكرة التي تناولتها حسب البيانات المتوفرة كاللآتي بما أن المقرر الدراسي يمكن أن يكون في أكثر من شعبة، والطلاب يتبعون للشعب فسوف يكون ترشيح البيانات كما يلي _ المقرر - شعبة1 - طلاب - شعبة 2- طلاب وهكذا حسب الشعب المدرجة لكل مقرر إليكم الشفرة بعد التعديل.. أرجو عدم اختيار الشعبة في هذه المرحلة لأنها بحاجة إلى المناقشة Public Sub barnaExcelFile(sXlsFile As String) Dim fldrname As String Dim fldrpath As String Dim LExcelOriginal As String Dim LExcelCopyOf As String Dim WHERE$ '.. اللاحقة $ تعني أن المتغير نصي Dim RS_SECTIONS As DAO.Recordset Dim RS_STUDENTS As DAO.Recordset Dim fso As Object Dim objExcel As Object Dim objWorkbook As Object '-- إنشاء مجلد للمقرر Set fso = CreateObject("scripting.filesystemobject") fldrname = Me.[text3] fldrpath = CurrentProject.Path & "\السجل الالكتروني\" & fldrname If Not fso.FolderExists(fldrpath) Then fso.createfolder (fldrpath) End If '-- التأكد من توفر البيانات الأولية If Len(Me.text2) Then WHERE$ = " WHERE (Student.المادة='" & Me.text3 & "')AND (Student.الشعبة='" & Me.text2 & "')" ElseIf Len(Me.text3) Then WHERE$ = " WHERE (Student.المادة='" & Me.text3 & "')" Else MsgBox "بينات التصدير غير مكتملة" Exit Sub End If '-- إيجاد الشعب Set RS_SECTIONS = CurrentDb.OpenRecordset _ ("SELECT DISTINCT [الشعبة] FROM Student " & WHERE$ & "ORDER BY [الشعبة]") If RS_SECTIONS.RecordCount = 0 Then MsgBox "لا توجد بيانات لتصديرها" Exit Sub End If '-- نسخ قالب مصنف البيانات إلى مجلد المقرر LExcelOriginal = sXlsFile LExcelCopyOf = CurrentProject.Path & "\السجل الالكتروني\" & fldrname & "\" & Me.[text3] & "_.xlsm" Call FileCopy(LExcelOriginal, LExcelCopyOf) Set objExcel = CreateObject("Excel.Application") Set objWorkbook = objExcel.Workbooks.Open(LExcelCopyOf) '-- تدوير البيانات بناء على الشعب Dim SHEET% SHEET% = 2 Do Until RS_SECTIONS.EOF '-- إيجاد أسماء الطلاب بناء على الشعبة Set RS_STUDENTS = CurrentDb.OpenRecordset _ ("SELECT STUACDID,STUNAME FROM STUDENT WHERE [الشعبة]='" & RS_SECTIONS![الشعبة] & "' ORDER BY STUNAME") '-- بيانات الترويسة objWorkbook.Sheets(SHEET%).range("B1").Value = _ "اسماء طلاب الصف " & "(" & Me.[text1] & ")" _ & " -- " & "(" & RS_SECTIONS![الشعبة] & ")" _ & " المادة " & "(" & Me.[text3] & ")" _ & " معلم المادة / " & "(" & Me.[text4] & ")" '-- بيانات الطلاب objWorkbook.Sheets(SHEET%).range("c5").CopyFromRecordset RS_STUDENTS SHEET% = SHEET% + 2 '-- الانتقال إلى الشعبة التالية RS_SECTIONS.MoveNext Loop '-- حفظ البيانات objExcel.DisplayAlerts = True objWorkbook.Close SaveChanges:=True '-- إغلاق المصادر objExcel.Quit Set objWorkbook = Nothing Set objExcel = Nothing Set RS_SECTIONS = Nothing Set RS_STUDENTS = Nothing ' VBA.Shell "Explorer.exe " & Chr(34) & LExcelCopyOf & Chr(34), vbNormalFocus"هذا السطر لفتح ملف الاكسل بعد التصدير" ' DoCmd.DeleteObject acTable, "temp" MsgBox "تم تصديرالبيانات بنجاح" End Sub إليكم المرفق Active Teacher.zip -
توحيد استعلام بعدة استعلامات بمعايير
أبو إبراهيم الغامدي replied to كريمو2's topic in قسم الأكسيس Access
تجميع البيانات بالطريقة الرأسية أوقعك في مشكلة إعادة تسمية رمز الشركة إلى رمز الموظف! وهذا ما صعّب فرز البيانات! لأن رمز الشركة؛ بيانات نصيه، ورمز الموظف؛ بيانات رقمية. وكان من الأفضل تجميع البيانات بطريقة أفقية! هذا هو الأفضل، لأنه يمكنك من قراءت وتجميع البيانات بطريقة سليمة وصحيحة.. دقق في الصورة لترى مدى تطابق البيانات المتتعلقة بمجموع المبلغ.. في الواقع رصف البيانات بهذه الطريقة يبدو مألوفاً بالنسبة لي! فإن كان الغرض هو تبادل البيانات عن طريق ملفات نصية ذات بيانات ثابتة الطول كما هي توقعاتي! فهناك طرق لعمل ذلك دون الحاجة إلى التقرير! أرجو أن تكون هذه المعلومات مفيدة لك.. Trans CD.mdb -
اضافة البيانات في أكثر من شيت في ملف اكسل
أبو إبراهيم الغامدي replied to عفرنس's topic in قسم الأكسيس Access
ورقة بيانات الطلاب التي تستوردها من أكسل يوجد بها معلومات كثيرة ومن ضمنها اسم معلم المادة! وبالتالي يمكن تضمين اسم المعلم ضمن جدول بيانات الطلاب، كما هو الحال مع اسم الشعبة والمادة... لكن ليس لديّ منها شيء حتى أطبق عليها -
اضافة البيانات في أكثر من شيت في ملف اكسل
أبو إبراهيم الغامدي replied to عفرنس's topic in قسم الأكسيس Access
أذن صار لكل معلم ملف خاص! هذا سهل.. سهل الله أمرك.. الآن، نعم.. بعدها هذا التوضيح، لدي اقتراح فيما يتعلق بتصفية البيانات.. في اعتقادي أننا لسنا بحاجة إلى إنشاء جدول مؤقت لترحيل البيانات إلى أكسل! بل يمكن استخدام جدول الطلاب مباشرة! المنهج CopyFromRecordset له محددان إضافيان هما عدد الأعمدة، وعدد الصفوف المطلوب جلب البيانات منها في مصدر السجل.. إذا أردنا مزيدا من التحكم.. -
اضافة البيانات في أكثر من شيت في ملف اكسل
أبو إبراهيم الغامدي replied to عفرنس's topic in قسم الأكسيس Access
أحسنت البيان أ. محمد.. وفي نظري أن بقاء كل شعبة في ورقة مستقلة أرتب للبيانات وأسهل في التعامل! -
اضافة البيانات في أكثر من شيت في ملف اكسل
أبو إبراهيم الغامدي replied to عفرنس's topic in قسم الأكسيس Access
بحسب قالب البيانات في ورقة أكسل لا يمكن تطبيق الفكرة التي أشرت إليها أعلاه.. أنت بحاجة إلى إعادة نسخة تنسيق القالب ولصقه في الأسفل لتتمكن من إضافة الشعبة الثانية! ولا أظن أنه يوجد طريقة أخرى لتطبييق الفكرة.. وهناك إشكالية أخرى ؛ وهي طريقة تصفية البيانات التي تعمل بها في النموذج لا تسمح باختيار قيم متعددة! -
توحيد استعلام بعدة استعلامات بمعايير
أبو إبراهيم الغامدي replied to كريمو2's topic in قسم الأكسيس Access
أهلا @كريمو2 كان بإمكانك تكوين علاقات بين الجداول ضمن الاستعلام واستخدام الحقول مباشرة دون اللجوء إلى استخدام دوال التجميع! لدي تحفظ على هذا المقطع من الاستعلام QryCD ...FROM (SELECT Company.CompanyID AS EmployeeID... راجع المرفق رجاءً.. Trans CD.mdb -
اضافة البيانات في أكثر من شيت في ملف اكسل
أبو إبراهيم الغامدي replied to عفرنس's topic in قسم الأكسيس Access
أهلا بك أبا عبدالرحمن.. كيف أستطيع أن أساعد؟ لم أجد في الملفات المرفقة ما أشرت إليه أدناه ولم استطع أن أفهم طلبك -
أستاذ @محمد طاهر لله ما أخذ وله ما أبقى.. فلتصبر ولتحتسب.. وتذكر.. "إنا لله وإنا إليه رجعون.. اللهم أجرني في مصبتي هذه واخلفني خيراً منها.." اللهم عافه واعف عنه.. واكرم نزله.. ونور له في قبره ووسع له فيه.. ونقه من الذنوب والخطايا كما ينقى الثوب الأبيض من الدنس.. اللهم اخلفه في عقبه في الغابرين.. واجعله من ورثة جنة النعيم.. واحشره في زمرة النبيين..
-
تكويد الحسابات عم طريق الجايد
أبو إبراهيم الغامدي replied to إبراهيم ابوليله's topic in قسم الأكسيس Access
أهلا بك.. غير نوع البيانات في الترقيم التلقائي من LongInteger إلى Replication ID إذا كانت نسخة أكسس لديك عربية أعتقد أنها (رقم طويل) والآخر أظنه (عشوائي) -
حماية الجداول من استيرادها من برنامج آخر (معدل)
أبو إبراهيم الغامدي replied to محمود حاتم احمد's topic in قسم الأكسيس Access
أهلا أ. أبا جودي.. المبهر أن جُل علماء مصر صعايدة.. كفاك فخر بنفسك!!! في أكسس: هناك فرق في الوصول إلى البيانات بين ماهو شائع بين المطورين وبين ماهو متقدم! وفي الغالب نحن لا نراعي النواحي التقنية في التعامل مع السجلات.. وبكلام مختصر: عند إضافة أو تحرير سجل.. أنت لست بحاجة إلى تحميل بيانات الجدول بالكامل! وبناءً عليه نستخدم وصلات الاستعلام للوصول للبيانات بشكل محدد.. ولو ذهبت مرة إلى أحد فروع شركة الشحن العملاقة FedEx وحشرت أنفك في شاشة تسجيل البيانات لن تجد ما يشبع فضولك! فضلاً راجع هذا الرابط (FSMS Developer Guide) لأخذ معلومة عن كيفية عمل نظام FedEx وطرق معالجة البيانات.. -
حماية الجداول من استيرادها من برنامج آخر (معدل)
أبو إبراهيم الغامدي replied to محمود حاتم احمد's topic in قسم الأكسيس Access
أهلا أ. جعفر.. إجابتي السابقة كانت بناءً على سلوك الغالبية من الزملاء في التعاطي مع البيانات.. لكن لو سألتني عن سولكي الخاص فأنا أفضل وصلات الاستعلام عوضا عن الجداول في عرض البيانات وعمل الإجراءات عليها.. الفروقات الزمنية في التنفيذ تظهر أكثر على البيانات البعيدة التي لا تعمل على سيرفرات.. -
حماية الجداول من استيرادها من برنامج آخر (معدل)
أبو إبراهيم الغامدي replied to محمود حاتم احمد's topic in قسم الأكسيس Access
طبعا تنشىء الاستعلام في قاعدة البيانات الخلفية.. ثم تشير إلى الاستعلام باسمه كما في الجدول.. إذا كنت تريد عمل استعلام يشير إلى محددات من قيم في حقول النموذج فيمكنك إنشاء جملة الاستعلام مكان اسم الجدول.. Set Me.Recordset=DBDAO.OpenRecordset("SELECT * FROM CUSTOMERS WHERE [CUSTOMER ID]=" & Me.CB_CUSTOMER_ID) في الحالة هذه تستطيع وضع جملة الاستعلام في حدث After_Update للحقل.. أو تعيد تنشيط النموذج باستخدام Me.Requery في نفس الحدث -
حماية الجداول من استيرادها من برنامج آخر (معدل)
أبو إبراهيم الغامدي replied to محمود حاتم احمد's topic in قسم الأكسيس Access
أهلا بك عزيزي أبا جودي.. لاحظ في المثال المرفق أن ألنموذج لا يعتمد على الجدول المرتبط بالطريقة المباشرة.. أبقيت على شفرة الربط الخاصة SQL SERVER للفائد.. LINKED DATA.ZIP -
حماية الجداول من استيرادها من برنامج آخر (معدل)
أبو إبراهيم الغامدي replied to محمود حاتم احمد's topic in قسم الأكسيس Access
السلام عليكم.. في الحقيقة أن ربط قاعدة البيانات الخلفية بالأمامية إنما هو لوصل البيانات بالنماذج والتقارير! عند استخدامنا لمعالج تقسيم البيانات أو معالج الربط فإن أكسس يقوم بإنشاء جداول نظام يخزن بها البيانات المتعلقة بربط البيانات ومصدرها وآلية ربطها.. الصورة التالية تبين مصدر البيانات وآلية الربط.. نلاحظ في السجل المحدد كيف قام المعالج بتعريف مصدر البيانات المتعلقة بجداول أكسس.. أرجو أن يكون بمقدوركم فهم العلاقة بين مصدر البيانات ومسميات الجداول في المصدر وقاعدة البيانات الأمامية.. لعمل الربط غير المباشر للبيانات عن طريق الشفرة بجداول بيانات أكسس نحتاج إلى الشفرة التالية.. نضع الشفرة التالية في وحدة نمطية عامة Public Function APP_PATH() As String APP_PATH = CurrentProject.Path End Function Public Function DBDAO() As DAO.Database Set DBDAO = OpenDatabase(APP_PATH & "\DB1.ACCDB", False, False, ";PWD=''")'ضع كلمة المررور إذا كانت مطلوبة End Function نضع الشفرة التالية في حدث عند الفتح في النموذج Set Me.Recordset = DBDAO.OpenRecordset("EMPLOYEES", dbOpenDynaset) -
مساعدة في تصدير الجداول الى الاكسل
أبو إبراهيم الغامدي replied to Radwan0's topic in قسم الأكسيس Access
انسخ الشفرة التالية وضعها في حدث عند النقر لزر الأمر Dim DB As DAO.Database Set DB = CurrentDb() '--- DB.Execute "SELECT * INTO [عناوين المرضى] IN'" _ & CurrentProject.Path & "\Patients.xlsx'[Excel 12.0;HDR=yes;READONLY=FALSE] FROM TABLE1 " '--- DB.Execute "SELECT * INTO [حالة العلاج] IN'" _ & CurrentProject.Path & "\Patients.xlsx'[Excel 12.0;HDR=yes;READONLY=FALSE] FROM TABLE2 " -
مساعدة في تصدير الجداول الى الاكسل
أبو إبراهيم الغامدي replied to Radwan0's topic in قسم الأكسيس Access
نعم.. الشفرة تنشيء ملف الأكسل في نفس مسار قاعدة البيانات.. قم بتغيير اسم الملف إذا أردت -
مساعدة في تصدير الجداول الى الاكسل
أبو إبراهيم الغامدي replied to Radwan0's topic in قسم الأكسيس Access
أهلا بك رضوان.. استخدم الشفرة التالية Sub EXPORT_TO_EXCEL() Dim DB As DAO.Database Set DB = CurrentDb() '--- DB.Execute "SELECT * INTO [عناوين المرضى] IN'" _ & CurrentProject.Path & "\Patients.xlsx'[Excel 12.0;HDR=yes;READONLY=FALSE] FROM TABLE1 " '--- DB.Execute "SELECT * INTO [حالة العلاج] IN'" _ & CurrentProject.Path & "\Patients.xlsx'[Excel 12.0;HDR=yes;READONLY=FALSE] FROM TABLE2 " End Sub -
أهلا سمير.. نعم يمكن..، لكن نريد عينة من البيانات وتحديد طريقة ادراج البيانات في الجدول مثلا: إضافة الجديد مع تحديث السابق..
-
أرجو منك تحديد أفضل إجابة على مشاركتك؛ وذلك بالضغط على كلمة "اختر كأفضل إجابة" تحت المشاركة الأفضل بالنسبة لك..
-
أهلا بك.. نعم.. الشفرة التالية تقوم بالتحديث والإدراج معاً! Sub UPDATE_FROM_EXCEL() '-- GET EXCEL FILE Dim XL_FILE As String XL_FILE = CurrentProject.Path & "\ITEMX.xlsx" '-- WRITE SQL STATEMENT Dim SQL As String SQL = SQL & "UPDATE TABLE1 AS T1 " SQL = SQL & "RIGHT JOIN " SQL = SQL & "(SELECT * FROM [SHEET1$] IN'" & XL_FILE & "'" SQL = SQL & "[EXCEL 12.0;HDR=YES;IMEX=1;]) AS T2 " SQL = SQL & "ON T1.[كود_الصنف] = T2.[كود الصنف] " SQL = SQL & "SET T1.[كود_الصنف] = T2.[كود الصنف]," SQL = SQL & "T1.[اسم_الصنف] = T2.[اسم الصنف]" '-- RUN SQL STATEMENT CurrentDb.Execute SQL End Sub ITEMX.accdb ITEMX.xlsx
-
مساعدة من الخبراء في نشر قاعدة بيانات وتحويلها لصيغه ويب
أبو إبراهيم الغامدي replied to Radwan0's topic in قسم الأكسيس Access
يجب عليك أو الانتهاء من إعدادات خادم الشيربوينت أولاً، ثم يمكنك تصميم قاعدة البيانات كما تريد -
مساعدة من الخبراء في نشر قاعدة بيانات وتحويلها لصيغه ويب
أبو إبراهيم الغامدي replied to Radwan0's topic in قسم الأكسيس Access
أهلا بك رضوا.. هذا وصف مجمل! أرجو أن تبسط في الشرح قليلا.. مع مثال للبيانات -
لا.. كل ما عليك فعله هو إخراج الشفرة من حدث OnLoad ووضعها في إجراء جديد مع محدد غرضي واحد، ثم في حدث OnLoad تمرر إليه اسم النموذج.. هنا ملاحظة يجب التنبيه إليها، وهي تحديد عدد السجلات التي ترسلها لكل نموذح حتى لا تتكرر السجلات في النماذج.. Private Sub Form_Load() SET_EVENTS (Me.f1) End Sub Sub SET_EVENTS(F As Object) On Error Resume Next Dim pt Dim i Dim rst As Recordset Dim ctl As Control Set rst = CurrentDb.OpenRecordset("SELECT * FROM t1 WHERE d_f='1'") '-- IMAGE CONTROL rst.MoveFirst For Each ctl In F.Controls ' typefile = TypeFileFromPath(CurrentProject.Path & "\Image\" & rst(1)) If ctl.ControlType = acImage Then If Not rst.EOF Then ctl.Picture = "" ctl.Tag = rst(0): ctl.Visible = True: ctl.OnClick = "=halaby('" & ctl.Tag & "')" pt = CurrentProject.Path & "\Image\" & rst(0) & ".jpg" If Dir(pt) <> "" Then ctl.Picture = pt Else ctl.Picture = CurrentProject.Path & "\Image\Noimage.jpg" End If rst.MoveNext End If End If Next '-- COMMAND_BUTTON CONTEOL rst.MoveFirst For Each ctl In F.Controls If ctl.ControlType = acCommandButton Then If Not rst.EOF Then ctl.Tag = rst(0): ctl.Caption = rst(2): ctl.Visible = True: ctl.OnClick = "=halaby('" & ctl.Tag & "')" rst.MoveNext End If End If Next rst.Close Set rst = Nothing End Sub