غلبني الشوق قام بنشر مايو 13, 2008 مشاركة قام بنشر مايو 13, 2008 (معدل) السلام عليكم ورحمة الله وبركاته لقد قرأت رد الاستاذ محمد طاهر في موضوع ربط الاكسس بنموذج وورد عن طريق ( Bookmark) وقمت بتنفيذه وكانت النتيجة مذهلة .. وهذا رابط الموضوع : http://www.officena.net/ib/index.php?showtopic=659&hl= ولكن هناك مشكله وهي انه عند فتح ملف وورد جديد من نموذج (Template) باستخدام الأمر Dim appWord As New Word.Application " appWord.Documents.Add "C:\tafog.dot يفتح الملف وفيه البيانات كامله ولكن عند حدوث خطأ في التصدير (مثل ان يترك حقل فارغ ) فإن ملف الوورد يبقى مفتوحا في الذاكره وعند اغلاق الجهاز يطلب حفظ الملف .. وذلك يسبب ضغط وبطئ للجهاز بسبب كثرة الملفات المفتوحه والتي لم يتم حفظها واغلاقها من قبل المستخدم لانها لم تفتح له (اي انه لا يراها ) وذلك بسبب اخطاء الادخال والتصدير في الاكسس .. قمت باضافة أمر لاغلاق الملف الذي قد تم فتحه بالامر السابق وقد استخدمت الامر appword.quit في حالة حدوث خطأ في التصدير ولكن لم يتم حل المشكله ارجو ان تكون المشكله واضحه .. وارجو المساعدة تم تعديل مايو 13, 2008 بواسطه غلبني الشوق رابط هذا التعليق شارك More sharing options...
محمد طاهر عرفه قام بنشر مايو 13, 2008 مشاركة قام بنشر مايو 13, 2008 السلام عليكم لا أدري ما هو الخطأ الذى يؤدي الى فتح الملف و عدم ظهوره للمستخدم و لكن تتبع الخطأ و أوجد سببه ثم تجنب فتح الملف من الأصل فى حالة الخطأ مثلا If Not IsNull([Forms]![main]![name]) Then With appWord .Documents.Add "C:\reptcourse.dot" . . . . . ز End If رابط هذا التعليق شارك More sharing options...
غلبني الشوق قام بنشر مايو 13, 2008 الكاتب مشاركة قام بنشر مايو 13, 2008 (معدل) أشكرك لإستجابتك السريعه لمشكلتي .. والخطأ الذي يحدث هو عندما يترك احد الحقول فارغة تظهر الرساله (Invalid use of null ) وهذا يسبب بدء الكود وفتح الملف والتوقف عند تصدير الحقل الفارغ .. ولكن الحقول كثيره ويجب ان تكون أغلبها غير فارغه وقد قمت باستخدام الكود الذي ذكرته على احد الحقول وحلت المشكله لهذا الحقل فقط .. هل هناك طريقه لاختبار الحقول المطلوبه على انها غير فارغه قبل البدء بتنفيذ الكود ؟؟؟ وهذا هو بداية الكود : Dim rstContracts As New ADODB.Recordset Dim appWord As New Word.Application On Error GoTo Err_ContractToWord_Click ' Open a recordset based on the ContractsWithOpenIssues query. rstContracts.Open "Page1_11", _ CurrentProject.Connection, adOpenKeyset, adLockOptimistic ' Open a document based on the memo template, turn off spell check, ' move to the MemoToLine bookmark, and then display Word. With appWord .Documents.add "C:\Contracts\contract.dot" .ActiveDocument.ShowSpellingErrors = False .ActiveWindow.View.SeekView = Word.WdSeekView.wdSeekPrimaryHeader .ActiveDocument.Bookmarks("HeadAr").Select appWord.Selection.TypeText [Forms]![Tender]![Contracts]![CONT NO Ar] .ActiveDocument.Bookmarks("HeadEn").Select appWord.Selection.TypeText [Forms]![Tender]![Contracts]![CONT NO] .ActiveWindow.View.SeekView = Word.WdSeekView.wdSeekMainDocument .Selection.GoTo wdGoToBookmark, Name:="B1" appWord.Selection.TypeText SPR .Selection.GoTo wdGoToBookmark, Name:="B2" appWord.Selection.TypeText [Forms]![Tender]![Contracts]![CONT NO] .Selection.GoTo wdGoToBookmark, Name:="B3" appWord.Selection.TypeText [Forms]![Tender]![Contracts]![CONT NO Ar] تم تعديل مايو 13, 2008 بواسطه غلبني الشوق رابط هذا التعليق شارك More sharing options...
غلبني الشوق قام بنشر مايو 18, 2008 الكاتب مشاركة قام بنشر مايو 18, 2008 انا عرفت حل المشكلة بس كنت ابغى اعرف هل هناك طريقه لفحص جميع الحقول بان لا تكون خاليه واظهار رساله بان هناك حقل خالي وارسال المؤشر الى الحقل الفارغ وقبل تنفيذ امر الارسال الى الوورد انا جربت الكود هذا بس حيكون طويل جدا فهل هنك طريقه لتعريف متغير للحقل ارسله الى داله تقوم باخراج رساله وارسال المؤشر او التركيز الى الحقل في المتغير المرسل if IsNull( Me.NAME) then msgbox ("Name is blank") me.NAME.setfocus exit sub لكن احيانا اذا ادخلت قيمه في الحقل ثم قمت بمسحها لا يعتبر قيمه الحقل null ولا يتم تنفيذ الامر رابط هذا التعليق شارك More sharing options...
Bluemind قام بنشر مايو 18, 2008 مشاركة قام بنشر مايو 18, 2008 (معدل) انا عرفت حل المشكلة بس كنت ابغى اعرف هل هناك طريقه لفحص جميع الحقول بان لا تكون خاليه واظهار رساله بان هناك حقل خالي وارسال المؤشر الى الحقل الفارغ وقبل تنفيذ امر الارسال الى الوورد انا جربت الكود هذا بس حيكون طويل جدا فهل هنك طريقه لتعريف متغير للحقل ارسله الى داله تقوم باخراج رساله وارسال المؤشر او التركيز الى الحقل في المتغير المرسل if IsNull( Me.NAME) then msgbox ("Name is blank") me.NAME.setfocus exit sub لكن احيانا اذا ادخلت قيمه في الحقل ثم قمت بمسحها لا يعتبر قيمه الحقل null ولا يتم تنفيذ الامر اخوي في الحقول(مربع نص ، قائمه.....) التي تحتوي على حروف مثل الاسماء وغيرها استخدم داله Len لتأكد من عدم تركها فارغه كالتالي: If Len(Trim$(Me!fristname & vbNullString)) = 0 Then MsgBox "الرجاء تعبئه حقل الاسم", vbOKOnly + vbCritical, "بيانات مفقوده!!" Me.fristname.SetFocus بالنسبه لداله isNull فهذه تستخدم للارقام طبعا مكان وضع الكود مهم مثلا في حدث عند النقر في زر الامر وغيرها تم تعديل مايو 18, 2008 بواسطه Knight22666 رابط هذا التعليق شارك More sharing options...
الردود الموصى بها
من فضلك سجل دخول لتتمكن من التعليق
ستتمكن من اضافه تعليقات بعد التسجيل
سجل دخولك الان