PDA

View Full Version : انتقال اطلاعات بين 2 بانك اكسس با SQL



rezankh
چهارشنبه 23 بهمن 1387, 23:33 عصر
با سلام
من مي خوام با زدن دكمه‌اي اطلاعات رو از يك بانك ديگه بخونه و به ادامه ركوردهاي بانك اطلاعاتي خودش اضافه كنه. (مثال : در يك اداره يك سيستم اصلي داريم و در بقيه سيستم‌ها اطلاعات ثبت ميشند حالا همه اطلاعات اين سيستم ها در سيستم اصلي يكي ميشه)
خوب من از كد زير استفاده كردم كه در اون Text1 آدرس بانك دوم هستش.


Dim DBase As Database
Dim SQL As String
Set DBase = OpenDatabase(Text1.Text, False, False, "")
SQL = "INSERT INTO Table1'" & App.Path & "\Information.mdb' Select * From Table1"
DBase.Execute SQL
MsgBox ".Úãá ÇäÊÞÇá ÇØáÇÚÇÊ ÈÇ ãæÝÞíÊ Èå ÇíÇä ÑÓíÏ", vbInformation, "Copy Completed"



ولي ارور ميده ارورهايي مثل فايل شناخته نشده و ...
بانك اصلي و بانك دوم هر دو هم نام هستند و نام جداول آنها Table1مي باشند.
آيا به نظر شما اشكال كدي كه نوشتم چيه؟

m_vb1386
پنج شنبه 24 بهمن 1387, 07:18 صبح
دستورت رو اينجوري تست كن
SQL = " INSERT INTO Table1 IN '" & App.Path & "mdb1.mdb' SELECT * FROM Table2"

rezankh
شنبه 26 بهمن 1387, 00:22 صبح
با سلام و تشكر از شما دوست عزيز
كد شما رو امتحان كردم ولي بازهم خطاي زيرو ميده (2 تا عكس ضميمه)
در ضمن من اطلاعات رو ميخوام بين 2 بانك هم نام با جداولي هم نام انتقال بدم منتهي بانك رفعي يا دوم ما مسيرش توسط تكست باكس (Text1) مشخص ميشه.

m_vb1386
شنبه 26 بهمن 1387, 07:57 صبح
شما از اكسس 2003 استفاده كردين؟ اگه اينجوريه سرويس پك 6 ميكروسافت رو ستاپ كنيد ببينيد چي ميشه

rezankh
شنبه 26 بهمن 1387, 18:06 عصر
شما از اكسس 2003 استفاده كردين؟ اگه اينجوريه سرويس پك 6 ميكروسافت رو ستاپ كنيد ببينيد چي ميشه

با سلام
بله و سرويس پك 6 ميكروسافت رو هم كه حجمش 60 مگ بود رو هم نصب كردم ولي باز هم ارور ميده.
آيا اين امكان رو داريد كه يك مثال برام ايجاد كنيد؟
با تشكر.

xxxxx_xxxxx
شنبه 26 بهمن 1387, 23:16 عصر
برنامه ضميمه رو نگاه كنيد. همون دستوري كه كاربر m_vb1386 (http://barnamenevis.org/forum/member.php?u=56903) گفتند.

rezankh
یک شنبه 27 بهمن 1387, 00:53 صبح
برنامه ضميمه رو نگاه كنيد. همون دستوري كه كاربر m_vb1386 (http://barnamenevis.org/forum/member.php?u=56903) گفتند.

با سلام و تشكر
در برنامه من نام هر 2 بانك و نام جدول آنها يكي هست يعني هر دو mdb1 و هر دو داراي جدول Table1 هستن. ظاهرا همين امر سبب بروز ارور در كد شما و بنده مي‌شود حال دو راه داريم :
1 - كد را طوري تغيير دهيم كه درست شود ( آيا ممكن است؟)
2 - قبل از فراخواني بانك مبدإ، نام بانك و جدول آنرا تغيير نام دهيم و سپس از كد شما استفاده كنيم كه در اينصورت آيا ميشه بانك و تيبل آنرا تغيير نام دهيم؟ چگونه؟

m_vb1386
یک شنبه 27 بهمن 1387, 08:52 صبح
اين رو ببين ربطي به نام بانك و تيبل نداره فقط بايد مسيردهي شما مناسب باشه
موفق باشين

rezankh
دوشنبه 28 بهمن 1387, 00:04 صبح
اين رو ببين ربطي به نام بانك و تيبل نداره فقط بايد مسيردهي شما مناسب باشه
موفق باشين

با سلام
دستتون دردنكنه كدي كه داديد كملا درست بود و روي سيستمم كار كرد ولي وقتي همون كد رو در برنامه خودم استفاده مي‌كنم و فقط جاي نام بانك ها رو عوض مي‌كنم پيغام ناشناخته بودن بانك رو ميده.
آيا ممكنه دليلش استفاده از برخي كامپوننتها باشه كه كد OpenDatabase يا ... رو از كار بندازه چون همه رو چك كردم حتي بانك خودم رو در برنامه شما امتحان كردم و جوب داد و لي در پروژه خودم نه.
حالا امشب كامپوننتهايي كه استفاده كردم رو روي برنامه شما امتحان مي‌كنم تا ببينم چي ميشه.
فعلا باي

rezankh
دوشنبه 28 بهمن 1387, 00:28 صبح
آيا ممكنه دليلش استفاده از برخي كامپوننتها باشه كه كد OpenDatabase يا ... رو از كار بندازه

كامپوننت ها رو هم چك كردم مشكلي نداشتند پس مشكل چيه؟:عصبانی++:

rezankh
دوشنبه 28 بهمن 1387, 15:11 عصر
با سلام مجدد
بالاخره فهميدم.
مشكل از انتخاب Microsoft DAO 3.5 Oject Library به جاي Microsoft DAO 3.6 Oject Library بود و نيز ترتيب References ها هم اشتباه بود كه بعد از مرتب نمودن آنها به شكل برنامه شما، درست شد.

m_vb1386
سه شنبه 29 بهمن 1387, 08:16 صبح
باز هم خدا رو شكر كه مشكلتون حل شد البته من خودم از adodb براي اين كار استفاده ميكنم نه از dao

unforgiven
چهارشنبه 30 بهمن 1387, 10:52 صبح
سلام دوستان
من همين كد رو البته با تغييراتي در اون براي Adodb بازنويسي كردم ولي مشكلي كه وجود داره, از پسورد بانك اشكال مي گيره شايد شما بتونيد راهنمايي كنيد . در واقع مي خوام اطلاعات جدول پوشه Full به جدول Empty انتقال پيدا كنه .
يه سوال ديگه هم داشتم اگه بانك اولمون از رفرنس Dao استفاده كرده باشه و بانك دوم از Ado با چه كدي ميشه انتقال اطلاعات از بانك Dao به Ado منتقل بشه ؟

فايل رو ضميمه كردم لطفا اگه مي تونيد تصحيحش كنيد .
متشكرم

m_vb1386
چهارشنبه 30 بهمن 1387, 12:46 عصر
شما مشكلت با كد ها نيست مشكلت اينه كه نميدونيد اصلا ado و dao چيه (البته ببخشيد كه اينقدر واضح گفتم) پيشنهاد ميكنم يكم در مورد اينها تحقيق كنيد خودتون هم ميتونيد اين مشكل رو حل كنيد با اين وجود اگه نشد سعي ميكنم كمكتون كنم

unforgiven
چهارشنبه 30 بهمن 1387, 18:47 عصر
شما مشكلت با كد ها نيست مشكلت اينه كه نميدونيد اصلا ado و dao چيه (البته ببخشيد كه اينقدر واضح گفتم)
دوست عزيز فكر كنم بيشتر اعضا از جمله خودم فرق بين شي Dao ,Ado و Rdo مزايا و معايب و نيز نوع كاربردشون رو بدونند . پس مشكلي از اين بابت وجود نداره .
فكر كنم سوال دوم باعث شده اين فكر رو بكنيد ! البته قبول دارم كه منم سوالم رو خوب مطرح نكردم .
الان كه خودم خوندمش متوجه شدم چي نوشتم !!
ممنون كه يادآوري كرديد.

m_vb1386
پنج شنبه 01 اسفند 1387, 08:50 صبح
اگه بازهم مشكلتون حل نشد خوشحال ميشم كمكتون كنم

unforgiven
جمعه 02 اسفند 1387, 10:54 صبح
سلام مجدد
وبي جان 86 اگه مي توني تصحيحش كن .مسير بانك اول مشكلي نداره ولي مسير بانك دوم كه اونم پسورد داره رو هر جور نوشتم باز Syntax Error ميده . الان مشكل درج صحيح مسير پسورد بانك دوم هست .اشكال اين كد كجاست ؟

SQL = "INSERT INTO Tbl In '" & App.Path & "\empty\data.mdb';Persist Security Info=False;Jet OLEDB:Database Password=123 SELECT * FROM Tbl "