PDA

View Full Version : ادغام اطلاعات چند tabel



majid325
شنبه 21 مرداد 1385, 17:10 عصر
با سلام :
ما به دلیل کمبود وقت مجبوریم یک برنامه را توسط چند کاربر (در چند مکان )ورود اطلاعات کنیم , آخر کار چطوری اطلاعات این برنامه را یکی کنیم. با تشکر

moustafa
شنبه 21 مرداد 1385, 20:59 عصر
اگر جدولتون کلید داره برای هر برنامه یه append query بسازید که اطلاعات رو الحاق کنه به جدول برنامه اصلی(other databas)
فرض کنید برنامه اصلی نامش a است با جدول table 1برنامه های دیگر که کپی از ان در سیستمهای دیگری است مثلا b ,c,.... نیز داری جدول table1 می باشند پس از انکه اطلاعات را وارد کردید برنامه های سیستم های فرعی را کپی کنید تو کامپیوتر اصلی و append query را با یک باتن یا ماکروی autokey اجرا کنید
البته می تونید از union query نیز استفاده کنید

majid325
شنبه 21 مرداد 1385, 22:10 عصر
دوست عزیز دست شما درد نکنه ...من باappend query کار نکردم میشه یک کم بیشتر توضیح بدین . خیلی ممنون

moustafa
شنبه 21 مرداد 1385, 23:17 عصر
یکی از برنامه های فرعی کپی شده در کامپیوتر اصلی را باز کنید در نمای طراحی یه کوئری ایجاد کنید ،جدولی را که می خواهید ا طلاعات ان را به جدول اصلی وارد نمائید انتخاب و add نمائید روی ستاره دابل کلیک کنید ،سپس از منوی query زیر منوی appendquery را انتخاب و اپشن
another database را انتخاب و با دکمه brosw... ادرس برنامه اصلی را وارد و سپس در قسمت tablenameبا کلیک روی پیکان نام جدول را که همنام با جدول برنامه فرعی است انتخاب نمائید وسپس ok
البته می تونید با گذاشتن شرط یا ایجاد پرسجوی پارامتری اطلاعات را جدید وارد کردید به جدول اصلی وارد نمائید

سنبله کار
یک شنبه 22 مرداد 1385, 07:53 صبح
در صورتی که شما بخواهید همیشه اینکار را تکرار کنید اجرای Appendquery شاید اطلاعات شما رو دچار اشکال کنه راه دیگه اینکه از فایلتون نسخه Replicate بسازید و برای دیگر کاربران توزیع کنید و با انجام Syncronize اطلاعات را هم برای خودتون هم برای کاربرها یک پارچه و بروز کنید .
اگه از اکسس پروجکت استفاده می کنید باید به قسمت تعریف Replication در SQLserver بروید که یک مقدار بحث فنی تر میشه .
البته اگه می تونستید همگی با هم شبکه بشید دیگه نیاز به این کارا نبود .

karmand
یک شنبه 22 مرداد 1385, 08:20 صبح
یک دیتا بیس جدید بساز
تمام جدولهای هم نام را import کن
تمام انها شماره 1 تا .....میخورد بجز اولی
یک فرم بساز و یک باتن روی ان
در دبل کلیک باتن دستور زیر را بگذار
Private Sub Command0_DblClick(Cancel As Integer)
On Error Resume Next
Dim strSQL As String
Text1.SetFocus
text1 = " .صبر کنید.."
For i = 1 To 7

strSQL = "insert into kol select * from t" & Trim(Str(i))
DoCmd.RunSQL strSQL
Next i
Text1 = "پایان "
End Sub
در دستور یک tداریم همان نام جدول اولی است که شماره نخورده

majid325
یک شنبه 22 مرداد 1385, 14:24 عصر
دوستان دست همگی شما درد نکند

moustafa
یک شنبه 22 مرداد 1385, 16:22 عصر
اقای کارمند فرض کن هر روز در پایان یه ساعت خاص بخواهند اطلاعات را وارد جدول اصلی بکنند
اون موقع باید هر روز جداول از شماره یک الی ... را حذف و دوباره ایمپورت کنند وسپس کوئری را اجرا کنند ،پس بهتر link کنند ودر ادامه از دستور insert into استفاده نمایند
حتما باید ساختار تمام جدوال یکی باشد هم سایز هم فرمت و.....و برای اجتناب از رکوردهای تکراری، کلید اصلی تعریف شده باشد

majid325
یک شنبه 22 مرداد 1385, 17:18 عصر
،پس بهتر link کنند ودر ادامه از دستور insert into استفاده نمایند
آقا مصطفی منظور شما همون راه حلی که گفتید؟

moustafa
یک شنبه 22 مرداد 1385, 18:34 عصر
روش اقای کارمند. البته تا حدودی فرقی با روش من نداره در روش من باید شما بتعداد جداولتان کوئری را اجرا کنید ولی با روش اقای کارمند نیاز به ایجاد کوئری ندارید چون برای ان کد نوشته شده است ،که قاعدتا روش بهتریء چون هم حجم کار کمتر و هم امنیت اون بالاست