PDA

View Full Version : Backup از یک جدول



kmotavali
شنبه 10 دی 1384, 20:32 عصر
میشه فرمی طراحی کرد که بشه با اون از داخل برنامه از یک جدول بخصوص backup گرفت و یا اون backup رو بازیابی و استفاده کرد

کسی به تاپیک قبلیم جوابی نداد حداقل اینو جواب بدید !

Sheerkoshan
یک شنبه 11 دی 1384, 07:57 صبح
دوست عزیز با استفاده از دستورات output to و transfertext می توانی از جداول خود بطور جداگانه ذخیره گیری و باز دوباره با transfertext بازیابی کنی

kmotavali
یک شنبه 11 دی 1384, 14:30 عصر
دوست عزیز از راهنمایی تون ممنونم
آیا میشه با این کار رکوردهارو به یک جدول دیگه اضافه کرد
چطور میتونم errorهای برنامه رو به کد تبدیل کنم تا بتونم پیغام فارسی متنایب با اون خطا رو بنویسم تو تاپیک های دیگه یه جیزهایی خوندم اما سردر نیاوردم
که از error number استفاده کنم

Sheerkoshan
یک شنبه 11 دی 1384, 18:41 عصر
(این قسمت نقل قول از جناب حمید آزادی)

یکی از دوستان وبلاگی من پرسیده بود چطوری پیغام Error مربوط به ورود رکورد تکراری را در اکسس فارسی کنیم . ترجیح دادم جواب کاملی برای سئوال ایشون بدم تا همه استفاده کنن. بنابراین ابتدا جواب ایشون رو میدم و بعد از اون بطور کاملتر برای همه وبلاگی های عزیز روش کنترل خطا را تشریح می کنم .

(توجه داشته باشید که در زیر کدهای نوشته شده از راست به چپ نمایش داده می شوند)

جواب دوست ما:
در رویداد OnError مربوط به فرم ورود اطلاعات این کد را می نویسیم:

If DataErr = 3022 Then
MsgBox "اطلاعات وارده تکراری است"
Response = acDataErrContinue
End If

جواب کلی :
اساسا ، هر خطا در اکسس یا VB یک کد تولید می کند . برنامه نویسان باید یک بانک اطلاعات از کد خطاهایی که رخ می دهد داشته باشند تا بتوانند با چک کردن شماره خطا پیغام فارسی مناسب آن خطا را صادر کنند .

بطور کلی دو روش کنترل خطا از این قرارند:

1- اگر خطا مربوط به کل فرم باشد باید از طریق رویداد OnError فرم کنترل شود .
معمولا خطاهایی که مربوط به کدنویسی ما نبوده و صرفا توسط اکسس و در واکنش به اشتباهات کاربر صادر می شود در این رویداد کنترل می شود . در این رویداد ، پارامتر DataErr حاوی کد خطاست. (بعبارت واضح تر اگر می خواهید کد مربوط به هر Error را شناسایی کنید می توانید این دستور در رویداد OnError فرم بنویسید: MsgBox DataErr )

بطور کلی بعد از اینکه کد خطاها را شناسایی کردید با نوشتن قالب برنامه زیر در رویداد OnError فرم می توانید خطاها را کنترل کنید :

Dim Str as String

Select Case DataErr
Case 3022
Str="اطلاعات وارده تکراری است"
Case 2237
Str = "اطلاعات وارده در لیست وجود ندارد"
'خط فوق برای مواردی است که یک مقداری که در کمبو باکس وجود ندارد ، تایپ شده باشد
Case ...
Str=...
....
End Select

Msgbox Str
Response = acDataErrContinue


2- اگر خطا مربوط به کدهایی باشد که خودمان در یک Sub نوشته ایم :
در این روش باید در ابتدای Sub با دستور : <اسم زیر روال کنترل خطا> On Error Goto ، کنترل خطا را به یک روال کنترل خطا ارجاع دهیم.
( تمام کدهایی که ویزارد Command Button بطور خودکار در رویداد OnClick دکمه ها ایجاد می کند نمونه خوبی برای این روش هستند. ضمنا در این روش بکمک Err.Number کد خطا شناسایی می شود )

در مورد ذخیره گیری با outputto و transfertext باید بگویم اگر جدول یکسانی بدون هیچ گونه تغییری داشته باشی این کار آسان است ولی اگر جدول دوم از نظر فیلدها متفاوت باشد متاسفانه ....
البته اگر هنگام بازیابی فیلدی بصورت indexed و Primary Key معرفی شده باشد به علت تکراری شدن از شما نخواهد پذیرفت به همین خاطر با یک کوری حذف جدول را خالی و سپس اطلاعات ذخیره شده را بازیابی کنید
موفق باشید

kmotavali
یک شنبه 11 دی 1384, 21:15 عصر
از راهنمایی تون سپاسگذارم
درمورد transfer باید خدمتتون عرض کنم که بطور کلی کارمو راه انداخت
البته بکمک یک پرسش
درمورد ERROR ها منظورتون شماره command هستش

Sheerkoshan
چهارشنبه 14 دی 1384, 11:07 صبح
دوست من
منظورت از شماره command رو نمی فهمم
Errorهای اکسس هرکدام کدی رو برمی گردونه که با توجه به اون کد پیام مناسب صادر می کنه حالا با داشتن کد مربوطه می تونی پیام رو بصورت پیام فارسی برگردونی

موفق باشی

kmotavali
چهارشنبه 14 دی 1384, 23:14 عصر
دوست عزیز از راهنماییتون ممنونم مشکل رو حل کردم
من با دقت متن رو مطالعه نکرده بددم
ممنونم

Sheerkoshan
پنج شنبه 15 دی 1384, 08:46 صبح
قابلی نداشت ما خودمون هم از این بده بستونا چیز یاد میگیریم

kmotavali
جمعه 16 دی 1384, 02:35 صبح
ببیشید دوست عزیز
من الان ویندوز نصب کردم اما وقتی بانک رو باز میکنم فیلدهای تاریخی که تابع Date رو پیش فرض قرار دادم در رکوردهای جدید به این شکل نمایش داده میشه #Name?
و وقتی تو پنجزه Immediat اونوتایپ میکنم پیغام میده که dll نصب نشده
بنظر شما مشکل چیه
قبلا از راهنماییتون ممنونم

sarami
یک شنبه 18 دی 1384, 13:24 عصر
dll مورد نظر رو register کنید منوی register activex contorolبهتره از همین توابع اماده که در همین فروم قبل پست شده استفاده کنین البته این نظره منه چون شما فایل setup برای پروژه هاتون نمی سازین استفاده از توابع آماده بهتر از استفاده از dll می باشد. موفق باشید

kmotavali
دوشنبه 19 دی 1384, 11:13 صبح
از راهنماییتون سپاسگذارم
میشه درمورد بک آپ گرفتن از یک جدول یه راهنمایی بفرمایید
میخوام بانک اطلاعاتی رو بوسیله دیسکت آپدیت کنم
یه راهنمایی کوچولو یا معرفی یه اکتیو ایکس

sarami
دوشنبه 19 دی 1384, 19:34 عصر
در مورد اینکه اطلاعات برروی دیسکت با چه format هستش چیزی نگفتین اگه اون اطلاعات از نوع access باشه شما میتونین
dim db as database
set db= "a:\test.mdb
به اون database دسترسی داشته با شین و با استفاده از tabledeff مربوط به database جاری تون اطلاعات رو از روی اون بخونین و یا تغییر بدین موفق باشین

kmotavali
دوشنبه 19 دی 1384, 21:06 عصر
جناب صرامی از راهنماییتون ممنونم
اطلاعات از نوع اکسسه که یک دیتابیس جدید میسازه واطلاعاتی رو که با یک کوری جمع شده به فلاپی میفرسته مشکل من اینه که حجم دیتابیس و اینکه کاربر راحت میتونه اطلاعات جدول رو دستکاری کنه مثلا بانک پسورد نداره

sarami
سه شنبه 20 دی 1384, 15:54 عصر
من که متوجه منظورت نمی شم

kmotavali
سه شنبه 20 دی 1384, 18:44 عصر
میخوام تو یه دیتابیس از یه جدول backup بگیرم و توی یه دیتابیس دیگه از اون جدول استفاده کنم

kmotavali
جمعه 23 دی 1384, 04:57 صبح
مقدار فروش روزانه ثبت شده در بانک اطلاعاتی مغازه رو به همون بانک که توی سیستم خونس اضافه کنم

sarami
شنبه 24 دی 1384, 16:53 عصر
من که راهشو خدمتتون عرض کردم

kmotavali
شنبه 24 دی 1384, 17:21 عصر
ممنونم
همین کار انجام دادم و تیبل مورد نظر رو هم مخفی کردم

sarami
شنبه 24 دی 1384, 17:44 عصر
خدا رو شکل مشکل شما هم حل شد

kmotavali
یک شنبه 25 دی 1384, 15:41 عصر
بازم یه مشکل دیگه دارم
اونم درمورد گزارشه که تو تاپیک قبلی توضیح دادین ولی نتونستم بطور کامل انجامش بدم فقط تونستم با For وNextتعداد رکوردهارو بشمارم و به دسته های 20 تایی تقسیمشون کنم بقیه کارو متوجه نشدم

pmoshir
سه شنبه 10 دی 1387, 21:07 عصر
دوستان عزیز اگه یه نمونه برای بازیابی اطلاعات از روی backup بزارین ممنون میشم.

مهدی قربانی
سه شنبه 10 دی 1387, 22:15 عصر
سلام
جستجو كنيد فكر ميكنم نمونه هست .