ورود

View Full Version : سوال: انتقال اطلاعات از یک بانک به بانک دیگر



salambeshoma
شنبه 27 خرداد 1391, 16:49 عصر
با سلام در صورت امکان می خواستم برنامه را طوری اصلاح کنید از فایل شماره 2 همان Table1 را با تمام مقادیر تکمیل شده به این فایل شماره 1 و در همان Table1 انتقال دهد . تمام فیلد ها حتی تکراری هایی که در فایل 2 هست همه آنها به این جدول فایل1 انتقال داده شوند . چون فایل 2 توسط دوستان ماهانه تکمیل و به ما ارائه می گردد .

Abbas Amiri
شنبه 27 خرداد 1391, 19:03 عصر
یعنی فیلدهای تکراری اضافه شوند یا جایگزین؟

salambeshoma
شنبه 27 خرداد 1391, 19:38 عصر
سلام استاد امیری به همان اضافه شوند حتی اگر تکراری بود. ارادتمند

Abbas Amiri
شنبه 27 خرداد 1391, 21:02 عصر
این روال رو در یک ماژول کپی کنید وازهرجا خواستید صدا بزنید


Sub AppendRecords()
Dim sSQL As String, spath As String
spath = CurrentProject.Path & "\2.mdb"
sSQL = "INSERT INTO Table1 SELECT * FROM Table1 IN '" & spath & "'"
DoCmd.RunSQL sSQL
End Sub

salambeshoma
شنبه 27 خرداد 1391, 22:02 عصر
کپی کردم ولی خطا می ده !! در صورت امکان خودتان اصلاح فرمائید. ممنون

Abbas Amiri
شنبه 27 خرداد 1391, 22:55 عصر
اگر فایل دوم درمسیر همان فایل اول باشد خطایی نباید اتفاق بیفتد.

salambeshoma
شنبه 27 خرداد 1391, 22:59 عصر
جناب امیری بزرگوار شما فایل را می توانید اصلاح کنید چون فعلا در اجرای داخل فایل 1 خطا میده . از صبر شما متشکرم

Abbas Amiri
شنبه 27 خرداد 1391, 23:04 عصر
این هم ازفایل

salambeshoma
شنبه 27 خرداد 1391, 23:20 عصر
ممنون آقای امیری ، فقط انتقال از 2 به 1 با چه عملی انجام میگیرد امتحان کردم نشد!

Abbas Amiri
یک شنبه 28 خرداد 1391, 00:37 صبح
در رویداد Click باتن انتقال به بانک تایپ کنید AppendRecords

salambeshoma
یک شنبه 28 خرداد 1391, 08:42 صبح
استاد تایپ کردم خطا داد با نهایت شرمندگی خودتان یه نگاهی به فایل بیاندازید! یه تست هم بکنید . ممنون

salambeshoma
یک شنبه 28 خرداد 1391, 08:52 صبح
استاد تایپ کردم خطا داد در نهایت شرمندگی فایل را اصلاح و یک تست کنید که اطلاعات را انتقال می دهد

hf.farhadi
یک شنبه 28 خرداد 1391, 16:51 عصر
با سلام
جناب امیری عزیز
اگر بخوایم رکوردهای تکراری جایگزین بشه چه تغییری در کدتون باید داد


Sub AppendRecords()
Dim sSQL As String, spath As String
spath = CurrentProject.Path & "\2.mdb"
sSQL = "INSERT INTO Table1 SELECT * FROM Table1 IN '" & spath & "'"
DoCmd.RunSQL sSQL
End Sub

Abbas Amiri
یک شنبه 28 خرداد 1391, 17:42 عصر
شما در روال کلیک باتن چیزی درج نکرده بودید

salambeshoma
یک شنبه 28 خرداد 1391, 18:39 عصر
خیلی آقایی جناب امیری فقط یک اشتباده تو طراحی مونده که تقصیر ماست، تو فایل پیوستی هست در فایل یک ID از نوع Auto number باید باشد ولی در فایل 2 بصورت number که خالی می ماند حالا در زمان ارسال خطا می دهد . فقط نباید یکی باشند . در ضمن عید مبعث هم مبارک

Abbas Amiri
یک شنبه 28 خرداد 1391, 19:22 عصر
درروال AppendRecords مقدار زیر را جایگزین کنید


sSQL = "INSERT INTO Table1 SELECT Name, Lname, Table1.[kod melli], tell FROM Table1 IN '" & spath & "'"

salambeshoma
یک شنبه 28 خرداد 1391, 19:31 عصر
آقا ممنون واقعا برایمان یک قوت قلب هستید . یک سوال چرا فقط کد ملی را این طور نوشتید [kod melli] و بقیه را نه ؟

Abbas Amiri
یک شنبه 28 خرداد 1391, 19:54 عصر
بدلیل وجود فاصله در نام فیلد بایستی این مورد رعایت گردد تا تشخیص داده شود که مقدار پس از فاصله جزئی از نام فیلد است وموجب خطا نشود

salambeshoma
یک شنبه 28 خرداد 1391, 23:17 عصر
واقعا ممنون مخلصـــــــــــــــــــــ ـــــیم

salambeshoma
سه شنبه 30 خرداد 1391, 10:03 صبح
سلام یک سوال فنی ! اگر در فایل دو 10 تا رکورد بود ، چکار کنیم که بعد از زدن باتن انقال اطلاعات در فایل 1 یک پیام با عنوان این که تعداد 10رکورد به بانک انتقال یافت. با تشکر

Abbas Amiri
سه شنبه 30 خرداد 1391, 17:44 عصر
کدهای زیر را جایگزین کنید


Sub AppendRecords()
Dim sSQL As String, spath As String
Dim db As Database
spath = CurrentProject.Path & "\2.mdb"
sSQL = "INSERT INTO Table1 SELECT Name, Lname, Table1.[kod melli], tell FROM Table1 IN '" & spath & "'"
Set db = CurrentDb
db.Execute sSQL
MsgBox db.RecordsAffected & " رکورد انتقال یافت"
Set db = Nothing
End Sub

salambeshoma
سه شنبه 30 خرداد 1391, 19:20 عصر
استاد خیلی متشکر که راهنمایی فرمودید

salambeshoma
پنج شنبه 01 تیر 1391, 18:29 عصر
با سلام خدمت استاد امیری بزرگوار ، می خواستم کد نوشته خودتان را طوری اصلاح کنید پس از انتقال ، اطلاعات موجود از فایل 2 پاک گردد . ممنون

Abbas Amiri
پنج شنبه 01 تیر 1391, 22:17 عصر
Sub AppendRecords()
Dim sSQL As String, spath As String
Dim db As Database
spath = CurrentProject.Path & "\2.mdb"
sSQL = "INSERT INTO Table1 SELECT Name, Lname, Table1.[kod melli], tell FROM Table1 IN '" & spath & "'"
Set db = CurrentDb
db.Execute sSQL
MsgBox db.RecordsAffected & " رکورد انتقال یافت"
sSQL = "DELETE * FROM Table1 IN '" & spath & "'"
db.Execute sSQL
Set db = Nothing
End Sub

salambeshoma
پنج شنبه 01 تیر 1391, 23:52 عصر
با تشکر فراوان

hf.farhadi
جمعه 02 تیر 1391, 00:23 صبح
جناب امیری عزیز

با سلام
جناب امیری عزیز
اگر بخوایم رکوردهای تکراری جایگزین بشه چه تغییری در کدتون باید داد

1
2
3
4
5
6
Sub AppendRecords()
Dim sSQL As String, spath As String
spath = CurrentProject.Path & "\2.mdb"
sSQL = "INSERT INTO Table1 SELECT * FROM Table1 IN '" & spath & "'"
DoCmd.RunSQL sSQL
End Sub

Abbas Amiri
جمعه 02 تیر 1391, 14:46 عصر
اگر بخوایم رکوردهای تکراری جایگزین بشه چه تغییری در کدتون باید داد


Sub AppendRecords()
Dim sSQL As String, spath As String
Dim db As Database, rs As Recordset
spath = CurrentProject.Path & "\2.mdb"
Set db = CurrentDb
sSQL = "SELECT * FROM Table1 IN '" & spath & "' WHERE Table1.[kod melli] IN(SELECT Table1.[kod melli] FROM Table1)"
Set rs = db.OpenRecordset(sSQL)
With rs
.MoveLast
.MoveFirst
While Not .EOF
sSQL = "UPDATE Table1 t " & _
" SET t.[Name]='" & .Fields("[Name]") & "', t.Lname='" & _
.Fields("Lname") & "', t.tell='" & .Fields("tell") & "' " & _
"WHERE t.[kod melli]='" & .Fields("[kod melli]") & "'"
db.Execute sSQL
.MoveNext
Wend
End With
MsgBox db.RecordsAffected & " رکورد انتقال يافت"
Set rs = Nothing
Set db = Nothing
End Sub