الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف استخدم شريط التقدم فى نقل بيانات جدول الى جدول اخر

بدأه khaledmh في 15 أغسطس 2008 · 14 رد · 2,278 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف استخدم شريط التقدم فى نقل بيانات جدول الى جدول اخر وشكرا

لقد استخدمت Insert into فى نقل البيانات ولكنى اريد عند نقل كل سطر من البيانات يتم زيادة شريط التقدم وينتهى بنهاية اخر سجل تم نقله .

وهذا هو الكود المستخدم برجاء التصحيح لو امكن

Dim rsm As New Recordset

Private Sub cmdOk_Click()
Me.MousePointer = vbHourglass

If rsm.RecordCount <> 0 Then
rsm.MoveFirst
Bar1.Max = rsm.RecordCount


Do While Not rsm.EOF

SQL = "INSERT INTO Report( AccNo, Period, Debit, Credit )" & _
"SELECT AccNo, Period, Sum(Debit) AS SUM1, Sum(Credit) AS SUM2 " & _
"FROM JDetail GROUP BY AccNo, Period " & _
"HAVING AccNo >= '" & txtFields(2) & " And AccNo <= '" & txtFields(3) & ";"
con1.Execute SQL

rsm.MoveNext
Bar1.Value = Bar1.Value + 1

Loop
Bar1.Value = 0
End If

Me.MousePointer = vbDefault
end sub

Private Sub Form_Load()
If rsm.State = adStateOpen Then rsm.Close
rsm.Open "[JDetail]", con1, adOpenStatic, adLockOptimistic
end sub
#2

هل هناك خطأ في الكود ؟

* * * * * * * * * * * *

ملاحظة صغيرة : ضع السطر Bar1.Value = 0 قبل Do while وليس بعدها ..

سبحان الله وبحمده ... سبحان الله العظيم

#3

نعم يحدث خطأ

run-time error : 380

ويقف عند سطر

Bar1.Max = rsm.RecordCount

#4

جرب الكود التالي :

Bar1.Max = 100
Bar1.Value = 0


Dim count as Integer
count=0

Do while not rsm.EOF
	...

	...

	count = count + 1
	Bar1.Value = Cint((count/rsm.RecordCount) * 100)
Loop

سبحان الله وبحمده ... سبحان الله العظيم

#5

كتبت الكود التالى

bar1.Max = 100
bar1.Value = 0

Dim count As Integer
count = 0

Do While Not rsm.EOF
   SQL = "INSERT INTO Report( AccNo, Period, Debit, Credit )" & _
"SELECT AccNo, Period, Sum(Debit) AS SUM1, Sum(Credit) AS SUM2 " & _
"FROM JDetail GROUP BY AccNo, Period " & _
"HAVING AccNo >= '" & txtFields(2) & " And AccNo <= '" & txtFields(3) & ";"
con1.Execute SQL

rsm.MoveNext

	count = count + 1
	bar1.Value = CInt((count / rsm.RecordCount) * 100)
Loop

ولم يعمل شريط التقدم . . . ولم تظهر اى رسالة خطأ

#6

هل من الممكن ارفاق مشروعك هنا لألقي نظرة على المشكلة؟

* ملاحظة صغيرة : تأكد من قيمة RecordCount أثناء تنفيذ الكود ، قد تكون هي المشكلة .

تم تعديل هذه المشاركة بواسطة المبرمج أحمد في 15 أغسطس 2008 في 22:11

سبحان الله وبحمده ... سبحان الله العظيم

#7

مرفق المشروع

project.rar

#8

لا توجد أي مشاكل مع شريط التقدم في المشروع المرفق ..

تم تعديل هذه المشاركة بواسطة المبرمج أحمد في 15 أغسطس 2008 في 23:19

سبحان الله وبحمده ... سبحان الله العظيم

#9

فعلا اخى المبرمج احمد لاتوجد مشكلة فلقد اجريت بعد التعديلات فى الكود وارفقته ولكن عند نقل السجلات يتم نقلها بصورة متكررة الجدول الرئيسى به 6 سجلات فقط وعند النقل يصبح فى الجدول الجديد 24 سجل .فما الحل

وهل يمكن ان اعرض رقم كل سجل يتم نقله فى ليبل . .

تم تعديل هذه المشاركة بواسطة khaledmh في 16 أغسطس 2008 في 00:18

#10

up

#11

بس ممكن تشرح ماذا تريد من جملة SQL التالية ( ما هي المهمة الأساسية التي تريد تنفيذها هنا ) :

sql = "INSERT INTO Report( AccNo, Period, Debit, Credit )" & _
"SELECT AccNo, Period, Sum(Debit) AS SUM1, Sum(Credit) AS SUM2 " & _
"FROM JDetail GROUP BY AccNo, Period " & _
"HAVING AccNo >= '" & txtFields(2) & " And AccNo <= '" & txtFields(3) & ";"
con1.Execute sql

سبحان الله وبحمده ... سبحان الله العظيم

#12

اخى المبرمج احمد شكرا على مساعدتك . . . والمطلوب من الجملة الاتى

يتم بواسطة الجملة نقل بيانات حقول AccNo,Period, Debit, Credit من جدول jdetail الى جدول report استناد الى دمج حقل AccNo و Period

تم تعديل هذه المشاركة بواسطة khaledmh في 16 أغسطس 2008 في 19:08

#13

لو سمحت وش فايدة Having في نهاية الجملة اللي كتبتها

وكمان عندي ملاحظة أنت في كل مرة تنفذ جملة SQL قاعد تضيف 4 استعلامات للجدول Report وقاعد تكرر هذا الاستعلام ست مرات على عدد السجلات الموجودة في الجدول JDetail . وش الفائدة من هذا التكرار

مب أحسن لك لو ما استخدمت الدوران

#14

ممكن مثال اخوانى

#15

هذا الكود مأخوذ من محرر أكواد Sql Server

حيث يمكنك إنشاء الاستعلام (وخاصة الاستعلامات المعقدة ) في بيئة SQL ثم نسخة لمحرر أكواد الفيجوال بيسك واستخدامة هناك.

لا تهتمو لجملة as sum1 و as sum2 ليس لها داعي فهي لا تأثر بالكود إطلاقاً ولو قمت بحذفها لم يتغير شيئ .

Having بمعنى where

والله أعلم

هذا الكود مأخوذ من محرر أكواد Sql Server

حيث يمكنك إنشاء الاستعلام (وخاصة الاستعلامات المعقدة ) في بيئة SQL ثم نسخة لمحرر أكواد الفيجوال بيسك واستخدامة هناك.

لا تهتمو لجملة as sum1 و as sum2 ليس لها داعي فهي لا تأثر بالكود إطلاقاً ولو قمت بحذفها لم يتغير شيئ .

Having بمعنى where

والله أعلم

[وسط]

XCM59178.jpg

[/وسط]

[وسط] [وسط]الفريق العربي للبرمجة

[/وسط][/وسط]

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…