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

أبو عبدالله الحلوانى

الخبراء
  • Posts

    1,727
  • تاريخ الانضمام

  • Days Won

    5

مشاركات المكتوبه بواسطه أبو عبدالله الحلوانى

  1. 53 دقائق مضت, jjafferr said:

    الظاهر انك استخدمت صيغة mdb ، ووجدت هذا الجواب في احد المواقع:

    الظاهر أني أتعبت حضرتك بسؤالي حقا أنا آسف :wub: 

    1- استخدمت صيغة accdb

    2- لدي علي الجهاز نسختي أكسس 2010 و 2016  (يبدو أن المشكلة بوجود النسختين معا أعتقد هذا لأني حاولت الاتصال بنفس المكتبة من vb.net  وأعطاني خطأ في الاتصال :blink:)

    3- بعد البحث وجدت هذه الملفات 

    سأجرب وأوفيكم بالنتيجة

     

     

    1233.png

  2. في ٢٢‏/١‏/٢٠٢١ at 14:51, محمد أبوعبدالله said:

    هذا الموديل للخطوات 1 ، 2 ، 4

    جزاكم الله خيرا

    كنت أحاول فعل هذا من خارج الأكسس بواسطة اسكربت 

    وتمت الفائدة والحمد لله

    سأرفق هنا الاسكربت بعد التعديل لتعم الفائدة ان شاء الله 

     

    • Like 2
  3. السلام عليكم 

    بعد التجربة يظهر معي هذا الخطأ ولا يكتمل العمل

    ما المشكلة

    هل هذا يعني أن لدي أخطاء يجب معالجتها - رغم أني أقوم بعمل compile ولا تظهر أخطاء كما بالصورة المرفقة

    وجزاكم الله خيرا

    123.png

    1231.png

  4. 10 ساعات مضت, محمدفتاح said:

    كيف اكتب جملة  sqry.SQL

    لم أفهم ما تقصد ماذا تريد أن تفعل بالتحديد هل تقصد تشغيل الاستعلام السابق من خلال الضغط علي زر مثلا

    كل ما عليك أن تكتب هذا الكود خلف الزر المراد التنفيذ من خلاله 

    Docmd.RunSQL "StrFlter"

    وفقط 

    أما ان كنت تعني شيئا آخر فبرجاء التوضيح أكثر 

  5. وهذا شكل الكود الحالي بعد التعديلات الموضحة بالرد السابق

    Sub Createadbe()
    On Error Resume Next
    dim fso
    dim mePath
    
    Set fso = CreateObject("Scripting.FileSystemObject")   
    mePath = fso.GetAbsolutePathName(".")
    
    if fso.FileExists(mePath & "\Mydb.accde")= True then
    	fso.DeleteFile mePath & "\Mydb.accde"
    end if
    
    If fso.FileExists(mePath & "\Mydb.accdb")= True then
    Dim wrk 
    Dim dbs 
    	
    	rem======here will make accde file from accdb======
    	With Createobject("Access.Application")
    		.AutomationSecurity = 1
    		.SysCmd 603, mePath & "\Mydb.accdb", mePath & "\Mydb.accde"
    		.Quit
    	End With
    	rem=======================================================
    	
    	rem=====here will add a password to accde file ============
    	rem ====put we want check if file is created or not=======	
    	rem ===and wait untile create=============================
    	
    	wscript.sleep(15000)
    
    	if fso.FileExists(mePath & "\Mydb.accde")= True then
    		With Createobject("Access.Application")		
    			set wrk= .DBEngine.Workspaces(0)	
    			set dbs= wrk.OpenDatabase(mePath & "\Mydb.accde", True)	
    			dbs.NewPassword "", PSW: passDatabase = "myPassword"
    			.Quit
    		End With
    	else 
    		msgbox "the program is not found!" 
    	end if	
    	rem======end and exit====================================	
    
    	fso.DeleteFile mePath & "\Mydb.accdb"
    Else
    	msgbox "Some file Not Exists!"
    End If
    
    Rem Now kill My silf:
    Rem fso.DeleteFile mePath & "\MyVbsName.vbs"
    
    	if err.number = 0 then
    	    with fso
    	         If .FileExists(mePath & "\Mydb.accdb") then .DeleteFile(mePath & "\Mydb.accdb")
    	         If .FileExists(mePath & "\Database.accdb") then .DeleteFile(mePath & "\Database.accdb")
    	         If .FileExists(mePath & "\Database.mdb") then .DeleteFile(mePath & "\Database.mdb")
    	         If .FileExists(mePath & "\MyvbsName.vbs") then .DeleteFile(mePath & "\MyVbsName.vbs")	
    	    End with
    	Else 
    		msgbox err.number & err.discription	
    	End if
    End sub

     

  6. 13 دقائق مضت, SEMO.Pa3x said:

    عليكم السلام ماذا تقصد بالاسكربت؟

    ملف بامتداد vbs.

    vbScript

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

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

    1- فكان طلبي الأول هل يمكن تمرير كلمة المرور هذه بطريقة ما  من داخل الاسكربت فقد جربت أمر Sendkeys  ولم يفلح الأمر!

    2- فكرت أن أبقي الكود الأول علي حاله واضع قاعدة البيانات بدون كلمة مرور ثم بعد انشاء النسخة accde يتم تغير كلمة المرور لها

    من خلال كود آخر مثل الكود الثاني. وتم عمل الكود الثاني بنجاح والحمد لله 

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

    فهل من طريقة لجعل الاسكربت ينتظر الانتهاء من انشاء النسخة accde أولا ثم ينتقل لتنفيذ خطوة تغير كلمة المرور!

    وجزاكم الله خيرا

     

  7. اضافة الي ما تفضل به استاذنا أبو خليل يمكن تقسيم الكود من خلال تجميع أجزائه بمتغير ما مثل:

    Dim StrFlter as string
    StrFlter = "SELECT setdown_no, [arabic*-], arabic,iif([arabic]='Û','Û',Val([arabic*-])+Val([arabic])) AS ta," StrFlter =StrFlter &  " [mathematics*-],
    mathematics,iif([mathematics],'Û','Û',Val([mathematics*-])+Val([mathematics]))"
    StrFlter =StrFlter & " AS tm,[sociability_studies*-], sociability_studies,iif([sociability_studies],'Û','Û',Val([sociability_studies*-])+Val([sociability_studies]))"
    StrFlter =StrFlter & " AS tso, [sciences*-],[sciences*1], sciences,iif([sciences],'Û','Û',Val([sciences*-])+Val([sciences])+Val([sciences*1]))"
    StrFlter =StrFlter & " AS tsc, [foreign_language*-], foreign_language,iif([foreign_language],'Û','Û',Val([foreign_language*-])+Val([foreign_language]))"
    StrFlter =StrFlter & " AS te, [religion_education*-], religion_education,on],'Û','Û',Val([religion_education*-])+Val([religion_education]))" 
    StrFlter =StrFlter & " AS trel, [advanced_english*-], advanced_english1 ,iif([],'Û','Û',Val([advanced_english*-])+Val([advanced_english1]))"
    StrFlter =StrFlter & " AS tad,tblbasicdata.class FROM students INNER JOIN tblbasicdata ON students.class = tblbasicdata.class"
    StrFlter =StrFlter & " WHERE ((tblbasicdata.class='" & Me.txt & "')) ORDER BY setdown_no;"

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

    تمنياتي بالتوفيق

  8. كتبت هذا الكود داخل روتين بالأكسس وعمل معي بشكل جيد والحمد لله

    Public Sub CangeDBPass(ByVal Dbaz As String, ByVal PSW As String)
    Dim wrk As Workspace
    Dim dbs As Database
    
    Set wrk = DBEngine.Workspaces(0)
    Set dbs = wrk.OpenDatabase(Dbaz, True)
    
        If Len(PSW & "") > 0 Then
            dbs.NewPassword "", PSW: passDatabase = PSW
        Else
            MsgBox "You don't set password!"
        End If
    
    End Sub

    ولكن لست أدري كيف أطوعه ليعمل داخل الاسكربت؟!

     

  9. 10 ساعات مضت, kha9009lid said:

    قد يفوت وقت الصلاة من كان مريضا او على سفر ويرغب في الجمع للظهر والعصر جمع تاخير وكذلك المغرب والعشاء جمع تاخير فهذه من حالات التاخير المباح

    شكر الله لكم سعت صدركم وتلطفكم في النصح 

    ويكون الخوف والمطر أحيانا من الأعذار المبيحة للجمع والله أعلم 

    وانما اذكر نفسي ومن أحب بوجوب الصلاة بوقتها وان كنت أول المقصرين وآخرهم (لكن ديما يقال علي الصعايدة كلامهم دبش :biggrin:)

    وجزاكم الله خيرا 

    • Thanks 1
  10. 37 دقائق مضت, jjafferr said:

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

    حقيقة لا تكفي كلمات الشكر التي نعرفها حقكم - فعطائكم الغير منقطع لا تكفيه كلمات الشكر.

    ولكن نقول كما علمنا رسول الله (صلي الله عليه وسلم) فقال : ( مَنْ صَنَعَ إِلَيْكُمْ مَعْرُوفًا فَكَافِئُوهُ ، فَإِنْ لَمْ تَجِدُوا مَا تُكَافِئُونَهُ فَادْعُوا لَهُ حَتَّى تَرَوْا أَنَّكُمْ قَدْ كَافَأْتُمُوهُ) . رواه أبو داود (1672) . وصححه الألباني في صحيح أبي داود

    وكما قال: (صَلَّى اللَّهُ عَلَيْهِ وَسَلَّمَ) : ( مَنْ صُنِعَ إِلَيْهِ مَعْرُوفٌ فَقَالَ لِفَاعِلِهِ : جَزَاكَ اللَّهُ خَيْرًا فَقَدْ أَبْلَغَ فِي الثَّنَاءِ ) . رواه الترمذي (2035) . وصححه الألباني في صحيح الترمذي .

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

     

    • Like 1
  11. السلام عليكم ورحمة الله وبركاته

    أقوم بتحويل قاعدة البيانات الي صيغة accde  باستخدام اسكربت مثل هذا

    Call Createadbe
    
    Sub Createadbe()
    On Error Resume Next
    dim fso
    dim mePath
    
    Set fso = CreateObject("Scripting.FileSystemObject")   
    mePath = fso.GetAbsolutePathName(".")
    
    Rem here we test if accde file is exist And delete it if it is exist
    Rem====================================================================
    if fso.FileExists(mePath & "\Write Here Your accde file Name")= True then
    	fso.DeleteFile mePath & "\Write Here Your accde file Name"
    end if
    
    Rem Here Test if our accdb file is Exist and get started
    Rem======================================================
    If fso.FileExists(mePath & "\Write Here Your accdb file Name")= True then
    	With Createobject("Access.Application")
    	.AutomationSecurity = 1
    	.SysCmd 603, mePath & "\Write Here Your accdb file Name", mePath & "\Write Here Your accde file Name"
    	.Quit
    	End With
    	MsgBox "Conversion Done Successfully!"
    	fso.DeleteFile mePath & "\Write Here Your accdb file Name"
    Else
    msgbox "Conversion Not Done; Some file Not Exists!"
    End If
    
    Rem Now kill My silf:
    Rem==================
    	if err.number <> 0 then
    	    with fso
    	         If .FileExists(mePath & "\Write Here Your accdb file Name") then .DeleteFile(mePath & "\Write Here Your accdb file Name")
    	         If .FileExists(mePath & "\Database.accdb") then .DeleteFile(mePath & "\Database.accdb")
    	         If .FileExists(mePath & "\Database.mdb") then .DeleteFile(mePath & "\Database.mdb")
    	         If .FileExists(mePath & "\ConversionAccdbToAccde.vbs") then .DeleteFile(mePath & "\ConversionAccdbToAccde.vbs")	
    	    end with	
    	end if
    End sub

    ولكن واجهتني مشكلة أرهقني البحث لها عن حل حتي هذا الوقت. وأرجو من الله أن يوفقكم في ايجاد حل لها 

    1- كيف يتم تمرير كلمة المرور للقاعدة المحية بكلمة مرور من خلال الاسكربت؟! 

    2- وان كان الحل الأول غير ممكن فيكف أغير كلمة المرور من خلال الاسكربت بعد تحويل قاعدة البيانات الي accde 

    وجزاكم الله عني خيرا

  12. 10 ساعات مضت, engc2011e said:

    عايز لما اطبعهم يتم طباعتهم بشكل تلقائي

     

    10 ساعات مضت, engc2011e said:

    اسم الحفظ 

    أولا- أخي الأمر الذي تستخدمه لنسخ نص الي الذاكرة المؤقته لحين لصقه بموقع آخر

    ثانيا- أعذرني فلم أفهم مطلبك بالتحديد هل تريد تصدير التقرير مثلا الي word أو pdf  مثلا -أم أنك تريد طابعة التقارير علي ورق باستخدام الـ printer 

    كلام حضرتك أُشكل علي من فضلك حدد ما تريد بمزيد من التوضيح.

    • Like 1
  13. ابحث في المنتدي عن العمل علي نوت 32 و 64 وستجد الكثير من الموضوعات التي تحدثت عن هذه المشكلة وتم وضع حلول متعددة لها

    ولكن مبدأيا قم بوضع هذه الكلمة PtrSafe قبل Function وبعد Declare

    واخبرنا بالنتائج

    وللمزيد راجع ما قالت ميكروسوفت عن هذا هنا

    https://docs.microsoft.com/en-us/office/client-developer/shared/compatibility-between-the-32-bit-and-64-bit-versions-of-office

  14. السلام عليكم 

    طلبك كما فهمت سيحتاج الي ضبط بعض الاعدادات بالويندوز 

    عموما قد قمت بصنع هذا من أجلك جرب لعله يفي بالغرض 

    وان احتجت للاستزادة من اعدادات الويندوز لايقاف عمل alt + tab  انظر هذا الرابط

    https://windowsreport.com/alt-tab-not-working-windows-8/

     

    TestStopAltTabButton.accdb

×
×
  • اضف...

Important Information