PDA

View Full Version : وارد کردن داده های یک جدول اکسل در دو جدول اکسس



ariayekta
یک شنبه 28 خرداد 1396, 01:26 صبح
سلام وقت بخیر
دوستان عزیز نیاز دارم داده های یک جدول اکسل رو در دو جدول اکسس بیارم که یک فیلد که بعنوان کلیدواژه و ارتباط بین این دو جدول هست در هر دو جدول مشترک است برای جدول اول مشکلی نیست و داده ها بصورت صحیح ایمپورت میشن ولی برای ایمپورت در جدول دوم مشکل دارم من از این کد استفاده کردم


DoCmd.TransferSpreadsheet acImport, , "student_info", CurrentProject.Path & "\student_info_all.xlsx", True, "b1:p6"


برای جدول دوم هم از این کد


DoCmd.TransferSpreadsheet acImport, , "student_info", CurrentProject.Path & "\student_info_all.xlsx", True, "q1:ad6"
مشکلم اینجاست که نمیدونم چطور ادرس فیلد مشترک بین دو جدول که b هست رو اخر کداضافه کنم
ممنون میشم لطف کنید و کمک کنید یا اگر کد دیگری بلدید بهم بدید فایل نمونه هم ضمیمه هست

ariayekta
یک شنبه 28 خرداد 1396, 02:08 صبح
سلام

اگر بتونید یه کد بهم بدید که تک تک داده هایی که نامشاون در فایل اکسل و تیبل اکسس دقیقا مثل همه رو کپی کنه بهتره چون ممکنه ترتیب داده ها در فایل اکسل جابجا بشه

ممنون

mazoolagh
یک شنبه 28 خرداد 1396, 10:00 صبح
1- چه لزومی هست یک جدول به دو بخش تقسیم بشه و بینشون رابطه برقرار کرد؟

2- وقتی از transferspreadsheet استفاده میکنین کنترلی روی انتخاب ستونها بصورت گسسته ندارین - فقط یک محدوده پیوسته میتونین بهش معرفی کنین.
یعنی با این روش به خواسته تون نمیرسین مگر اینکه فیلد کد ملی از ستون b به ستون p جابجا بشه و برای جدول دوم محدوده رو بصورت p1:ad6 تعریف کنین.
کلا کار تمیزی نیست!

راه های ساده تری هست:
3- کل sheet رو یکجا ایمپورت کنین. بعد میتونین دستی یا با کد دو جدول از روش بسازین و همین هم از چند روش شدنی هست.

4- شیت اکسل رو بعنوان بعنوان linked table معرفی کنین. دیگه همه جوره دستتون برای هر کاری بازه.



اگر بتونید یه کد بهم بدید که تک تک داده هایی که نامشاون در فایل اکسل و تیبل اکسس دقیقا مثل همه رو کپی کنه
راستش شدنی هست (کانکشن بسازین و به فایل اکسل وصل بشین و بعد هر جور خواستین select کنین) ولی پیشنهاد نمیکنم چون هیچ مزیتی نسبت روش 4 نداره

ariayekta
یک شنبه 28 خرداد 1396, 15:29 عصر
....................

ariayekta
یک شنبه 28 خرداد 1396, 15:42 عصر
سلام مجدد

فایل ضمیمه رو ببینید لطفا
یه کد میخوام بجای کوئری اپند اگه بتونید کمک کنید ممنون میشم دوستان

mazoolagh
دوشنبه 29 خرداد 1396, 11:35 صبح
Option Compare Database
Option Explicit
Dim StrFilt As String
Const FIELDS1 As String = "codmeli,shomaredaneshamuz,name,famil,namepedar,sho ghlepedar,jensiatcod,taahhol,tarikhetavallod,tel,m obile,mobilesarparast,adres,codeposti,email"
Const FIELDS2 As String = "codmeli,coddoreh,shomareozviat,codreshteyetahsili, codmaghtayetahsili,amoozeshgah,moaddel,savabeq,cod raveshsabtnam,takmilsabtnam,codmasulsabtnam,timeta kmilsabtnam,tariktakmilsabtnam,tozihat,tarikheengh eza"
Private Sub Command19_Click()
CurrentDb.Execute "INSERT INTO student_info (" + FIELDS1 + ") SELECT " + FIELDS1 + " FROM student_info_all"
CurrentDb.Execute "INSERT INTO student_info2 (" + FIELDS2 + ") SELECT " + FIELDS2 + " FROM student_info_all"
End Sub

ariayekta
دوشنبه 29 خرداد 1396, 15:50 عصر
سلام
میدونم برا تشکر باید کلید تشکر رو بزنم ولی ..
خداخیرت بده خیلی ممنون همونطور که گفتم این برنامه برا خیریه است و یه کمک بزرگی بمن و مجموعه کردید و شماهم در خیرش شریکید انشالا

mazoolagh
چهارشنبه 31 خرداد 1396, 09:46 صبح
خوشحالم نتیجه گرفتین
موفق باشین