PDA

View Full Version : انتقال اطلاعات تیبل



com12151337
دوشنبه 16 اردیبهشت 1392, 10:03 صبح
سلام برهمه دوستان
نمونه زیر زحمت استاد امیری در یک تایپیک جهت انتقال اطلاعات تیبل جدید به یک تیبل دیگر است سئوال من این است که اگر تیبلهای ما بیش از 15 یا 20 بشود چه دستوری را بنویسیم در این نمونه اگر مشاهده کنید 2 تیبل هست اطلاعات تیبل 1 انتقال پیدا نمی کند
ممنون

kim_tores
دوشنبه 16 اردیبهشت 1392, 10:07 صبح
با سلام
من کاربر تازه این سایت هستم .
می خواستم بدونم کسی می تونه روش های جابجایی بانک های اطلاعاتی Sql Server از یک سیستم به سیتم دیگه رو برام توضیح بده . ممنون

com12151337
سه شنبه 17 اردیبهشت 1392, 06:48 صبح
سلام دوستان
کسی کمک ما نمیکنه

alirezabahrami
سه شنبه 17 اردیبهشت 1392, 11:57 صبح
سلام برهمه دوستان
نمونه زیر زحمت استاد امیری در یک تایپیک جهت انتقال اطلاعات تیبل جدید به یک تیبل دیگر است سئوال من این است که اگر تیبلهای ما بیش از 15 یا 20 بشود چه دستوری را بنویسیم در این نمونه اگر مشاهده کنید 2 تیبل هست اطلاعات تیبل 1 انتقال پیدا نمی کند
ممنون

سلام دوستان
کسی کمک ما نمیکنه
سلام
از طريق حلقه شدنيه
انشاءالله وقت كردم برات انجام ميدم.
موفق باشيد

com12151337
سه شنبه 17 اردیبهشت 1392, 12:27 عصر
سلام
تشکر میکنم

alirezabahrami
سه شنبه 17 اردیبهشت 1392, 20:40 عصر
سلام برهمه دوستان
نمونه زیر زحمت استاد امیری در یک تایپیک جهت انتقال اطلاعات تیبل جدید به یک تیبل دیگر است سئوال من این است که اگر تیبلهای ما بیش از 15 یا 20 بشود چه دستوری را بنویسیم در این نمونه اگر مشاهده کنید 2 تیبل هست اطلاعات تیبل 1 انتقال پیدا نمی کند
ممنون

سلام
از طريق حلقه شدنيه
انشاءالله وقت كردم برات انجام ميدم.
موفق باشيد
سلام
راستش اول فکرکردم که اینکار از طریق حلقه for each.......next شدنیه ولی وقتی امتحان کردم پی بردم که شدنی هست ولی پیچیدگی خاص خودشو داره و باید وقت گذاشت که آن را به مرحله اجرا رساند.
به نظرم ساده ترین راه برای این کار این است که به تعداد جدول هایکه قرار است اطلاعات آنها به جداول برنامه منتقل شوند
دستور اسکیوال DoCmd.RunSQL را برای هرکدام از جداول بکار برد.
خاصیت استفاده از این روش این است که میتوان برای انتقال داده های هرکدام از جدول ها به طور مستقل شروط و فیلترهای مورد نیاز را بکار برد.
فایل ضمیمه را ملاحظه بفرمائید.

Abbas Amiri
سه شنبه 17 اردیبهشت 1392, 22:07 عصر
سلام
با تشکر از آقای بهرامی که مدتی است زحمت جواب دادن به تاپیکهای مشکل تر به دوش ایشان افتاده است
با استفاده از حلقه هم توسط کدهای زیر میسر می شود:


Private Sub Command1_Click()
On Error GoTo ErrHandler
Dim strSql As String, fd As FileDialog
Set fd = FileDialog(msoFileDialogFilePicker)
With fd
.AllowMultiSelect = False
.Filters.Add "Access Files", "*.mdb;*.accdb", 1
.InitialFileName = CurrentProject.Path
If .Show Then
strpath = .SelectedItems(1)
Else
Exit Sub
End If
End With
Dim tdf As TableDef, db As Database
Set db = DBEngine.OpenDatabase(strpath)
For Each tdf In db.TableDefs
If tdf.Attributes = 0 And Left(tdf.Name, 1) <> "~" Then
CurrentDb.Execute "INSERT INTO " & tdf.Name & " SELECT * FROM " & tdf.Name & " IN '" & strpath & "';"
End If
Next
Exit_Command1_Click:
Set db = Nothing
Exit Sub
ErrHandler:
MsgBox "Error"
GoTo Exit_Command1_Click
End Sub

behzad5952
چهارشنبه 18 اردیبهشت 1392, 00:49 صبح
لطفا یک نمونه بگزارید این جوری واسه تازه کارایی مثل من آنالیزش راحت تره .
ممنون از لطفتون.

alirezabahrami
چهارشنبه 18 اردیبهشت 1392, 06:46 صبح
سلام
با تشکر از آقای بهرامی که مدتی است زحمت جواب دادن به تاپیکهای مشکل تر به دوش ایشان افتاده است
با استفاده از حلقه هم توسط کدهای زیر میسر می شود:


Private Sub Command1_Click()
On Error GoTo ErrHandler
Dim strSql As String, fd As FileDialog
Set fd = FileDialog(msoFileDialogFilePicker)
With fd
.AllowMultiSelect = False
.Filters.Add "Access Files", "*.mdb;*.accdb", 1
.InitialFileName = CurrentProject.Path
If .Show Then
strpath = .SelectedItems(1)
Else
Exit Sub
End If
End With
Dim tdf As TableDef, db As Database
Set db = DBEngine.OpenDatabase(strpath)
For Each tdf In db.TableDefs
If tdf.Attributes = 0 And Left(tdf.Name, 1) <> "~" Then
CurrentDb.Execute "INSERT INTO " & tdf.Name & " SELECT * FROM " & tdf.Name & " IN '" & strpath & "';"
End If
Next
Exit_Command1_Click:
Set db = Nothing
Exit Sub
ErrHandler:
MsgBox "Error"
GoTo Exit_Command1_Click
End Sub



لطفا یک نمونه بگزارید این جوری واسه تازه کارایی مثل من آنالیزش راحت تره .
ممنون از لطفتون.
سلام
اول باید بگم احسنت عباس جان!
ا دوم ، نیاز به نمونه دیگری نیست ؛ دو نمونه در همین تاپیک ارائه شده؛ کافیست کد های فوق را جایگزین کدهای قبلی نمائید.
موفق باشید

com12151337
چهارشنبه 18 اردیبهشت 1392, 12:28 عصر
سلام و عرض خسته نباشید خدمت دوست عزیز جناب بهرامی
با تشکر از زحمات جنابعالی و برادر عزیزمان جناب امیری ، عرض به حضور شما وقتی فیلدها تعداد آنها اضافه میشه متا سفانه نوشته ها درون فیلدها را نشان نمی دهد و اروری هم نمیدهد اگر یک باز بینی بفرمایید ممنون میشم
http://barnamenevis.org/images/statusicon/user-offline.png

alirezabahrami
چهارشنبه 18 اردیبهشت 1392, 18:01 عصر
سلام و عرض خسته نباشید جناب نباشید خدمت دوست عزیز جناب بهرامی
با تشکر از زحمات جنابعالی و برادر عزیزمان جناب امیری ، عرض به حضور شما وقتی فیلدها تعداد آنها اضافه میشه متا سفانه نوشته ها درون فیلدها را نشان نمی دهد و اروری هم نمیدهد اگر یک باز بینی بفرمایید ممنون میشم
http://barnamenevis.org/images/statusicon/user-offline.png
سلام
نمونه را قرار بده تا انشاءالله بررسي شود كه مشكل آن از كجاست.
موفق باشيد

com12151337
پنج شنبه 19 اردیبهشت 1392, 06:13 صبح
سلام وقت بخیر
در نمونه ذیل در فایل DATE تیبل1 فیلد ها را اضافه کردم ولی دز فایل MARJA در تیبل 1 اطلاعات وارد شده نشان داده نمی شود

com12151337
پنج شنبه 19 اردیبهشت 1392, 06:23 صبح
نمونه اصلاح شده را ملاحظه بفرمایید

com12151337
یک شنبه 22 اردیبهشت 1392, 05:56 صبح
سلام جناب ابراهیمی
ما هنوز منتظر لطف جنابعالی هستیم

alirezabahrami
یک شنبه 22 اردیبهشت 1392, 08:56 صبح
سلام جناب ابراهیمی
ما هنوز منتظر لطف جنابعالی هستیم
سلام
بهرامي هستم!
در كدهاي فوق (دستور Insert
) نياز به اضافه نمودن فيلد IDنمي باشد ، چون اين فيلد از نوع اتونامبر است و با اضافه شدن ركورد بطور اتوماتيك اضافه ميشود.پس IDرا از كدهاي فوق حذف كن!
موفق باشيد

com12151337
یک شنبه 22 اردیبهشت 1392, 12:05 عصر
جناب بهرامی سلام
بنده عذر خواهی می کنم بابت اشتباهی که در نام شما کردم انشالله به پذیرید
طبق دستور جنابعالی انجام دادم درست شد ولی بعضی از تیبلها را اطلاعاتشان دو برابر میشود در صورتی در تیبل مبدا موجود نیست ؟

alirezabahrami
یک شنبه 22 اردیبهشت 1392, 14:04 عصر
جناب بهرامی سلام
بنده عذر خواهی می کنم بابت اشتباهی که در نام شما کردم انشالله به پذیرید
طبق دستور جنابعالی انجام دادم درست شد ولی بعضی از تیبلها را اطلاعاتشان دو برابر میشود در صورتی در تیبل مبدا موجود نیست ؟
سلام
خواهش مي كنم
شايد دوبرابر شدن اطلاعات جداول فايل مقصد(marja.mdb) بخاطر اين باشد كه دوبار فرمان ايمپورت نمودن اطلاعات جداول مبدأ را انجام داده ايد .(باهر بار كليك بر روي كمند باتن فايل marja.mdb و انتخاب فايل data.mdb كليه اطلاعات جدول مربوطه به جداول فايل marja.mdb اضافه ميشود.
شما يكبار تمام اطلاعات جداول فايل marja.mdb را خالي كن و عمليات ايمپورت نمودن اطلاعات را انجام بده و جداول را ملاحظه كن و مجدداً همين عمل را انجام بده تا ببيني كه دقيقاً اطلاعات همان جداول فايل data.mdb در هر بار اضافه ميشود نه كم نه زياد.
موفق باشيد

com12151337
یک شنبه 22 اردیبهشت 1392, 14:17 عصر
سلام
باز هم تشکر میکنم راهی داره دستور قبلی را تمام آنها را پاک کنه و مجدد اطلاعات جدید را نصب کنه

alirezabahrami
یک شنبه 22 اردیبهشت 1392, 14:46 عصر
سلام
باز هم تشکر میکنم راهی داره دستور قبلی را تمام آنها را پاک کنه و مجدد اطلاعات جدید را نصب کنه
مجدداً سلام
كدهاي زير را در ابتداي كدهاي قبلي (قبل از اولين DoCmd.RunSQL )اضافه كن!


Dim tdf As TableDef, db As Database
Set db = CurrentDb
For Each tdf In db.TableDefs
If tdf.Attributes = 0 And Left(tdf.Name, 1) <> "~" Then
DoCmd.RunSQL "DELETE " & tdf.Name & ".* FROM " & tdf.Name & ";"
End If
Next
Set db = Nothing


موفق باشيد

com12151337
یک شنبه 22 اردیبهشت 1392, 15:41 عصر
سلام مجدد جناب بهرامی
بنده اطلاعات را جایگزین در برنامه کردم ولی ارور میگره البته نه برای پاک کردن آخر برنامه اطلاعات را جایگزین نمیکنه اعلام خطا میکنه
سئول دوم اینکه میشه جای چندین با ر کلیک کردن جهت پاک کردن یا اتصال با زدن دو کلیک اطلاعات جداول پاک و جایگزین شود
مطمئن هستم عیب از دستوراتی که جنابعالی گذاشتید نیست و مشکل در برنامه بنده است ولی نمی توانم مشکل و ایراد را پیدا کنم

com12151337
دوشنبه 23 اردیبهشت 1392, 23:24 عصر
سلام
جناب بهرامی
با عذر خواهی بسیار

alirezabahrami
سه شنبه 24 اردیبهشت 1392, 12:16 عصر
سلام
جناب بهرامی
با عذر خواهی بسیار
سلام
از اين لينك (http://barnamenevis.org/showthread.php?398142-تغییر-مسیر-جداول-لینک-شده) كمك بگير!
فقط acimport را جايگزين acLink كن و tdf.Attributes = 0
موفق باشيد

alirezabahrami
سه شنبه 24 اردیبهشت 1392, 19:21 عصر
سلام
از اين لينك (http://barnamenevis.org/showthread.php?398142-تغییر-مسیر-جداول-لینک-شده) كمك بگير!
فقط acimport را جايگزين acLink كن و tdf.Attributes = 0
موفق باشيد
سلام
برنامه اصلاح شده خودت را ببین!

com12151337
چهارشنبه 25 اردیبهشت 1392, 07:00 صبح
سلام وقت بخیر جناب بهرامی عزیز
ما را شرمنده کردید و بسیار ممنون و متشکر انشالله موفق باشید

com12151337
پنج شنبه 26 اردیبهشت 1392, 11:45 صبح
جناب بهرامی سلام منت میگذارید اگر این نمونه راببیند و اشکال کار را بفرمایید

alirezabahrami
پنج شنبه 26 اردیبهشت 1392, 18:15 عصر
جناب بهرامی سلام منت میگذارید اگر این نمونه راببیند و اشکال کار را بفرمایید
سلام
فایل ضمیمه را جایگزین Database3.accdb کن!
ضمنآ چون جداول را از دو دیتابیس ایمپورت میکنیدسعی کن نام جداول دیتابیس اول و دوم مثل هم نباشد ؛در این نمونه جداول دیتابیس اول با حرف a و دیتابیس دوم با حرف b نامگذاری شده اند.
موفق باشید

com12151337
جمعه 27 اردیبهشت 1392, 23:15 عصر
جناب بهرامی سلام
از لطفی که کردید ممنون هستم دلیل عدم انتقال دیتابیس 4 به دیتابیس 3 بدون اینکه ارور بگیره و تایید میکند که انتقال داده شد ولی تیبلها انتقال داده نمی شود چیست ؟
سپاسگزارم

alirezabahrami
شنبه 28 اردیبهشت 1392, 19:11 عصر
سلام
فایل ضمیمه را جایگزین Database3.accdb کن!
ضمنآ چون جداول را از دو دیتابیس ایمپورت میکنیدسعی کن نام جداول دیتابیس اول و دوم مثل هم نباشد ؛در این نمونه جداول دیتابیس اول با حرف a و دیتابیس دوم با حرف b نامگذاری شده اند.
موفق باشید



جناب بهرامی سلام
از لطفی که کردید ممنون هستم دلیل عدم انتقال دیتابیس 4 به دیتابیس 3 بدون اینکه ارور بگیره و تایید میکند که انتقال داده شد ولی تیبلها انتقال داده نمی شود چیست ؟
سپاسگزارم
سلام
کاری که در پست قبل عرض کردم انجام دادی؟
در هر حال مجدداً هر سه فایل را در یک پوشه قرار دادم امتحان کن ببین جواب میده؟
موفق باشید