بحث مخصص من جوجل فى أوفيسنا
Custom Search
|
-
Posts
10011 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
408
نوع المحتوي
التقويم
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
هدية: ارسل / استرجع بيانات من مواقع الانترنت
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
السلام عليكم تم عمل موضوع آخر ، وبه الشرح و البرنامج جعفر -
السلام عليكم ورحمة الله وبركاته مسقط التصفح : هو برنامج لقراءة صفحة الانترنت ، واستخراج اسماء الحقول ، لإرسال البيانات اليها من برنامج الاكسس ، او استيراد البيانات منها الى الاكسس وبما ان برمجة صفحات الانترنت تختلف من مبرمج الى آخر ، فبرنامجنا لن يشتغل على جميع الصفحات / المواقع ، وبالتجربة فقط نستطيع معرفة الصفحات التي يشتغل عليها البرنامج طريقة العمل: النموذج frm_browse يحتوي على (1) كائن Microsoft Web Browser (والذي لا يحتوي على جميع مكونات البرنامج الاصل Internet Explorer ، ولكنه يفي بالغرض) ، ندخل اسم الموقع في (2) حقل التحرير والسرد url_Address ، ثم نضغط على (3) الزر Go ، والذي سيفتح الموقع في النموذج ، وسيتم حفظ عنوان الصفحة ، واعطائة رقم مسلسل في الجدول tbl_url_address ، الزر (4) "احفظ csv" سيقرأ كائنات الموقع ، ويحفظها في ملف بصيغة csv (اللي ينفتح بالاكسل) ، ثم يفتح الملف ، وفيه 3 طرق لإرسال معلومات الى اي حقل تريد (يعني يعطيك الكود جاهز لكل حقل) ، والافضل استعمال الكود الذي في العمود "Usage2" ، حيث ليست جميع الحقول لها اسماء (للأسف في بعض المواقع) ، الزر (5) "احفظ في الجدول" ، حيث سيحفظ كائنات الموقع في جدول tbl_Send_Get في البرنامج ، والاصعب كان استخراج بيانات حقول التحرير والسرد من الصفحة ، والتي يتم حفظها في الجدول tbl_Options ، ولما يستخلص البرنامج جميع حقول الصفحة ، سيفتح النموذج frm_Send_Get ، الزر (6) "تجربة ارسال ، استيراد بيانات لهذا الموقع" يفتح نفس النموذج frm_Send_Get وبه كائنات الموقع واسماء الحقول (حسب اسمها في البرنامج وليس حسب ظهورها على الموقع ، فالموضوعين غير مرتبطين للأسف في برمجة الموقع) ، هنا نرى الحقول التي استطاع البرنامج التعامل معها ، (8) رقمها المتسلسل في الصفحة (والتي سنتعامل معها برمجيا لاحقا) ، (9) نوع الحقل والذي قد يختلف من صفحة الى اخرى ، (10) اسم الحقل في الصفحة (والتي سنتعامل معها برمجيا لاحقا) ، (يجب ادخال اي اسم في الحقول الفارغة) واذا كان الحقل عبارة عن مربع تحرير وسرد ، وللحصول على قيمه ، انقر على الاسم مرتين ، فينبثق النموذج frm_Options بالاختيارات (تابع الشرح لاحقا) ، هنا نستطيع تجربة اذا كان بإمكاننا ارسال/استرجاع بيانات الى/من الموقع ، فتختار اي حقل تريد التجربة عليه ، وتكتب المعلومة التي تريد ارسالها في الحقل (11) Send_Data وبالنقر المزدوج على المعلومة ، وسترى انه تم ادخالها في الحقل في صفحة الموقع الموقع ، ويمكن التأكد كذلك من امكانية قراءة معلومة الحقل بالنقر المزدوج على الحقل (14) Get_Data ، والمهم في هذه التجارب هو معرفة صيغة قبول الحقل للمعلومة ، بالنسبة لحقول التحرير والسرد وكما اشرت سابقا ، فالموضع يختلف قليلا ، لأنه مثل الاكسس ، فالمعلومة التي تراها في الصفحة في اختيار المعلومة من هذا الحقل ، ليس معناه انها نفس القيمة التي تُحفظ في الجدول ، لذلك يجب عليك النقر المزدوج على الحقل ref_Name ، فيعطيك قائمة الاختيار من النموذج frm_Options ، وبالنقر المزدوج على الحقل Opt_Value ستنتقل المعلومة الى الحقل في Send_Data النموذج frm_Send_Get ، والتي يمكن بالنقر المزدوج عليها ان ترسل المعلومة الى الحقل في الموقع (وهنا قد لا ترى التغير على الحقل في الموقع ، ولكن عندما تنقر عليه لتختار ، ستجد ان الاختيار قد تم حسب رغبتك) ، (12) يجب اختيار اي من الحقول التي تريد ان تستعملها من الموقع ، (13) وهنا تختار تسلسل الحقول التي تريد ارسال البيانات الى صفحة الموقع ، يعني تختار زر الارسال بعد اختيارك لبقية الحقول ، والحقول التي لا يهمك ترتيبها ، فدعها فارغة ، (12) و (13) هما اساس الخطوة التالية ، الى هنا وينتهي العمل مع صفحة الموقع ، والتي نختصرها: ادخل عنوان الصفحة (2) ، اضغط على (5) "احفظ في الجدول" ، جرب اذا الحقول تعمل ، ثم (12) تختار الحقول التي تريد التعامل معها ، و (13) ترتيبها ، الزر (7) "عمل نموذج ارسال ، استراد بيانات لهذا الموقع" ، وسيفتح النموذج frm_Make_Form للصفحة التي انت عليها الآن ، من هنا سيقوم البرنامج بعمل: عمل قاعدة بيانات جديدة (برنامج اكسس) خارجية متكاملة بالاسم والمسار الذي اخترته في (15) ، بالجداول والنماذج وازرار النماذج والاحداث التي على هذه الازرار ، لصفحة الموقع التي اخترتها ، للإرسال والاستيراد ، واذا هذا البرنامج تم عمله سابقا (يعني عندك برنامجك الخاص واسمه ومساره في (15)) ، فسيقوم البرنامج بإضافة الجداول والنماذج وازرار النماذج والاحداث التي على هذه الازرار ، لصفحة الموقع التي اخترتها ، للإرسال والاستيراد ، نختار اين نريد ان نعمل الجداول والنماذج وازرار النماذج والاحداث التي على هذه الازرار ، لصفحة الموقع التي اخترتها ، للإرسال والاستيراد ، الزر (16) يقوم بكل هذا العمل ، قاعدة البيانات / البرنامج الخارجي: افتح النموذج frm_web_Sites ، فيعطيك اسماء الصفحات التي قمت بعملها في (16) ، وهذا نموذج التعامل مع صفحة الموقع ، وجميع الحقول التي اخترتها في (12) موجودة هنا ، وطريقة استخدامه: قم بتعبئة البيانات التي تريد ارسالها للموقع ، واذا كان عندك زر ارسال فيجب عمل صح عليه لإستعماله ، قم بفتح المتصفح بالضغط على الزر "Open Browser" ، والذي سيفتح المتصفح Internet Explorer خارجي ، ولا علاقة لك به ، فالكود سيتعامل معه اضغط على الزر "Send Data" ، وستكون البيانات قد تم تصديرها من نموذجك ودخلت في صفحة الموقع ، او اضغط على الزر "Get Data" ، وستكون البيانات قد تم استيرادها من صفحة الموقع الى نموذجك ، وهذا جزء من الكود الموجود في النموذج ، وسترى ان تسلسل ترتيب ارسال البيانات هو حسب الاختيار في (13) ، وغالبا (99% من الوقت) لن تحتاج الى عمل تغيير في الكود: . الزر (16) فيه تُحف فنية ، فلا تتردد من الدخول في الكود والغوص فيه والخروج بلآلئ فريدة جعفر Muscat_Browsing.zip
-
وعليكم السلام هناك عدة اسباب ، ويجب النظر في البرنامج ، ولكن التجربة الاولى هي: افتح ملف اكسس جديد ، ثم استورد الكائنات جميعها من برنامجك القديم ، ثم اغلق البرنامج ، افتح البرنامج ، اعمل ضغط واصلاح ، والآن جرب سرعة البرنامج الجديد جعفر
-
وعليكم السلام الكود صحيح ، ولكن اعتقد سؤالك هو عندما تفتح النموذج او تنتقل من سجل الى آخر ، فتريد ان يتحقق ذلك كذلك يجب ان تنادي الحدث السابق ، ليقوم بالمقارنة ، ويعمل اللازم: Private Sub Form_Current() Call Question_AfterUpdate End Sub جعفر
-
تمام ولما تعمل التغييرات ، اذا ممكن ترفق البرنامج ليستفيد منه الجميع جعفر
-
عندي مشروع دكان هواتف بالأقساط ، أريد تقسيط المجموع الكلي (معدل)
jjafferr replied to cudi's topic in قسم الأكسيس Access
وعليكم السلام شغلك تقريبا كان كامل بما ان بعض البيانات تأخذها من النموذج الرئيسي ، فيجب تعديل الكود ليناسب مع ذلك ، بالاضافة الى تغيير تاريخ الاقساط ليكون شهري: Private Sub Command9_Click() Dim rst As DAO.Recordset Dim i Set rst = Me.RecordsetClone Mobile_Cost = Forms![SaleInvoiceF]![sale_total] Fisrt_Date_of_Payment = Forms![SaleInvoiceF]![qist_date] Number_Of_Installments = Forms![SaleInvoiceF]![qist_number] For i = 1 To Number_Of_Installments rst.AddNew rst![qist_invoice] = Forms![SaleInvoiceF]![sale_invoice] rst![qist_num] = i rst![qist_price] = Mobile_Cost / Number_Of_Installments rst![qist_first_date] = DateAdd("m", i - 1, Fisrt_Date_of_Payment) rst.Update Next i rst.Close: Set rst = Nothing End Sub جعفر 594.Database2.accdb.zip -
الانترنت مليان امثلة بس اللي انا اقترحته عليك ، ماله شغل في TreeView ، وانما البرمجة الموجودة في البرنامج المرفق هي التي تستطيع تذليلها لما تريد جعفر
-
وعليكم السلام اخي أبو جاسم ، قوانين المنتدى والموجودة في الصفحة الرئيسية في منتدى الاكسس تقول: قواعد المشاركة فى الموقع اضغط هنـــــــــامن فضلك لقراءة القواعد كاملة و بصفة خاصة نؤكدعلى ما يلي 1- يمنع منعا باتا نشر أية مواد تخالف حقوق الملكية الفكرية و يرجى الابلاغ عن المشاركات المخالفة من خلال زر تقرير اسفل المشاركة 2-يجب استخدام خاصيةالبحث قبل طرح السؤال توفيرا للوقت و الجهد. 3-ضرورة كتابة عنوان واضح للموضوع يدل على محتواه ويعطي وصفاً مختصرا للسؤال. 4-ممنوع منعا باتاً كتابة عناوين سينمائية مثل عاجل ، نداء الي فلان ، الي الخبراء ، طلب مساعدة ، أريد حلا..... 5-يمكن استعجال الرد باستخدام تعبير -للرفع- و غير مسموح بالالحاح او اللوم فجميع الاعضاء يشاركون تطوعا طبقا لسعة وقتهم. ومخالفة ذلك تعرض الموضوع للحذف فالرجاء كتابة موضوع آخر لنفس هذه المشكلة ، ولكن بعنوان يدل على محتوى السؤال جعفر
-
وعليكم السلام تفضل Private Sub تفصيل_Format(Cancel As Integer, FormatCount As Integer) If Me.Question = "أسباب اخرى" Then Me.Autre.Visible = True Me.Question.ForeColor = vbWhite 'or RGB(255, 255, 255) Else Me.Autre.Visible = False Me.Question.ForeColor = vbBlack 'or RGB(0, 0, 0) End If End Sub جعفر
-
وعلشان اصطياد الخطأ يشتغل ، السطر الثاني يخبر الكود اين يذهب عندما يجد الخطأ: Private Sub أمر2_Click() On Error GoTo err_Report فهل عندك هذا السطر في الكود جعفر
-
كل اللي اقدر اقوله: الله يسامحك ، نسخت جزء من الكود ، وجزء تركته شوف رقم الخطأ اللي ظهر لك: 3021 ، وشوف الكود حقي كيف يصطاد هذا الرقم If Err.Number = 3021 Then MsgBox "لا يوجد تشابه بين الجدولين" Resume Exit_Report Else جعفر
-
بدل هذا السطر MsgBox "Exchange field value is " & rst!Exchange استعمل if rst!Exchange >0 then MsgBox "Exchange field value is Greater than Zero" else msgbox "Not Greater than Zero" endif
-
انا كان لي رأي في العلاقات ، وراعي الغنم عقّب عليّ جعفر
-
تفضل في هذا الاستعلام ، اذا الحقلين Monthly و Yaree كانوا متساوين في الجدولين ، سنحصل على سجلات ، واذا لا ، فلن نحصل على سجلات ، وبالزر اليمين في الاستعلام ، طلبنا رؤية الاستعلام بطريقة SQL ، فعملت نسخه منه ووضعته في الكود: Private Sub أمر2_Click() On Error GoTo err_Report 'If DCount("[coodkind]", "Tbl_Month", "[exchange]>0 And [Yaree] = Forms![frm_3]![Yaree] and Monthly = Forms![frm_3]![Monthly]") > 0 Then 'msg " اكمل السجلات بالجدول " Dim rst As DAO.Recordset mySQL = "SELECT Tbl_Month.exchange, Tbl_Month.Monthly, Tbl_Month.Yaree" mySQL = mySQL & " FROM Tbl_Month_exchange INNER JOIN Tbl_Month ON (Tbl_Month_exchange.Yaree = Tbl_Month.Yaree) AND (Tbl_Month_exchange.Monthly = Tbl_Month.Monthly)" mySQL = mySQL & " WHERE (((Tbl_Month.Monthly)=" & Forms!frm_3!Monthly & ") And ((Tbl_Month.Yaree)=" & Forms!frm_3!Yaree & "))" Set rst = CurrentDb.OpenRecordset(mySQL) rst.MoveLast: rst.MoveFirst RC = rst.RecordCount MsgBox "Exchange field value is " & rst!Exchange Exit_Report: rst.Close: Set rst = Nothing Exit Sub err_Report: If Err.Number = 3021 Then MsgBox "لا يوجد تشابه بين الجدولين" Resume Exit_Report Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub جعفر 592.countmy.accdb.zip
-
-
وعليكم السلام هاي الله يسلمك ، حزوره اعطنا مثال او اثنين من برنامجك بالبيانات ، وان شاء الله المسألة تصير اسهل لنا جعفر
-
-
كيف يمكنني حفظ النتائج في النموذج الفرعي إلى ملف أكسيل
jjafferr replied to بوعبد الله محفوظ's topic in قسم الأكسيس Access
شكرا أخي شفان ما ادري ولا حاولت ادري ، قلت موضوع داخلي بينك وبين برنامجك وعيب اتدخل بينكم وانا شخصيا لا استعمل اوامر الاكسس هذه ، شوف اللي كتبته في هذا الرابط: انا استعمل هذه الوحدة النمطية: http://access.mvps.org/access/api/api0001.htm جعفر وعفوا ، عنك خطأ في كود التصدير ، فانت استخدمت acSpreadsheetTypeExcel12Xml بينما يجب ان تستخدم acSpreadsheetTypeExcel12 (او اي رقم اصغر منه ، ولكن ليس Xml) -
إبدأ بالحقل Yaree
-
الله يطول في عمرك أخوي كاسر ، انت حطيت السؤال ، وانا رديت عليك لا تدخلني في امورك الخاصة مع البرنامج وبعدين وين انت اخبرت البرنامج عن هالكلام اللي الآن اخبرتني !! نعم اذا عندك حقل واحد فيه الشهر/السنة (2016/2) ، فهذاك الحقل اللي يجب تعمل العلاقة بين الجداول بيه جعفر
-
كيف يمكنني حفظ النتائج في النموذج الفرعي إلى ملف أكسيل
jjafferr replied to بوعبد الله محفوظ's topic in قسم الأكسيس Access
وعليكم السلام 1. علشان نأخذ قيمة Task في الوحدة النمطية ، لازم نشهرها في وحدة نمطية هكذا: Public Task As String فتكون متوفرة في البرنامج كاملا ، 2. لكي نستطيع ارسال Task (والذي هو عبارة عن SQL جاهز) ، يجب علينا حفظه كإستعلام عن طريق الامر QueryDef ، وقد حفظت الاستعلام بإسم qryExportExcel ، والذي نحذفه لما ننتهي من استخدامه ، 3. انا لم تعمل معي نافذة الحفظ "أختيار مكان الحفظ و اسم الملف" ، لذلك عملت متغير مؤقت saveFileAs22 ، Option Compare Database Public Task As String Public Sub exportTable(tName As String) On Error GoTo err_exportTable saveFileAs22 = "D:\myExcel.xls" Dim qrydf As QueryDef Set qrydf = CurrentDb.CreateQueryDef("qryExportExcel", Task) PauseTime = 2 ' Set duration. Start = Timer ' Set start time. Do While Timer < Start + PauseTime DoEvents ' Yield to other processes. Loop DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "qryExportExcel", saveFileAs22, True 'Delete it CurrentDb.QueryDefs.Delete "qryExportExcel" Exit Sub err_exportTable: If Err.Number = 3012 Then 'Delete it, to make a new one CurrentDb.QueryDefs.Delete "qryExportExcel" Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub جعفر 591.ExportExcel.accdb.zip -
وعليكم السلام نصيحتي ان تبذل الوقت وتعمل حقول التقرير بالطريقة العادية ، لأنها ستوفر عليك الوقت لاحقا (مثل ما لاحظت ، طلبك صعب التعامل معه برمجيا ، ولكنه سهل بالطريقة العادية) ولكن ، اليك الجواب حسب طريقتك: . ليصبح الكود: Option Compare Database Const Insh = 1440 Private Sub Report_Open(Cancel As Integer) Dim i, wd, iLeft, Field_No wd = 0.3 * Insh iLeft = 0 For i = 1 To 30 Field_No = 31 - i If Field_No = 2 Then 'الحقل رقم 2 اعمل عرضه 4 اضعاف Me("a" & Field_No).Width = wd * 4 Me("a" & Field_No).Left = iLeft Else 'بقية الحقول عرضها متساوي Me("a" & Field_No).Width = wd Me("a" & Field_No).Left = iLeft End If iLeft = Me("a" & Field_No).Left + Me("a" & Field_No).Width Next i End Sub جعفر 590.TestDBR.accdb.zip
-
وعليكم السلام الجدول الاصل يجب ان يكون فهرس الحقلين لا يقبل وجود قيم شبيهة: . وبعدين ، الملعب لك ، وافعل ما شئت: لاحظ خطوط العلاقة ، فانت تقول ان الحقل Monthly في الجدول tbl1 ، فيه قيمة واحدة (1)(No Duplicates) ، بينما الحقل المرتبط به من الجدول tbl_Month فيه قيم مالا نهاية (Duplicates OK) . جعفر 589.alaqat.accdb.zip
-
السلام عليكم الميزة في هذ الطرقة انك تتحكم في إظهار المجلدات والملفات ، مثلا: تستطيع ان تُظهر ملفات بصيغ معينه فقط ، او لا تُظهر ملفات بصيغة معينة ، تستطيع ان تُخفي ملفات اسمها فيه احرف معينة ، مثلا اذا كان عندك ملف اسمه jj.doc ، وكنت تعمل نُسخ منه وتسميها jj_01.doc و jj_02.doc ، فيمكنك وحسب صلاحيات المستخدم ان تُظهر ما تريد وتخفي الباقي ونفس الشئ مع المجلدات جعفر
-
السلام عليكم دائما يُفضل استخدام API الوندوز على اوامر الاكسس ، لأن الاكسس قد يُغيّر هذا الامر او يُلغيها من احد اصداراته ، وهذا ما حدث مع العديد والعديد منها ، منها على سبيا المثال لا الحصر: Application.FileSearch adp Security mdw import DBF لذلك يُنصح انه تستعمل دوال الوندوز بدلا من دوال الاكسس قدر المستطاع جعفر