وشكراً لكم أنتظر ردكم أخواني
وشكراً لكم أنتظر ردكم أخواني
السلام عليكم...
كان من المفترض أن تبين الكود بين بداية و نهاية الحلقة!
لكن أعتقد أنك نسيت كتابة:
.MoveNext
قبل نهاية الحلقة (قبل Loop مباشرة) حتى يتم الانتقال إلى السجل التالي، و إلا فإن الحلقة ستستمر إلى ما لا نهاية و يعلق البرنامج لأنه لن يصل إلى EOF..
نرجو الاستفادة و السلام.
وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ
صدق الله العظيم
أهلاً أخي najy_zl
أنا واضع قبل الـ Loop هذا الكود
.MoveNext
ولم ارفق الكود لأنه كبير
شكراً لك سوف اضع الكود لأني ما أعرف ما هو سبب التعليق
تم تعديل هذه المشاركة بواسطة جواد في 24 أكتوبر 2013 في 16:32
هذا هو الكود أخي najy_zl
أنتظر ردك أخي najy_zl بارك الله فيك
Public Sub ExHTM(Optional Path As String, Optional Title As String)
Set Form1.ContactTable = Form1.db.OpenRecordset("SELECT * FROM Record ORDER BY Product")
With Form1.ContactTable
.MoveFirst
Open Path & "Favorite.html" For Output As #1
Print #1, "<HTML>"
Print #1, "<HEAD>"
Print #1, "<TITLE>" & Title & "</TITLE>"
Print #1, "</HEAD>"
Print #1, "<BODY BGColor=""#FFFEFB"" Text=""#3C6CBC"">"
Print #1, "<H2>" & Title & "</H2>"
Print #1, "<UL>"
Do While Not .EOF
Print #1, "<LI><A HREF=""" & !ID_Number & !Product & ".html"">" & !ID_Number & ", " & !Product & "</A></LI>"
.MoveNext
Loop
Print #1, "</UL>"
Print #1, "</BODY>"
Print #1, "</HTML>"
Close #1
.MoveFirst
Form1.PBar1.Min = 0
Form1.PBar1.Max = .RecordCount
Form1.PBar1.Value = 0
Do While Not .EOF
Open Path & !ID_Number & !Product & ".html" For Output As #1
On Error Resume Next
Print #1, "<HTML>"
Print #1, "<HEAD>"
Print #1, "<TITLE>" & !ID_Number & " " & !Product & "</TITLE>"
Print #1, "</HEAD>"
Print #1, "<BODY BGColor=""#FFFEFB"" Text=""#3C6CBC"">"
Print #1, "<FONT Tahoma >"
Print #1, "<H2>" & !ID_Number & " " & !Product & "</H2>"
If !Product <> "" Then Print #1, !Product & "<BR>"
If !Company <> "" Then Print #1, !Company & "<BR>"
If Not (!POBox = "" And !City = "" And !Fax = "") Then
Print #1, !City & ", " & !POBox & " " & !Fax & "<BR><BR>"
End If
If !Productvip1 <> "" Then Print #1, "<B>Product vip 1:</B>: " & !Productvip1 & "<BR>"
If !Productvip2 <> "" Then Print #1, "<B>Product vip 2:</B>: " & !Productvip2 & "<BR>"
Print #1, "<BR><B>Product4</B>: " & Form1.Combo.List(!Group_Product) & "<BR>"
If !Email <> "" Then Print #1, "<B>Produc5</B>: " & "<A HREF=""mailto:" & !Email & """>" & !Email & "</A><BR>"
If !Web <> "" Then Print #1, "<B>Web Site</B>: " & "<A HREF=""" & !Web & """>" & !Web & "</A><BR>"
Print #1, "<B>Product2</B>: " & Format(!Product2, "00") & "/" & Format(!Product3, "00") & "/" & Format(!Product, "00") & "<BR>"
If !Comment <> "" Then
Print #1, "<BR><B>Product1</B>:<BR>"
Print #1, !Product1 & "<BR>"
End If
Print #1, "<BR><A HREF=""Index.html"">Home Page</A>"
Print #1, "</BODY>"
Print #1, "</HTML>"
Form1.PBar1.Value = Form1.PBar1.Value + 1
Close #1
.MoveNext
Loop
End With
End Subتم تعديل هذه المشاركة بواسطة جواد في 27 أكتوبر 2013 في 14:23
السلام عليكم...
لا يبدو أنه يوجد خطأ في تسلسل الكود - مع بعض الملاحظات (مثلاً عبارة On Error Resume Next من المفترض أن تكون خارج الحلقة).
لكن لزيادة التوضيح: هل البرنامج يعلق بمعنى أنه يتوقف عن الاستجابة، أم أنه يستمر بالعمل دون أن ينفذ المطلوب؟
مبدئياً: إذا كان البرنامج يتوقف عن الاستجابة فاضغط Ctrl+Break (أو Ctrl+Pause) عندما يعلق، لمعرفة أين يتوقف البرنامج.
ملاحظة أخيرة: جرب أن تنقل MoveFirst التالية:
.MoveFirst
Form1.PBar1.Min = 0
Form1.PBar1.Max = .RecordCount
Form1.PBar1.Value = 0
Do While Not .EOFلتكون بعد قراءة الـ RecordCount:
Form1.PBar1.Min = 0
Form1.PBar1.Max = .RecordCount
Form1.PBar1.Value = 0
.MoveFirst
Do While Not .EOFنرجو الاستفادة و السلام.
وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ
صدق الله العظيم
شكراً لك أخي najy_zl
ولكن للأسف ما زال البرنامج يعلق إن شاءالله سوف أضل احاول فيه لحتى تزبط
يعطيك العافية وشكراً لك
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…