بتاريخ: 11 يناير 201511 سنة comment_258414 السلام عليكم ورحمة الله وبركاته اللهم تقبل اعمالنا لوجهك الكريم المثال عبارة عن شاشة ترسل البيانات وتفتح ملف Ms Word 2007 موجود من سابق ومنسق جاهز وتضع البيانات في مواضع محددة مسبقا اي حيث تريد ويعتبر المثال بصراحة نقلة نوعية في التعامل مع office 2007 وبالذات بجانب الماكرو والتي تكتبه بلغة vba تدعمها Office 2007 اي بمعنى ادق تخاطب مباشر بين form 6i و vba من خلال استدعاء دوال موجودة في ملف Ms Word 2007 كتبة بلغة Vba حيث ان وظائف الدوال ارسال بينات مربعات نص أو جملة select تنفذ في vba والتي تتصل من خلال احدى الدوال ب أوراكل وتنفيذ جمل الكويري الملف المرفق عبارة عن مجلد مضغوط اسمه OPENWORD وفيه ملفان ملف ورد وملف شاشة ديفلوبر افتح الضغط وضع المجلد في :C مباشرة ملاحظات هامة جدا: لمن يعمل على windows 7 64 bit لتحيقي الاتصال با أوراكل من Office 2007 لازم إتباع الخطوات التي بالرابط في مشاركة سابقة هل تعاني من مشكلة الاقواس في المسار C:\program Files (x86) http://www.araboug.org/ib/index.php?showtopic=57597 يجب تفعيل الماكرو في Ms Word 2007 هذه صورة الشاشة : وهذه صورة الملف الورد قبل ادخال البيانات: وهذه صورة الملف بعد ارسال البيانات: OPENWORD.rar تقديم بلاغ
بتاريخ: 11 يناير 201511 سنة كاتب الموضوع comment_258415 طبعا الاسماء في المثال لاعلام العلم والمعرفة من المشرفين ولم يسعني ذكرهم كلهم فقط 5 منهم فيعذروني الذين طرحت اسمائهم ويعذروني من لم اطرح اسمائهم فكلكم رائعين و أفكاركم منهال علم ومعرفة لهذا المنتدى أخوكم... تقديم بلاغ
بتاريخ: 11 يناير 201511 سنة كاتب الموضوع comment_258417 شيئ أخر بالتسبة لادراج صورة كشعار في الملف مع اعطاء المحاذات لها في الاجراء أعطيته مسار موجود عندي فيجب عليكم وضع الشعار اللي تريدوه ووضع مساره كذلك تقديم بلاغ
بتاريخ: 11 يناير 201511 سنة كاتب الموضوع comment_258418 واياك أختي المشرفة الفاضلة ميسم الكرام صاحبة النشاط المتواصل الدؤوب وشكرا لمرورك الكريم تقديم بلاغ
بتاريخ: 11 يناير 201511 سنة comment_258447 السلام عليكم ورحمة الله الأخ الفاضل / ميهال بداية : أشكرك على هذا الجهد وهذا العمل المتميز الذي يضاف الى قائمة أعمالك الرائعة التي يحتويها المنتدى افكار جديدة ..... جاري تحميل المرفقات جزاك الله خيرا تقديم بلاغ
بتاريخ: 11 يناير 201511 سنة كاتب الموضوع comment_258448 شكرأ لك أخي الفاضل امجد حلمي على كلامك الطيب وشكرا لمرورك الكريم تقديم بلاغ
بتاريخ: 12 يناير 201511 سنة comment_258461 السلام عليكم و رحمة الله تعالى و بركاته ما شاء الله عمل رائع بارك الله فيك اخي و جزاك خيرا إن شاء الله تقديم بلاغ
بتاريخ: 12 يناير 201511 سنة كاتب الموضوع comment_258464 وعليكم السلام ورحمة الله وبركاته واياك أخي سلطان وشكرا لمرورك الكريم تقديم بلاغ
بتاريخ: 12 يناير 201511 سنة comment_258465 اخي الفاضل ميهال لا يسعني الا ان اقول لك بارك الله فيك وبارك الله لك وبارك الله عليك انت فعلا رئــــــــــــــع ... تقديم بلاغ
بتاريخ: 12 يناير 201511 سنة كاتب الموضوع comment_258470 شكرا لك أخي العزيز أنس وانت أكثر من رائع وشكرا لمرورك الكريم اشكرك أخي أحمد , و لا شكر على واجب وانت سباق للبذل والعطاء... ( ) أخوك... تقديم بلاغ
بتاريخ: 13 يناير 201511 سنة كاتب الموضوع comment_258518 السلام عليكم ورحمة الله وبركاته هناك توضيح بالنسبة للملف Ms Word والذي اسمه OPENWORD.dotm هو عبارة عن ملف من نوع template مفعل فيه ال macro لو تلا حظوا في امتداده ,ينتهي ال template ب dot ولانه من نوع فيه ماكرو مفعل انتهى زي ما انتم شايفين ب dotm ولفتح هذا النوع لتعديل الكود اللي فيه لا تفتحه بطريقة النقر المزدوج لانه سياخذ نسخة منه وسيفتح ملف جديد فطريقة فتحه لتعديل محتواه او كود ال vba اعمل الطريقة هذه افتح برنامج ال Ms Woerd ومن ثم افتح الملف من داخله وبعدها عدل زي ماتريد طبعا الكود الذي ستعدل فيه اسم قاعدة البيانات واسم الكمبيوتر او حتى اسم المستخدم وكلمة السر حسب ما هو موجود عندك في جهازك الدالة التي تمرر جمل الكويري Public Sub ora(ByVal sqlw As String, ByVal sqlw1 As String, ByVal sqlw2 As String, ByVal sqlw3 As String, ByVal sqlw4 As String, ByVal sqlw5 As String) ActiveDocument.SelectContentControlsByTitle("namecon1").Item(1).Range.Text = MEEHORAQ("PRGRAMER-ME", "ORACLE", sqlw, "SCOTT", "TIGER") ActiveDocument.SelectContentControlsByTitle("namecon2").Item(1).Range.Text = MEEHORAQ("PRGRAMER-ME", "ORACLE", sqlw1, "SCOTT", "TIGER") ActiveDocument.SelectContentControlsByTitle("namecon3").Item(1).Range.Text = MEEHORAQ("PRGRAMER-ME", "ORACLE", sqlw2, "SCOTT", "TIGER") ActiveDocument.SelectContentControlsByTitle("namecon4").Item(1).Range.Text = MEEHORAQ("PRGRAMER-ME", "ORACLE", sqlw3, "SCOTT", "TIGER") ActiveDocument.SelectContentControlsByTitle("namewith1").Item(1).Range.Text = MEEHORAQ("PRGRAMER-ME", "ORACLE", sqlw4, "SCOTT", "TIGER") ActiveDocument.SelectContentControlsByTitle("namewith2").Item(1).Range.Text = MEEHORAQ("PRGRAMER-ME", "ORACLE", sqlw5, "SCOTT", "TIGER") End Sub الاسم PRGRAMER-ME يمثل اسم الكمبيوتر المنزل فيه قاعدة البيانات الاسم ORACLE يمثل اسم قاعدة البيانات والاسم SCOTT معروف طبعا اسم المستخدم الاسم TIGER كلمة السر وللتوضيح الاسماء namecon1 و namecon2 و namecon3 و namecon4 و namewith1 و namewith2 وهي الكائنات النصية في صفحة ملف الورد التي تأتيها القيم النصية من جمل الكويري المرر طبعا الكود أعلاه بلغة VBA فيجوال بسيك ابليكيشن تقديم بلاغ
بتاريخ: 13 يناير 201511 سنة كاتب الموضوع comment_258519 وهذه الدال الثانية التي تمرر القيم مباشرة الاتية من شاشة الديفلوبر الى ملف الورد Ms Word الى نفس الكائنات النصية المذكورة سابقا Public Sub ora3(ByVal sqlw As String, ByVal sqlw1 As String, ByVal sqlw2 As String, ByVal sqlw3 As String, ByVal sqlw4 As String, ByVal sqlw5 As String) ActiveDocument.SelectContentControlsByTitle("namecon1").Item(1).Range.Text = sqlw ActiveDocument.SelectContentControlsByTitle("namecon2").Item(1).Range.Text = sqlw1 ActiveDocument.SelectContentControlsByTitle("namecon3").Item(1).Range.Text = sqlw2 ActiveDocument.SelectContentControlsByTitle("namecon4").Item(1).Range.Text = sqlw3 ActiveDocument.SelectContentControlsByTitle("namewith1").Item(1).Range.Text = sqlw4 ActiveDocument.SelectContentControlsByTitle("namewith2").Item(1).Range.Text = sqlw5 End Sub تقديم بلاغ
بتاريخ: 13 يناير 201511 سنة كاتب الموضوع comment_258521 و الدالة MEEHORAQ التي تقوم بالاتصال بقاعدة بينات أوراكل في ملف ال Ms Word والتي تستدعيها الدالة التي تمرر جمل الكويري ora ودالة الاتصال MEEHORAQ لن تحتاجها في حالة انك استدعيت الدالة ora3 التي تمرر قيم نصية مباشرة دون الحاجة للاتصال بقاعدة بيانات الكود ادناه لدال الاتصال MEEHORAQ الت تقوم بانشاء كائن اتصال ADODB برمجيا .. اتركم مع الدالة Function MEEHORAQ(strHost As String, strDatabase As String, strSQL As String, strUser As String, strPassword As String) Dim strConOracle, oConOracle, oRsOracle Dim StrResult As String StrResult = "" strConOracle = "Driver={Microsoft ODBC for Oracle}; " & _ "CONNECTSTRING=(DESCRIPTION=" & _ "(ADDRESS=(PROTOCOL=TCP)" & _ "(HOST=" & strHost & ")(PORT=1521))" & _ "(CONNECT_DATA=(SERVICE_NAME=" & strDatabase & "))); uid=" & strUser & " ;pwd=" & strPassword & ";" Set oConOracle = CreateObject("ADODB.Connection") Set oRsOracle = CreateObject("ADODB.Recordset") oConOracle.Open strConOracle Set oRsOracle = oConOracle.Execute(strSQL) Do While Not oRsOracle.EOF If StrResult <> "" Then StrResult = StrResult & Chr(10) & oRsOracle.Fields(0).Value Else StrResult = oRsOracle.Fields(0).Value End If oRsOracle.MoveNext Loop oConOracle.Close Set oRsOracle = Nothing Set oConOracle = Nothing ORAQUERY = StrResult End Function بكذا نكون اكملنا شرح مكوانات ملف ال OPENWORD.dotm البرمجية تقديم بلاغ
بتاريخ: 13 يناير 201511 سنة كاتب الموضوع comment_258530 الكائن المستخدم لإظهار البيانات القادمة من شاشة الديفلوبر سوى أكان مباشرة أو بجملة كويري هو عنصر تحكم اسمه نص منسق كما في الصورة التالية طبعا بامكانكم استخدام مربع النص لكن في شوية شغلة بالتنسيق فعشان تجعله يمشي مع سطر الفقرة تجعله امام النص بحيث تضبط ارتفاع مربع النص مع السطر لكن عنصر التحكم نص منسق هذا يمشي مع السطر با أريحية وكأنه من السطر اللي يظهر زي ما تشوفوه وهو فارغ انقر هنا لادخال النص تقديم بلاغ
بتاريخ: 13 يناير 201511 سنة كاتب الموضوع comment_258538 نأتي الان لاجزاء اكواد شاشة الديفلوبر بالذات لجزء من الاجراء الذي يتم فيه تمرير جملة ال select كما ترون الكود ينفذ بعد عمل شيك لمربع الاختيار الخاص بتمرير بجملة select IF :CHK3 =1 THEN MEEH_Args := Ole2.Create_Arglist; Ole2.Add_Arg(MEEH_Args,:S1 ); Ole2.Add_Arg(MEEH_Args,:S2 ); Ole2.Add_Arg(MEEH_Args,:S3 ); Ole2.Add_Arg(MEEH_Args,:S4 ); Ole2.Add_Arg(MEEH_Args,:S5 ); Ole2.Add_Arg(MEEH_Args,:S6 ); Ole2.Invoke(MEEH_Document, 'ORA', MEEH_Args); END IF ; وهذا جزاء الكود الخاص بتمرير البينات مباشرة من مربعات النصوص طبعا من شاشة ديفلوبر IF :CHK2 = 1 THEN MEEH_Args := Ole2.Create_Arglist; Ole2.Add_Arg(MEEH_Args,:t2 ); Ole2.Add_Arg(MEEH_Args,:t3 ); Ole2.Add_Arg(MEEH_Args,:t4 ); Ole2.Add_Arg(MEEH_Args,:t5 ); Ole2.Add_Arg(MEEH_Args,:t6 ); Ole2.Add_Arg(MEEH_Args,:t7 ); Ole2.Invoke(MEEH_Document, 'ORA3', MEEH_Args); END IF; الاخوة المطلعون اذا كان هناك ملاحظات او اسئلة حول المثال نناقشها ونحلها مع بعض أخوكم... تقديم بلاغ
بتاريخ: 17 يناير 201511 سنة comment_258639 جزاكم الله خيرا يامهندس ميهال .. عمل أكثر من رائع ومفيد جدا جدا تقديم بلاغ
بتاريخ: 17 يناير 201511 سنة كاتب الموضوع comment_258642 هلا بالغالي والعزيز ENG_HOSSAM_WALLY واياك اخي المهندس المبدع حسام اشقتنا لمشاركاتك الرائعة في المنتدى أخي حسام تقديم بلاغ
بتاريخ: 24 نوفمبر 201510 سنة comment_267987 السلام عليكم هل يعمل البرنامج المرفق على 11جي وشكرا مقدما تقديم بلاغ
بتاريخ: 5 ديسمبر 201510 سنة كاتب الموضوع comment_268496 الشاشة تعمل على ديفلوبر 6i ولا يعمل على 11 ولم اجرب تحويلها لاصدار 11 واذا حد اخر يمكن يطور المثال سنتستفيد منه تحياتي لك aloooshvb تقديم بلاغ
بتاريخ: 6 يناير 201610 سنة كاتب الموضوع comment_269962 واياك اخي الكريم وشكرا لمرورك الكريم تقديم بلاغ
بتاريخ: 24 أبريل 20169 سنة comment_273939 مشكور اخي الكريم لكن ماذا عن اوراكل فورم 10 جي نفس الطريق ام ماذا تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.