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

دروب مبرمج

الخبراء
  • Posts

    204
  • تاريخ الانضمام

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

  • Days Won

    4

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

  1. النموذج 

    sub1 

    مرتبط بإستعلام جدولي لا يمكن التعديل على البيانات اثناء الاستعلام

    اقترح بأن تستخدم جمل الاضافة لإضافة البيانات للجداول المرتبطة

     

    sub2 و sub3

    قم بتشغل اذونات التحرير

    image.png.895974f124b78b2a0f63f93a0205b989.png

     

    مرفق النموذج بعد التعديل

    image.png.61714b23ce7d31689bc80ae3bb68c14b.png

    up_ChangeSubForm.mdb

    • Like 1
  2. انشئ نموذج جديد

    وا ضف فيه مستعرض ويب

    و في حدث عند النقر على قائمة الملفات ضع الكود التالي

    Dim wb As Object
    Set wb = WebBrowser0.Object        ' ضورة اضافة اسم عنصر التحكم لمستعرض الويب
    Dim filelocation As String
    filelocation = "C:\Users\File1.pdf"     ' ضع هنا اسم عنصر التحكم الذي يحتوي على اسم الملف لعرضه
    wb.silent = True
    With wb
        .navigate2 "about:blank"
        Do Until .ReadyState = 4
            DoEvents
        Loop
        .Document.Open
        .Document.write "<!doctype html><html><head><title>my title</title></head><body scroll=""auto"" style=""margin: 0px; padding: 0px;"">" & _
                            "<embed style='padding: 70px;' src=""" & filelocation & """  width=""50%"" height=""100%"" />" & _
                            "</body></html>"
        .Document.close
    End With

     

  3. لإرسال رسالة واتس اب

    اولاً / يجب تثبيت الواتس اب على الكبيوتر الخاص بك

     

    ثانياً / هذه هي الشفرة الأساسية للإرسال

    whatsapp://send?phone=" & "" & "&text=" & ""

    ثالثاً انشئ موديول جديد و الصق فيه الشفرة التالية

    Public Function SendMsg(Phon_Number As Variant, TexTMag As String)
    Dim StrURL As Variant
    Dim StrToNumber As Variant
    Dim StrMsg As Variant
    
    StrToNumber = Phon_Number
    StrMsg = EncodeQP2(TexTMag)
    
    StrURL = "whatsapp://send?phone=" & StrToNumber & "&text=" & StrMsg
    CreateObject("WScript.Shell").Run StrURL, 1, False
    
    Call StartTimer(3)
    Call SendKeys("{ENTER}")
    
    End Function
    
    Public Function EncodeQP2(s As String) As String
        Dim i As Long
        Dim p1 As Long
        Dim p2 As Long
        Dim r As String
        Dim n As Long
        For i = 1 To Len(s)
            n = AscW(Mid(s, i, 1))
            If n < 128 Then
                r = r & "%" & Hex(n)
            ElseIf n < 2048 Then
                p1 = n \ 64
                r = r & "%" & Hex(p1 + 192)
                p2 = n Mod 64
                r = r & "%" & Hex(p2 + 128)
            Else
               
            End If
        Next i
        EncodeQP2 = r
    End Function
    
    Public Function StartTimer(NumberOfSeconds As Variant)
    On Error Resume Next
    Dim PauseTime, Start, Finish, TotalTime
        PauseTime = NumberOfSeconds
        Start = Timer
        Do While Timer < Start + PauseTime
            DoEvents
        Loop
        Finish = Timer
        TotalTime = Finish - Start
    End Function

    ثم في النموذج الخاص بك و في ازرار الارسال

    Call SendMsg("966590000000", "السلام عليكم")

     

    • Like 1
  4. استخدم دالة التجميع الشرطية DCount

    مثال على ذلك

    DCount("*","Table_Name","[ID]=" & [Forms]![Forms_Name]![TextBox1])

    هنا نكون قد طلبنا من الدالة عدد السجلات التي تحمل نفس الرقم في مربع النص TextBox1

    و يمكن بهذا الطريقة اضافة شرط كما يلي

    If DCount("*", "Table_Name", "[ID]=" & [Forms]![Forms_Name]![TextBox1]) <> 0 Then
    
        If MsgBox("تم تسجيل الصنف من قبل" & _
        vbNewLine & "هل تريد اضافة الصنف مرة أخرى؟" _
        , vbQuestion + vbMsgBoxRight + vbYesNo, "تنبيه") = vbYes Then
            DoCmd.RunCommand acCmdSave
            MsgBox "تم اضافة صنف مشابه بنجاح", vbInformation + vbMsgBoxRight, "تأكيد"
        Else
            DoCmd.RunCommand acCmdUndo
            MsgBox "تم التراجع عن الحفظ", vbCritical + vbMsgBoxRight, "تأكيد"
        End If
        
    Else
    
        MsgBox "تم تسجيل الصنف بنجاح", vbInformation + vbMsgBoxRight, "تأكيد"
    
    End If

    يجب عليك الغاء المفاتيح الاساسية لكي تستطيع تنفيذ الشروط اعلاه

  5. تفضل هذا هو كود النسخة الاحتياطية بإختصار
     

    لإنشاء نسخة احتياطة من القاعدة الحالية

    Dim MyFile          As String
    Dim DstFile         As String
    Dim Syso            As Object
    Dim GetType         As Variant
    
    MyFile = CurrentProject.FullName  ' مسار القاعدة الحالية 
    GetType = Right$(MyFile, Len(MyFile) - InStrRev(MyFile, "."))
    DstFile = CurrentProject.Path & "\" & Format(Now, "dd-mm-yyyy-nss") & "." &  GetType  ' الاسم الجديد للنسخة الاحتياطية
    
    DBEngine.Idle
    
    Set Syso = CreateObject("Scripting.FileSystemObject")
    Syso.copyfile MyFile, DstFile
    Set Syso = Nothing
    
    Name DstFile As DstFile & ".ptc"
    DBEngine.CompactDatabase DstFile & ".ptc", DstFile
    Kill DstFile & ".ptc"

     

    لإنشاء نسخة احتياطية لقاعدة البيانات في حال ان القاعدة منفصلة عن الواجهة

    Dim MyFile          As String
    Dim DstFile         As String
    Dim Syso            As Object
    Dim GetType         As Variant
    
    MyFile = CurrentProject.FullName  ' مسار قاعدة البيانات
    GetType = Right$(MyFile, Len(MyFile) - InStrRev(MyFile, "."))
    DstFile = CurrentProject.Path & "\" & Format(Now, "dd-mm-yyyy-hnss") & "." & GetType  ' الاسم الجديد للنسخة الاحتياطية
    
    Set Syso = CreateObject("Scripting.FileSystemObject")
    Syso.copyfile MyFile, DstFile
    Set Syso = Nothing

     

    • Like 1
  6. ضع هذا الكود في ازرار التقرير
     

    If Not IsNull(TxtFrom) And IsNull(TxtTo) Then
    
            DoCmd.OpenReport "HR Data", acViewReport, _
            , "EmployeeHiring = #" & TxtFrom & "#"
            
    ElseIf Not IsNull(TxtFrom) And Not IsNull(TxtTo) Then
    
            DoCmd.OpenReport "HR Data", acViewReport, _
            , "EmployeeHiring Between #" & TxtFrom & "#  And #" & TxtTo & "#"
    
    ElseIf IsNull(TxtFrom) And IsNull(TxtTo) Then
    
            DoCmd.OpenReport "HR Data", acViewReport
    
    End If

    تفضل التعديل

    Test (1).accdb

  7. 16 ساعات مضت, ابوخليل said:

    تم تحقيق الفكرة  مع مراعاة تغير نظام الحضور ( الشتوي / الصيفي)

     

    خير الكلام ما قل و دل

    ابدعت ابدعت و انرت الطريق للجميع بسطور معدودة سهلة الفهم و بكفرة ابداعية خارجة عن المألوف

    • Like 1
    • Thanks 1
  8. مع استعمال المكتبة

    image.png.da659e1179662d095325dfce7a695a7a.png

    انشى موديول جديد و الصق فيه الكود التالي

    Option Compare Database
    Option Explicit
    
    Const WIA_FORMAT_JPEG = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}"
    
    Public Function MyScan()
      Dim ComDialog As WIA.CommonDialog
      Dim DevMgr As WIA.DeviceManager
      Dim DevInfo As WIA.DeviceInfo
      Dim dev As WIA.Device
      Dim img As WIA.ImageFile
      Dim i As Integer
      Dim wiaScanner As WIA.Device
    
      Set ComDialog = New WIA.CommonDialog
      Set wiaScanner = ComDialog.ShowSelectDevice(WiaDeviceType.UnspecifiedDeviceType, False, True)
    
      Set DevMgr = New WIA.DeviceManager
    
      For i = 1 To DevMgr.DeviceInfos().Count
        If DevMgr.DeviceInfos(i).DeviceID = wiaScanner.DeviceID Then
          Set DevInfo = DevMgr.DeviceInfos(i)
        End If
      Next i
    
      Set dev = DevInfo.Connect
    
      Set img = dev.Items(1).Transfer(WIA_FORMAT_JPEG)
    
      img.SaveFile CurrentProject.Path & "\img.jpg"
    
      Set img = Nothing
      Set dev = Nothing
      Set DevInfo = Nothing
      Set DevMgr = Nothing
      Set ComDialog = Nothing
    
    
    End Function

     

  9. 17 دقائق مضت, زياد الحسناوي said:

    @Ahmed_J اساتذتي الاعزاء انا ايضا اعمل على برنامج الارشفة الالكترونية ولكنني توقفت عند اخذ الكتب عن طريق السكنر - حيث لم اجد طريقة لسحب الكتاب مع مرفقاته بالكامل عن طريق السكنر بضغطة واحد الا ورقة ورقة

     

    ضبط سؤال جديد و ابشر بعزك طلبك بسيط 

    • Like 1
  10. 6 دقائق مضت, زياد الحسناوي said:

    بس سؤال كيف تم ذلك ؟ 

    المشكلة كانت في العلاقات لم يكن هنالك علاقة بين الجداول

    كل ما عملته هو انشاء علاقة 

    image.png.81d0a1ece76300aebfda3d0f190f6163.png

    و انشاء فلتر من خلال الكود

    Sub NewSearsh()
    Dim varFilter As Variant
    varFilter = Null
     
       If Not IsNull(KindBook) Then: varFilter = (varFilter) & "[KindBook] LIKE '*" & KindBook & "*'"
      
       If Not IsNull(Rbtbook) Then: varFilter = (varFilter + " AND ") & "[Rbtbook] LIKE '*" & Rbtbook & "*'"
       If Not IsNull(EntryInfo) Then: varFilter = (varFilter + " AND ") & "[EntryInfo] LIKE '*" & EntryInfo & "*'"
       If Not IsNull(NObook) Then: varFilter = (varFilter + " AND ") & "[NObook] = " & NObook
       If Not IsNull(DateBook) Then: varFilter = (varFilter + " AND ") & "[DateBook] LIKE '*" & DateBook & "*'"
       If Not IsNull(Adbook) Then: varFilter = (varFilter + " AND ") & "[Adbook] LIKE '*" & Adbook & "*'"
       If Not IsNull(SavePlace) Then: varFilter = (varFilter + " AND ") & "[SavePlace] LIKE '*" & SavePlace & "*'"
       If Not IsNull(EtC) Then: varFilter = (varFilter + " AND ") & "[EtC] LIKE '*" & EtC & "*'"
       If Not IsNull([NoW]) Then: varFilter = (varFilter + " AND ") & "[NoW] LIKE '*" & [NoW] & "*'"
       If Not IsNull(DateW) Then: varFilter = (varFilter + " AND ") & "[DateW] LIKE '*" & DateW & "*'"
       If Not IsNull(AljegehaW) Then: varFilter = (varFilter + " AND ") & "[AljegehaW] LIKE '*" & AljegehaW & "*'"
       SubSur = varFilter
    End Sub

     

    و اخذنا نسخة من الاستعلام لوضعها ضمن الكود و دمج الفلتر معها

×
×
  • اضف...

Important Information