اذهب الي المحتوي
أوفيسنا

jjafferr

أوفيسنا
  • Posts

    9,756
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    396

مشاركات المكتوبه بواسطه jjafferr

  1. السلام عليكم 🙂

     

    عملت على مشروع لمؤسسة خيرية فيه العديد من المستخدمين ، والعمل هو عبارة عن طباعة نحو 1000 كوبون خلال ساعة واحدة لوجبة غذاء مجانية ، وحوالي 600 كوبون خلال ساعة اخرى ، والكوبون يحتوي على شعار المؤسسة، وشعار آخر يتغير شبه كل يوم.

     

    الطرق المتبعة لعرض الصور في التقرير هي:

    1. قراءة الصور من مجلد المشاركة، ولكن قراءتها لكل كوبون، يجعل الشبكة مزدحمة بمرور الصور فيه، مما يعمل بطئ في الشبكة،
    2. نسخ الصور من مجلد المشاركة الى مجلد محلي على كمبيوتر المستخدم عند تشغيل البرنامج، ومن ثم قراءة الصور من المجلد المحلي عند طباعة كل كوبون،
    3. اما الطريقة الاسرع من الطريقتين اعلاه هي:
      1. عرض الصور من مجلد المشاركة عند تشغيل البرنامج، في النموذج الرئيسي للبرنامج في حقل الصور،
      2. عرض الصور في التقرير، بقراءة كل صورة من النموذج الرئيسي، هكذا لصورة واحدة:
    
    في التقرير، على حدث "عند التنسيق" في قسم 
    Details  التفصيل
    
    نضع هذا الكود
    Forms!frm_Main!myPic  هو اسم حقل الصورة في النموذج الرئيسي
    pic هو اسم حقل الصورة في التقرير
      
    Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
    
        Me.pic.PictureData = Forms!frm_Main!Mypic.PictureData
    End Sub

     

    جعفر

    • Like 5
  2. وعليكم السلام 🙂

    مشاركة مع اخوي @Foksh 🙂

     

    هذا كود تفريغ حقل البحث، اذا كان النقر على زر البحث:

    Me.Txt_Search = ""
    او
    Me.Txt_Search = Null
    او
    Me.Txt_Search = Empty
    
    ثم
    Me.Txt_Search.Setfocus

    .

    اما اذا لم يوجد زر بحث، وكان الكود يعمل البحث على حدث "بعد التحديث" لحقل البحث ، فيجب ان ننقل التركيز على اي كائن في الموذج يقبل التركيز، ثم نستعمل الكود اعلاه ، هكذا مثلا:

    دائما في نماذجي عندي زر لغلق النموذج اسمه
    cmd_close
    فعليه يصبح الكود:
    
    
    me.cmd_close.setfocus
    
    Me.Txt_Search = ""
    او
    Me.Txt_Search = Null
    او
    Me.Txt_Search = Empty
    
    ثم
    Me.Txt_Search.Setfocus

    .

    جعفر

    • Like 7
  3. السلام عليكم 🙂

     

    32 دقائق مضت, Mohammed Alsakka said:

    لم افهم قصدك بالقاعدة الامامية والخلفية ارجو التوضيح

    بعد عمل برنامج الاكسس ، نقسم البرنامج الى جزئين (هناك عدة طرق لعمل هذا ، والبحث في المنتدى سيعطيك الكثير من الروابط) :

    - جزء الجداول (ويسمى الجزء الخلفي BE) ، هو ملف واحد فقط وجميع المستخدمين يربطون واجهتهم به : وفيه الجداول فقط ، ونضع هذا الجزء في مجلد على السيرفر (او على كمبيوتر آخر في الشبكة) ، ويكون للمستخدمين اذن Read/write لهذا المجلد ،

    - جزء بقية كائنات البرنامج (ويسمى جزء الواجهة FE) ، لكل مستخدم واجهته على كمبيوتره ، وكلهم مرتبطين بجداول BE  

  4. انا اعتذر عن مواصلة الموضوع ، من بداية الموضوع واحنا نطلب معلومات منك ونطلب ، ولكن للاسف الشديد مافي مساعدة من جانبك ، فكل الوقت اللي قضيناه هنا اصبح هباء منثور.

     

     

    رجاء من الاعضاء يتفضل اللي يقدر يساعد.

    • Haha 1
  5. وعليكم السلام 🙂

     

    في التقرير ، اتبع هذه الخطوات ، انقر على تبويب Page ، واختار الطابعة لهذا التقرير ، 

    ثم ارجع الى Print Options واجعل جميع الارقام التي في المربع الاحمر 0 ، ثم انقر موافق ،

    ثم انقر على رقم 3 من جديد لتفتح النافذة المنبثقة ، والآن سترى ان مسافات حواف الطابعة تغيرت ولا تستطيع ان تستعمل ارقام اصغر منها ،

     

    image.png.ed194884014dc407d1b1b3ae4513371d.png

    .

    رجاء النظر في هذه المشاركة لمعرفة تفاصيل اكثر عن عرض التقرير

     

    **** رجاء ملادظة ان جهازي لا يستخدم النظام المتري ، فالمقاييس في الصورة هي بالبوصة

    1587.Label.zip

  6. وعليكم السلام ورحمة الله وبركاته

     

    العمل سهل للتقرير :

    اعمل تقرير غير مقيد بمعيار ، ولنسميه rpt ، وضع هذا الكود لفتح التقرير :

    
        Dim strIN As String
        
        strIN = InputBox("رجاء ادخل ارقام الدول، بينهم فاصلة")
    
        DoCmd.OpenReport "rpt", acViewPreview, , "[ConID] IN(" & strIN & ")"
        

     

    • Like 1
  7. الظاهر انك تريد تعمل شيء مثل القاموس ،

    بمعنى اذا المستخدم كتب اي جزء من الكلمة ، فيجب جلب الكلمة الكاملة لها ، مثلا نستخدم كلمة positive :

    اذا المستخدم كتب اي من الكلمات التالية ، فيجب ان نظهر كلمة positive :

    positiv

    positi

    posit

    posi

    pos

    po

     

    اذا كان تخميني صحيح ، فعندك 3 طرق لعمل هذا:

    1. تعمل جدول فيه حقلين: حقل مختصر الكلمة ، وحقل الكلمة كاملة ، وانا اوصي بهذه الطريقة ، لأنك لا يجب ان تتدخل برمجيا كلما زادت الكلمات ، وانما تعمل نموذج وتجعل المستخدم يدخل الكلمات ،

    وتقوم بإدخال جميع الاحتمالات المختصرة ، ومقابلها تكتب الكلمة الكاملة ، مثل الصورة التالية ، ثم تستخدم امر مثل DLoopUp لجلب الكلمة الكاملة :

    image.png.e14b259219b8655d04c214351707dc07.png

    .

    2. تعمل نفس الشيء اعلاه ، ولكن في الكود ، هكذا :

        If Me.Text16 Like "*positive*" Or _
           Me.Text16 Like "*positiv*" Or _
           Me.Text16 Like "*Positi*" Or _
           Me.Text16 Like "*posit*" Or _
           Me.Text16 Like "*posi*" Or _
           Me.Text16 Like "*Pos*" Then
        
               Me.Text18 = "HIGH"
        
        ElseIf Me.Text16 Like "*LESS THAN*" Or _
               Me.Text16 Like "*LESS THA*" Or _
               Me.Text16 Like "*LESS TH*" Or _
               Me.Text16 Like "*LESS T*" Or _
               Me.Text16 Like "*LESS*" Or _
               Me.Text16 Like "*LES*" Then
            
               Me.Text18 = "LOW"
        
        End If

    .

    3. يجب ان تكون لغة الكيبورد هي العربية ، وتعمل نفس الشيء اعلاه ،  ولكن من خلال اعدادات برنامجك :

    image.png.49dbc44ab837d7566dbf7b94d3fb47a2.png

  8. 3 ساعات مضت, imadimadimad said:

    لتحديث الصفحه قبل الشرط - حتى ياخذ التغيرات الجديده في الارقام

    نعم ممكن ، ولكن لأي سجل؟

    يعني تريد المستخدم يدخل البيانات ، ولما يغلق النموذج ، يعرف اي من بياناته غلط !!

     

    وبعدين اي معلومة تعتبر المعلومة الصحيحة ، num1 او num2 اذا اردتنا ان نغيرها !!

     

    مع وجود الرسالة ، عملت لك تنسيق شرطي ، اذا القيمتين لا يساوون بعض ، فالحقلين يكونون بلون مختلف

    image.png.1b0e434d9ad3c73ef3c2d973336f8e58.png

    .

     

    يجب عليك تحليل طريقة العمل ، وبعدين ممكن توصل الى الطريقة الاصح للحل 🙂

    1591.تجريبي.accdb.zip

    • Like 1
  9. وعليكم السلام 🙂

     

    1. انت تريد ان يتم فتح النموذج "رسالة" اذا قيمة الحقلين غير متساويين في السجل ، وليس على مستوى النموذج ،

    فعليه يجب ان تضع الكود على حدث "بعد تحديث" الحقل الثاني "نص2" (و الافضل لك ان تكتب اسماء الحقول بمعنى الحقل ، وليس نص1 .... ) ،

    2. يجب ان تعطي اسم الحقل الذي في النموذج ، وليس اسم الحقل في الجدول/الاستعلام :

     

    image.png.400a3610ed09237772e45690ee80770e.png

    • Like 1
  10. وعليكم السلام اخوي محمد 🙂

     

    في المرة القادمة ان شاء الله ، رجاء مراعاة قوانين المنتدى بوضع عنوان للموضوع يشرح المشكلة 🙂

     

     

    شرحك غير واضح !!

    رجاء تشرح المشكلة بطريقة اخرى ، والافضل ان تكون بخطوات ، وتشرح لنا ايش بالضبط المشكلة.

     

    جعفر

  11. وعليكم السلام 🙂

     

    الظاهر هذا الكود في VBA ، فخليني اعلمك كيف تصطاد🙂

     

    اجعل كودك هكذا :

    dim mySQL as string
    
    mySQL="SELECT * FROM tblVacation where (((tblVacation.emp_code)= " & [TempVars]![EmpIdTemp] & " )) ORDER BY vacationstartdate Asc;"
    
    debug.print mySQL

    .

    في اسفل النافذة بتحصل على كود مثل التالي:

    SELECT * FROM tblVacation where (((tblVacation.emp_code)= 1234 )) ORDER BY vacationstartdate Asc;

    .

    انسخ الكود ،

    افتح استعلام جديد ، ولما تجيك نافذة اختيار الجداول ، اغلق النافذة ، 

    ثم انقر بالفأرة اليمين في منتصف الاستعلام ، واختار SQL

    الصق الكود اعلاه ،

    ثم اختار Design ، فتحصل على استعلام عادي ،

    واضف الشرط الجديد ،

    ثم انقر الزر اليمين ، و اختار SQL مرة اخرى ، فتحصل على الكود المطلوب :

    1590.gif.1d4f750d056b7d5ad9566b2e4038f017.gif

    .

    والآن يمكن تنظيف الكود كالتالي:

    من
    SELECT [VacationLife] AS Expr1, *
    FROM tblVacation
    WHERE ((([tblVacation].[emp_code])=1234) AND (([VacationLife])="سارية"))
    ORDER BY vacationstartdate;
    
    الى
    SELECT [VacationLife], * FROM tblVacation WHERE [emp_code]=1234 AND [VacationLife]='سارية' ORDER BY vacationstartdate
    
    
    ثم الى
    "SELECT [VacationLife], * FROM tblVacation WHERE [emp_code]= " & [TempVars]![EmpIdTemp] & " AND [VacationLife]='سارية' ORDER BY vacationstartdate"

     

    • Like 1
  12. وعليكم السلام 🙂

     

    ايش رايك انت بنفسك تتأكد من هذه المعلومة 🙂

     

    في الواقع الاكسس يحفظ جميع تفاصيل تصاميم النماذج والتقارير وبقية كائنات البرنامج كقيمة نصية ،

    وعند النقر على الزر كما في الصورة ادناه ، فسيحول الاكسس معلومات هذا النموذج الى ملف نصي ، وسيفتحه لك :

    image.png.7ac6829d0148d136a8eb35bca4bbb61c.png

    .

    لما يفتح الملف ، ابحث عن كلمة Auto_ID حتى تعرف الجواب على سؤالك ، فالبيانات ستكون عن الحقل الاصفر وبقية اعداداته (طبعا بقية تفاصيل النموذج موجودة في ملف النص) 🙂

     

    ----------------------------------------------------------------------------------

     

    ولتعم الفائدة ويكتمل الموضوع :

     

    هذه الاوامر لحفظ جميع كائنات الاكسس الى ملفات نص ، 

    و اوامر لقراءة ملفات النص وتحويلها الى كائنات في برنامج لاكسس :

    
    Public Sub ExportDatabaseObjects()
      ' https://access-programmers.co.uk/forums/showthread.php?t=99179
      On Error GoTo Err_ExportDatabaseObjects
        
      Dim db As Database
      Dim td As TableDef
      Dim d As Document
      Dim c As Container
      Dim i As Integer
      Dim sExportLocation As String
      Dim strSql As String
      
      Set db = CurrentDb()
      
      sExportLocation = "C:\YOURLOCATION\"
      
      'For Each td In db.TableDefs 'Tables
      ' If Left(td.Name, 4) <> "MSys" Then
      '   DoCmd.TransferText acExportDelim, , td.Name, sExportLocation & "Table_" & td.Name & ".txt", True
      ' End If
      'Next td
      
      Set c = db.Containers("Forms")
      For Each d In c.Documents
        strSql = "insert into _ApplicationObjectList ( ObjType, ObjName, ObjLocation ) " & _
                 "select " & acForm & " as ObjType, '" & d.Name & "' as ObjName, '" & sExportLocation & "Form_" & d.Name & ".txt" & "' as ObjLocation;"
        db.Execute strSql, dbSeeChanges
        Application.SaveAsText acForm, d.Name, sExportLocation & "Form_" & d.Name & ".txt"
      Next d
      
      Set c = db.Containers("Reports")
      For Each d In c.Documents
        strSql = "insert into _ApplicationObjectList ( ObjType, ObjName, ObjLocation ) " & _
                 "select " & acReport & " as ObjType, '" & d.Name & "' as ObjName, '" & sExportLocation & "Report_" & d.Name & ".txt" & "' as ObjLocation;"
        db.Execute strSql
        Application.SaveAsText acReport, d.Name, sExportLocation & "Report_" & d.Name & ".txt"
      Next d
      
      Set c = db.Containers("Scripts")
      For Each d In c.Documents
        strSql = "insert into _ApplicationObjectList ( ObjType, ObjName, ObjLocation ) " & _
                 "select " & acMacro & " as ObjType, '" & d.Name & "' as ObjName, '" & sExportLocation & "Macro_" & d.Name & ".txt" & "' as ObjLocation;"
        db.Execute strSql
        Application.SaveAsText acMacro, d.Name, sExportLocation & "Macro_" & d.Name & ".txt"
      Next d
      
      Set c = db.Containers("Modules")
      For Each d In c.Documents
        strSql = "insert into _ApplicationObjectList ( ObjType, ObjName, ObjLocation ) " & _
                 "select " & acModule & " as ObjType, '" & d.Name & "' as ObjName, '" & sExportLocation & "Module_" & d.Name & ".txt" & "' as ObjLocation;"
        db.Execute strSql
        Application.SaveAsText acModule, d.Name, sExportLocation & "Module_" & d.Name & ".txt"
      Next d
      
      For i = 0 To db.QueryDefs.count - 1
        strSql = "insert into _ApplicationObjectList ( ObjType, ObjName, ObjLocation ) " & _
                 "select " & acQuery & " as ObjType, '" & db.QueryDefs(i).Name & "' as ObjName, '" & sExportLocation & "Query_" & db.QueryDefs(i).Name & ".txt" & "' as ObjLocation;"
        db.Execute strSql
        Application.SaveAsText acQuery, db.QueryDefs(i).Name, sExportLocation & "Query_" & db.QueryDefs(i).Name & ".txt"
      Next i
      
      Set db = Nothing
      Set c = Nothing
      
      MsgBox "All database objects have been exported as a text file to " & sExportLocation, vbInformation
      
    Exit_ExportDatabaseObjects:
      Exit Sub
      
    Err_ExportDatabaseObjects:
      MsgBox Err.Number & " - " & Err.Description
      Resume Exit_ExportDatabaseObjects
    End Sub
    
    -------------------------
    
    Sub RestoreDatabaseObjects()
      Dim strSql As String
      Dim rs As DAO.Recordset
      
      strSql = "select * from _ApplicationObjectList"
      Set rs = CurrentDb.OpenRecordset(strSql)
      
      If Not rs.BOF And Not rs.EOF Then
        rs.MoveFirst
        While (Not rs.EOF)
          Debug.Print rs.Fields("ObjName")
          Application.LoadFromText rs.Fields("ObjType"), rs.Fields("ObjName"), rs.Fields("ObjLocation")
          rs.MoveNext
        Wend
      End If
      rs.Close
      Set rs = Nothing
    End Sub
        
        
        
    =====================
    for the new TableDataMacro
    
    To export:
    SaveAsText acTableDataMacro, "TableName", "C:\PathToFile\DataMacro.xml"
    
    To import:
    LoadFromText acTableDataMacro, "TableName", "C:\PathToFile\DataMacro.xml"    

     

    جعفر

    1589.SaveToText.mdb.zip

×
×
  • اضف...

Important Information