View Full Version : چطور از یک تیبل بانک اکسس یک کپی با نام متفاوت بسازم؟
saeed_82
چهارشنبه 20 خرداد 1383, 10:10 صبح
من یک بانک اکسس دارم
میخواهم درون برنامه بصورت کد یک کپی از یکی از تیبل های آن تهیه کرده و با نام دیگری در همان بانک تیبلی اضافه کنم .(درست مثل کپی و Paste که بصورت دستی میتوانیم در ادیتور اکسس انجام دهیم و گزینه Copy Structure Only را انتخاب میکنیم.)
سار
چهارشنبه 20 خرداد 1383, 10:19 صبح
Insert TableName Select * From TableName
saeed_82
چهارشنبه 20 خرداد 1383, 10:48 صبح
لطفا توجه داشته باشید
تیبل مقصد وجود ندازد و باید ایجاد شود
سار
چهارشنبه 20 خرداد 1383, 14:41 عصر
لطفا توجه داشته باشید
تیبل مقصد وجود ندازد و باید ایجاد شود
در اکسس اگر جدول وجود نداشته باشد خود به خود بس از گرفتن یک تایید جدول ایجاد میشود.
saeed_82
چهارشنبه 20 خرداد 1383, 15:29 عصر
متاسفانه روش شما کارگر نشد
بنده ارتباط خود را با اکسس از طریق ODBC و DataBase Component برقرار کرده ام
ناسازگاری بسیاز زیاد است
من برای کپی یکی از تیبل ها از BatchMove با مد BatCopy بهره گرفتم ولی اشکالهای مسخره ای رخ میدهد مثلا اینکه بعد از ساختاز بین حدود 20 فیلد تیبل نام چند تایی از آنها مثل فیلدهای Group, Section و Year ,Month در تیبل مقصد ناقص درج میشود و یا اینکه یکی از فیلدها که ازنوع Single بوده بعد از کپی بحالت Integer در میاید و اشکالاتی از این دست.
برداشت شخصی من این است که Access در ارتباط با دلفی بسیار ارتباط نامناسبی برقرار میکند و انطباق لازم را ندارد.
یکی دیگر از موارد عجیبی که برایم رخ داده این است که من در یک تیبل اکسس چند فیلد ایجاد کرده ام از نوع بولین و مقادیر اولیه ای نیز برایشان تعیین نموده ام و وقتی در برنامه کاربر بایست مقادیرخود را وارد کند مقادیر اولیه تیبل دیده نمیشود .یعنی کامپانتتهایی همچون DBGroupBox , DBCheckBox مقادیر اولیه فیلدهای بولین را در اکسس نمایش نمیدهند.
واقعا دیگه دارم از اکسس نا امید میشم
خیلی ممنون از جوابهای شما (علی الخصوص آقا یا خانم سار!!!!!!!!!!!!)
سار
پنج شنبه 21 خرداد 1383, 00:07 صبح
این کار ور به صورت یک Query در اکسس انجام بدید و ذخیره منید.
سپس در دلفی Query فوق رو به شکل یک Store Procedure صدا کنید.
vcldeveloper
پنج شنبه 21 خرداد 1383, 02:14 صبح
برداشت شخصی من این است که Access در ارتباط با دلفی بسیار ارتباط نامناسبی برقرار میکند و انطباق لازم را ندارد.
دلفی برای استفاده از اکسس از رابط ADO استفاده می کنه و ارتباط مستقیمی با اکسس نداره تا با اون ناسازگاری داشته باشه!!!
moradi_am
پنج شنبه 21 خرداد 1383, 06:46 صبح
این کد در access هم جواب میدهد :
with table1 do
begin
FieldDefList.Update;
IndexDefs.Update;
TableName:='copytable1';
CreateTable;
end;
saeed_82
پنج شنبه 21 خرداد 1383, 13:18 عصر
اونوقت این کد رو کجا باید بنویسم
moradi_am
جمعه 22 خرداد 1383, 08:57 صبح
:خیلی متعجب:
هرجا که در برنامه میخواهید table خودرا کپی کنید
delphiman00
جمعه 22 خرداد 1383, 10:50 صبح
خیلی مساله را پیچیده کردید:
کافی یک ADOQuery در فرم خود بگذارید و دستورات زیر را بدهید :
جهت کپی کردن کل یک جدول درون همان بانک در یک جدول جدید :
Select * from OldTableName into NewTableName
جهت کپی کردن بعضی از فیلدهای خاص یک جدول در همان بانک در یک جدول جدید :
Select Name,LastName from OldTableName into NewTableName
هر دو دستور بالا را می توان با شرط where محدود کرد
در ضمن با استفاده از کلمه in می توانید تمام جداول ساخته شده جدید را در یک بانک جدید ایجاد کنید :
Select * from OldTableName into NewTableName in NewDataBase.mdb
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.