PDA

View Full Version : سوال: امکان ذخیره تغییرات فیلدها در جدول دیگر



wolfstander
دوشنبه 04 بهمن 1389, 07:51 صبح
سلام به همه دوستان
من یه موردی رو تو شرکت دارم که حسابی داره کفری میکنه من رو
اون هم اینکه میگن وقتی تغییری در یک رکورد داده میشه، کل اون رکورد یک جای دیگه ذخیره بشه
حالا من یه فرم دارم که به تیبل behrang متصله
میخوام هر تغییری در فیلدهای این فرم دادم، در جدول back ذخیره بشه
آیا امکانش هست؟

mohamad goodarzi
دوشنبه 04 بهمن 1389, 08:09 صبح
با سلام
دوست گرامي اطلاعات قديمي فيلد در جدول جديد ذخيره بشه يا اطلاعات جديدتغيير يافته در جدول جديد ذخيره بشه
در هر صورت فايل راتغيير دادم

wolfstander
دوشنبه 04 بهمن 1389, 09:42 صبح
سلام
با تشکر از شما دوست عزیز
مساله اینجاست که نمیخوام به این صورت کار انجام بشه
میخوام هر تغییری که داده میشه، جدیدش بره توی جدول بشینه و به این ترتیب، آخریش میشه همونی که تو جدول اصلی هست
و میخوام که توسط دکمه این کار نشه، یعنی کاربر یه فیلد رو که تغییر داد، کل رکورد بره بشینه تو جدول بک آپ
حالا هر فیلدی که میخواد باشه و تغییری که میخواد بده
حالا از اون ور، تعداد فیلدهای من هم زیاده و اینکه تک تک تکس باکس ها رو بخوام بیارم تو کد، کمی شلوغ و پلوغ میکنه کار رو
مساله من اینه:
هر تغییری در هر فیلدی بره بشینه تو جدول بک آپ
مساله دوم که اهمیتی نداره و اگه بشه کار من رو راحت میکنه:
دستوری که کل فیلد رو همزمان کپی کنه تو جدول بک آپ
با تشکر از شما دوست عزیز

mohamad goodarzi
دوشنبه 04 بهمن 1389, 10:58 صبح
باسلام
بنظر در on Exit يا on Changeآخرين فيلد ،كد فيلدهاي كه مي خواهيد اطلاعاتشان ذخيره بشودبنويسيد تانيازبه دكمه نباشد

wolfstander
دوشنبه 04 بهمن 1389, 11:21 صبح
باسلام
بنظر در on Exit يا on Changeآخرين فيلد ،كد فيلدهاي كه مي خواهيد اطلاعاتشان ذخيره بشودبنويسيد تانيازبه دكمه نباشد
سلام
با تشکر از شما
مشکل به این صورت حل میشه
فقط چیزی که باقی میمونه ، اینه که الان وقتی که اطلاعات منتقل میشه، اطلاعات قبلی رو پاک میکنه و تو جدول میشینه
اگه بخوام کاری کنم که اطلاعات قبلی پاک نشه چیکار باید کنم؟
با تشکر از شما

RESMAILY
دوشنبه 04 بهمن 1389, 11:41 صبح
به نام خدا
با سلام. چرا از Appendquery و updatequery استفاده نمي كنيد؟
يك چك باكس نامرعي (visible=0) روي فرم تان بگذاريد با مقدار اوليه مثلاصفر. حالا اگر ركوردتان جديد باشد شرط چك باكس مساوي باصفر خواهد بود و ميشود از appendqeury استفاده كرد. در حالت تصحيح و تغيير ركورد ثبت شده قبلي هم چك باكس را مساوي -1 قرار دهيد و درنتيجه از updatequery استفده نماييد.

wolfstander
دوشنبه 04 بهمن 1389, 12:08 عصر
سلام
یک راه حل به این صورت پیدا کردم
اون هم اینکه در اونت after update فرم، این کد رو نوشتم


Private Sub Form_AfterUpdate()
sqlstr = "insert into backup (id,t,t1,t2) values ([id],[t],[t1],[t2])"
DoCmd.RunSQL sqlstr
End Sub

اینطوری هم نیاز به اینکه دو تا کوئری اپند و آپدیت درست کنم از بین میره، (هرچند اول به این قضیه فکر کردم، ولی به راه حل نرسیدم)
هم اینکه تغییرات رو ذخیره میکنه
به محض اینکه رکورد آپدیت بشه
حالا هر فیلدی که میخواد باشه
با تشکر از همه دوستان