-
Posts
10020 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
408
نوع المحتوي
التقويم
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
السلام عليكم ورحمة الله وبركاته عملت مثال على الرابط التالي وبه مرفق يعمل على 32 بت و 64 بت: http://www.officena.net/ib/topic/64325-مثال-يعمل-على-اكسس-32-بت-و-64-بت/ جعفر
-
السلام عليكم ورحمة الله وبركاته هذا الموضوع اُثير اكثر من مرة في الآونة الاخيرة ، ورأيت من الافضل ان اضع مثال ليقتدي به الجميع وقبل ان نبدأ ، اود ان اشير الى انني اعمل على اكسس 32 بت ، ولا املك نسخة من اكسس 64 بت احب ان اشير الى الرابط الذي شرحت فيه ان مايكروسوفت توصي بتنصيب الاوفيس / اكسس 32 بت ، بغض النظر عن نوع الوندوز المنصّب على الكمبيوتر ، سواء كان 32 بت او 64 بت: http://www.officena.net/ib/topic/64036-هل-استخدم-اوفيس-32-بت-او-64-بت/ ولكن ، ماذا نفعل اذا عملنا برنامجنا على اكسس 32 بت ، واتضح ان الزبون عنده جهاز فيه اكسس 64 بت المثال التالي يشتغل على 32 بت و 64 بت ، ونستطيع ان نستفيد منه لعمل برنامجنا البرنامج المرفق ، بعد فك الضغط ، سيحتوي على 3 برامج: . هذا برنامج No_Password_BE.accdb ، وبه جدول واحد ، ولا يحتاج الى كلمة سر لفتحه: . هذا برنامج Password_is_jj_BE.accdb ، وبه جدول واحد ، وكلمة السر لفتحه هي jj: . البرنامج: JStreetAccessRelinker2.accdb من الرابط http://www.jstreettech.com/downloads.aspx ، وبه ماكرو ووحدات نمطية تعمل على 32 بت و 64 بت (فالفضل في هذا المثال يعود للبرنامج وليس لي ) ، وقد قمت بإضافة نموذج لربطه مع احد برنامج الجداول اعلاه ، ومبدئيا فهو مرتبط مع البرنامج No_Password_BE.accdb ، . وعند فتح البرنامج لأول مرة ، سوف يفتح نافذة تطلب معرفة مكان برنامج الجداول No_Password_BE.accdb ، وتستطيع ان تنقر على الزر Link Another BE ، وستفتح لك نافذة تطلب منك معرفة مكان برنامج الجداول الجديد الذي تريد ان تربطه (بدل البرنامج No_Password_BE.accdb) : . وبما ان البرنامج هذا محمي بكلمة سر ، فسوف تظهر لك نافذة لإدخال كلمة السر (لاحظ ان الادخال مشفر) : . وعندما يتم الربط ، سترى رسالة التاكيد: . الرجاء من الشباب الذين لديهم نسخة من الاكسس 64 بت ، التاكد من ان البرنامج يشتغل على كمبيوترهم بدون اخطاء. عندما نريد ان نعمل برنامج يشتغل على النسختين 32 و 64 بت ، فكود النماذج هو نفسه بين نسختي 32 بت و 64 بت ، والشئ الوحيد الذي يتغير هو دوال الوحدات النمطية API ، والكود الذي ينادي هذه الوحدات (بغض النظر سواء كان في نموذج او في وحدة نمطية مستقلة) ، هنا سوف اعطي مثال واحد من الكود عن طريقة العمل للنسختين 32 و 64 بت: الكود التالي يستعمل دالة API فتح نافذة اختيار ملف ، والدالة هي 32 بت (لاحظ comdlg32.dll ) : Private Declare Function GetOpenFileName Lib "comdlg32.dll" _ Alias "GetOpenFileNameA" (OPENFILENAME As tagOPENFILENAME) As Long الان اذا اردنا ان نجعل هذه الداله API تعمل على 64 بت كذلك ، فالكود يجب ان يكون: #If VBA7 Then 'هذه لنسخة 64 بت Private Declare PtrSafe Function GetOpenFileName Lib "comdlg32.dll" _ Alias "GetOpenFileNameA" (OPENFILENAME As tagOPENFILENAME) As Boolean #Else 'وهذه لنسخة 32 بت Private Declare Function GetOpenFileName Lib "comdlg32.dll" _ Alias "GetOpenFileNameA" (OPENFILENAME As tagOPENFILENAME) As Long #End If ولاحظ في كود البرنامج ، انه تم جمع جميع الدوال مع بعض ، وجمعها في if# و else# و end if# واحدة. وهناك اصدار جديد لكود الربط ، ويمكن انزاله من هنا: http://www.jstreettech.com/files/JStreetAccessRelinker2.zip جعفر 238.Work_on_32Bits_and_64Bits.zip
-
أخي طارق اذا عندك اي استفسار ، رجاء ان تسأل ، لأني يوم الاربعاء صباحا على سفر ولن استطيع دخول المنتدى لفترة. جعفر
-
السلام عليكم ورحمة الله وبركاته . نعم يمكن عمل هذا ، بإتباع التعليمات حسب ما وضحت في الرابط اعلاه http://www.officena.net/ib/topic/59661-الأكسس-32-بت،-64-بت/#comment-398477 في الرابط التالي توضيح من مايكروسوفت https://msdn.microsoft.com/en-us/library/office/gg264421.aspx . . الظاهر اني لم اشرح نفسي بشكل واضح في الرابط السابق ، مما نتج عنه هذا المفهوم الخاطئ ، فانا اعتذر عن هذا جعفر
-
تفضل 1. أضفت حقل جديد للنموذج وجعلته مخفيا . 2. الكود اصبح: 'only split is nfous is empty If Len(Me.nfous & "") <> 0 Then Exit Sub Dim x() As String x = Split(Me.barcode, "+") Me.nfous = DLookup("[NoufousName]", "NoufousTable", "[Field1]='" & x(0) & "'") Me.nfous_ID = DLookup("[NoufousID]", "NoufousTable", "[Field1]='" & x(0) & "'") Me.[0000] = x(1) Me.[00] = x(2) Me.[00000] = x(3) Me.[0] = x(4) 'we will use the query method instead of the Recordset 'update the Record, if found DoCmd.SetWarnings False DoCmd.OpenQuery "qry_Update_BC_NF" DoCmd.SetWarnings True . 3. عملت استعلام تحديث: . للعلم ، بسبب كبر حجم قاعدة بياناتك ، اضطررت ان اضغط المرفق بصيغة 7z وتستطيع ان تنزل برنامج فك الضغط المجاني من هذا الموقع: http://www.7-zip.org لذلك بعد انزال المرفق fin.zip ، رجاء تغيير اسمه الى fin.7z ، ثم فك الضغط. جعفر fin.zip
-
وعليكم السلام أخي طارق انا عندي حالة طارئه من كم يوم ولازالت ، ولم ادخل المنتدى. انا شخصيا لا اتعامل مع الافراد حسب هواي (ولم ألاحظ هذا على اي من المشاركين) ، ولكننا جميعا نساعد قدر استطاعتنا ووقتنا المتاح. سأحاول الليلة عمل المستطاع لإيجاد الحل لطلبك جعفر
-
كيفية التصدير من برنامج اكسيس الى نموذج في اكسيل
jjafferr replied to عبدالله نبها's topic in قسم الأكسيس Access
-
كيفية التصدير من برنامج اكسيس الى نموذج في اكسيل
jjafferr replied to عبدالله نبها's topic in قسم الأكسيس Access
تفضل يا سيدي الكريم شاكرا لك جميل كلمات ، ودعائك جعفر 230.Report_to_Excel.mdb.zip -
التنبيه بوجود صنف مكرر بسجلات النموذج الفرعي
jjafferr replied to wael_rafat's topic in قسم الأكسيس Access
معلش أخي وائل ، انا دايخ ومخي ما يستوعب اشياء جديدة اليوم (الكوتا حقة مخي قفلت خلاص ) مادام الاستاذ رمهان ماشي معاك ، فعلى بركة الله جعفر -
حياك الله شروط المنتدى لا تسمح بأكثر من سؤال في مشاركة واحدة فالرجاء افتح مشاركات جديدة بعدد الاسئلة جعفر
-
السلام عليكم أخي موسى الرابط التالي فيه طريقة حفظ النسخ الاحتياطية: http://www.officena.net/ib/topic/63797-دعوة-لتطوير-اداه-لنسخ-قاعدة-البيانات-المرتبطة-كل-مدة-زمنية-ساعةيومشهرسنة/ جعفر
-
كيفية عمل Unbound Sub Form له أكثر من صف
jjafferr replied to نكرو مانسر's topic in قسم الأكسيس Access
أخي نكرو مانسر ما سمعنا منك ، هل الرابط والامثلة اللي انا وضعتها تخدم طلبك؟ جعفر -
التنبيه بوجود صنف مكرر بسجلات النموذج الفرعي
jjafferr replied to wael_rafat's topic in قسم الأكسيس Access
السلام عليكم . 1. والكود لا يفعل هذا الشئ ، مثل طلبك ، فالكود لا يعمل على ازرار + و - ، 2. وهذا الذي يفعله البرنامج بالضبط ، مثل طلبك ، فالكود يعمل على ازرار الاصناف فقط. وين الخطأ اذا؟ جعفر -
كيفية التصدير من برنامج اكسيس الى نموذج في اكسيل
jjafferr replied to عبدالله نبها's topic in قسم الأكسيس Access
وعليكم السلام . تذكر لما سألتك: . ولا يهمك تريد شئ ثاني قبل ما اقفل الدكان جعفر -
كيفية عمل Unbound Sub Form له أكثر من صف
jjafferr replied to نكرو مانسر's topic in قسم الأكسيس Access
. وعليكم السلام اخي رمهان 1. الـ Recordset يكون باستخدام ADO او DAO ، فلذلك الامثلة حسب طلب السؤال 2. انا افتكرت الموضوع مثلك ، ولكن لما الاخ نكرو مانسر شرح الموضوع بشكل اكبر ، فارفقت له رابط بنفس الفكرة (طبعا حسب فهمي للموضوع) جعفر -
التنبيه بوجود صنف مكرر بسجلات النموذج الفرعي
jjafferr replied to wael_rafat's topic in قسم الأكسيس Access
-
استعلام عن العملاء الاكثر شراء والمنتجات الاكثر طلبا
jjafferr replied to نوال12's topic in قسم الأكسيس Access
-
كيفية التصدير من برنامج اكسيس الى نموذج في اكسيل
jjafferr replied to عبدالله نبها's topic in قسم الأكسيس Access
-
استعلام عن العملاء الاكثر شراء والمنتجات الاكثر طلبا
jjafferr replied to نوال12's topic in قسم الأكسيس Access
وعليكم السلام أختي انا عملت لك 3 استعلامات ، على اساس الحوارات اللي دارت بينك وبين الاستاذ رمهان رجاء تتأكدي من النتائج جعفر 236.tajera3.mdb.zip -
امبونك متدوده وخابصها من الزين لما دخلت التاريخ تو الكود كذاك: Private Sub PageHeaderSection_Format(Cancel As Integer, FormatCount As Integer) 'a = DLookup("[Org_Name]", "tbl_Org", "[Org_ID]='" & Forms!frm_Org_Details!Org_ID & "'") a = Forms!frm_Org_Details!cmb_Org_Name.Column(0) Me.Body_Text.Caption = Replace(Me.Body_Text.Caption, "a1", a) Me.Body_Text.Caption = Replace(Me.Body_Text.Caption, "a2", Forms!frm_Org_Details!cmb_Org_ID) 'Me.Body_Text.Caption = Replace(Me.Body_Text.Caption, "dh") 'Me.Body_Text.Caption = Replace(Me.Body_Text.Caption, "dm") Calendar = vbCalHijri dh = Date dh = Format(dh, "yyyy/mm/dd") Calendar = vbCalGreg dm = Date dm = Format(dm, "dd-mm-yyyy") End Sub . والمرفق في خدمتك جعفر 224.1.تعديل1 .اصدار التراخيص.mdb.zip
-
كيفية عمل Unbound Sub Form له أكثر من صف
jjafferr replied to نكرو مانسر's topic in قسم الأكسيس Access
2. لانه انا شايف الدالة ConnectSQL() بتنادي نفسها اذا الكنكشن مغلق ! وخلق الكائن وفتحه ياتي بعد مناداة الدالة ! فهنا هل سيتم تنفيذ باقي جسم الدالة خصوصا انها تتطلب تمرير الكائن cnn وهو لسا لم تسند له القيم !! 1. والله أخوي رمهان البرنامج ليس بالكامل ، ومشتت ، وصار لي 7 سنوات ما لمسته ، فما اتذكر ايش وضعه 2. انا فتحت الاتصال من كود النموذج الاساسي بمناداة الدالة Call ConnectSQL(cnn) جعفر -
وعليكم السلام أخي كرار هاي ما كانت سهلة لازم تستخدم الزر اللي في النموذج ، والكود حقه: Private Sub cmd_Combine_Click() 'delete the old data mySQL = "Delete * From tbl_PP" CurrentDb.Execute (mySQL) Dim rstpp As DAO.Recordset Dim rst As DAO.Recordset Set rstpp = CurrentDb.OpenRecordset("Select * From tbl_PP") '1 Set rst = CurrentDb.OpenRecordset("Select * From sh Order By tash") rst.MoveLast: rst.MoveFirst RC = rst.RecordCount 'add all the records For i = 1 To RC rstpp.AddNew rstpp!iDate = rst!tash rstpp!Purchase = rst!mbsh rstpp.Update rst.MoveNext Next i '2 Set rst = CurrentDb.OpenRecordset("Select * From ts Order By tats") rst.MoveLast: rst.MoveFirst RC = rst.RecordCount 'we should check if the date is available, then we should use it For i = 1 To RC rstpp.FindFirst "iDate=#" & rst!tats & "#" If rstpp.NoMatch Then rstpp.AddNew rstpp!iDate = rst!tats rstpp!Payment = rst!mbts rstpp.Update Else rstpp.Edit 'rstpp!iDate = rst!tats rstpp!Payment = rst!mbts rstpp.Update End If rst.MoveNext Next i rstpp.Close: Set rstpp = Nothing rst.Close: Set rst = Nothing DoCmd.OpenQuery "qry_PP" End Sub . وهذه النتيجة: جعفر 231.الرصيد.accdb.zip
-
هذا من لطفك وإحسانك
-
حياك الله أستاذ علي ، وعذرا على التأخر في الاجابة نعم تستطيع ان تستخدم الكود كما ذكرت ، ولكن الامر Dlookup ثقيل على البرنامج ، وهو سيستخدم 31 مرة (صحيح الكمبيوترات سريعة هذه الايام ، وقد لا تلاحظ البطئ ) ، ولكني افضل ان نجعله في الكود ، بحيث تفحص اللغة بكود شبيه للذي وضعته انت ، وعلى اساس اللغة تستخدم if else جعفر