PDA

View Full Version : سوال: بروزرساني اطلاعات يك بانك از روي يك بانك ديگر



saeedharati
چهارشنبه 28 تیر 1391, 08:04 صبح
سلام به همه اساتيد لطفا يكي در مورد كد زير كمكم كنه ، 2تا بانك دارم مي خوام اطلاعات بانك 2 را از روي يك بروزرساني كنم به طوري كه بايد :
مرحله اول : يك جستجو انحام بدم اول ركورد پيدا بشه بعد اطلاعات 3فيلد باهم مقايسه بشه در صورتي كه همخواني داشت اطلاعات فيلد هاي مورد نظر بانك 2 را از روي بانك 1 بروزرساني كنم بعد دوباره به ركورد بعدي از همان جستجو در بانك 2 رفته و دوباره يك مقايسه با اطلاعات همان ركورد قبلي در بانك 1 انجام بده و دوباره عمل بروزرساني رو انجام بده

مرحله دوم : در صورتي كه ركورد جستجو شده از بانك 1 در بانك 2 بعد از مقايسه پيدا نشد در ليست پيغام مورد نظر را اضافه كنه .

مرحله سوم : و در صورتي كه ركورد جستجو شده پيدا شد و عمل مقايسه صحيح و بروز رساني با موفقيت انجام شد به ركورد بعدي در بانك 1 رفته و دوباره عمل مرحله اول انجام بشه .

اين عمليات تا موقعي انجام بشه كه به آخرين ركورد از بانك يك برسيم و در آخر هر بروزرساني موفق يك ركورد به يك ليبيل يك عدد اضافه كنه به طوري كه از آخر تعداد بروزرساني ها موفق را بگه و تعداد بروزرساني هاي ناموفق يعني ركورد هاي نا موفق

ممنون ميشم كمك كنيد / نمدونم كدم صحيح مي باشد يا نه اما منظورمو تا حدي ميرسونه به اساتيد عزيز



On Error Resume Next
'Adodc1.Recordset.MoveFirst
Do While Adodc1.Recordset.EOF = False
Adodc3.Refresh
Adodc3.Recordset.Filter = "StudentCode='" & Adodc1.Recordset.Fields("d_shomare") & "'"
If Adodc3.Recordset.BOF = False Then
If Adodc3.Recordset.Fields("CourseCode") = Val(Adodc1.Recordset.Fields("d_dars")) - Val("1") Then
If Adodc3.Recordset.Fields("TimeYear") = Adodc1.Recordset.Fields("sal") Then
If Adodc3.Recordset.Fields("TimeDore") = Adodc1.Recordset.Fields("dore") Then
Adodc3.Recordset.Fields("GroupModel") = "3"
Adodc3.Recordset.Fields("Result") = "6"
Adodc3.Recordset.Fields("State") = "6"
Adodc3.Recordset.Update
Do While Adodc3.Recordset.EOF = False
Adodc3.Recordset.MoveNext
If Adodc3.Recordset.Fields("CourseCode") = Adodc1.Recordset.Fields("d_dars") Then
If Adodc3.Recordset.Fields("TimeYear") = Adodc1.Recordset.Fields("sal") Then
If Adodc3.Recordset.Fields("TimeDore") = Adodc1.Recordset.Fields("dore") Then
Adodc3.Recordset.Fields("GroupModel") = "3"
Adodc3.Recordset.Fields("Result") = "6"
Adodc3.Recordset.Fields("State") = "6"
Adodc3.Recordset.Update
Adodc1.Recordset.MoveNext
End If
End If
End If
Loop
Else
Adodc3.Refresh
Adodc1.Recordset.MoveNext
List1.AddItem "ÈÇ Çíä ßÏ ¡ ÏÇäÔ ÂãæÒí ÏÑ ÓíÓÊã ÏÇäÇ íÇÝÊ äÔÏ."
List1.AddItem "* " & "ÏÇäÔ ÂãæÒ : " & Adodc1.Recordset.Fields("d_shomare") & " / " & Adodc1.Recordset.Fields("d_name1") & " " & Adodc1.Recordset.Fields("d_name2")
List1.AddItem "--------------------------------------------------------"
Label12.Caption = Val(Label12.Caption) + Val("1")
End If
Adodc3.Recordset.Update
Adodc3.Refresh
Adodc3.Refresh
Label4.Caption = "äãÑÇÊ ÈÇ ãæÝÞíÊ Èå ÓíÓÊã ÏÇäÇ ÇÑÓÇá ÑÏíÏ ¡ ÈÚÏ ÇÒ æÑæÏ Èå ÓíÓÊã ÏÇäÇ ÇÚãÇá Ðíá ÑÇ ÇäÌÇã ÏåíÏ :"
Label5.Caption = "1. ÇÒ ÈÎÔ | ÏÑíÇÝÊ ÌÏÇæá æ ÑÇåäãÇí ÓíÓÊã | > ÈÑæÒÂæÑí ÇíÇå ÇäÌÇã ÏåíÏ ."
Label6.Caption = "2. ÇÒ ÈÎÔ | ÕÏæÑ æ Ç ßÇÑäÇãå | > äãÇíÔ æ Ç ßÇÑäÇãå ÓÇáíÇäå Èå ÊÝßíß Çíå¡ ÏÑ ÍÏ Ç ÈÑÇí ÏÇäÔ ÂãæÒÇä ãæÑÏ äÙÑ ÇäÌÇã ÏåíÏ ."
End If
End If
Loop

m.4.r.m
سه شنبه 17 مرداد 1391, 13:56 عصر
اگه منظورتونو درست متوجه شده باشم می تونید یک راه حل ساده برای اینکار بکنید به جای اینکه شما بیاید اطلاعاتو چک کنید و به این بانک رو اون بانک بفرستید توی جدول بانک اولتون یه فیلد به نام Status یا هر فیلد دیگر قرار بدین با عنوان Boolean یا همان yes/no بعد این جدول رو در هر جا فراخوانی که می کنید مثلا در یک جا لازم است فقط اونایی باشن که مقدارشون yes است یا هر نامی که شما می خواین بعد راحت می تونید با این چک کردن وضعیت بدون عمل جست و جو بانک 2 رو بروز رسانی کنید اما اگر توضیح من اشتباه بود لطف کنید مثل بالا که مرحله به مرحله توضیح دادی کد هر مرحله رو زیر خودش بزار تا کار ما هم راحت بشه این طوری کسی جوابتو نمیده خسته کننده می شه

saeedharati
چهارشنبه 18 مرداد 1391, 09:54 صبح
ممنون ازت دوست عزيز مشكلو خودم برطرف كردم و اون عمل رو انجام دادم البته از روش ديگر استفاده كردم در ضمن بانك هاي از پيش طراحي شدست و مال دو نرم افزار ديگست فقط من يك برنامه طراحي كردم واسه ارتباط اين دو برنامه به هم كه بعد از بررسي بانك ها فهميدم كه بانك دوم مي بايست ركورد جديد ايجاد بشه كه برنامه بتونه فراخواني كنه يعني برنامه طوري طراحي شده بود جديدترين ركورد رو هميشه فراخواني ميكنه و نياز به بروزرساني نبود .