PDA

View Full Version : انتقال مقادیر فیلد از فرم به جدول



صبا9841
یک شنبه 15 بهمن 1385, 15:50 عصر
با سلام
دوستان توی این فایل نمونه مستقیما نتیجه محاسبه یک فیلد به جدول فرستاده شد که بعد از چند رکورد متوقف شد. علت این مشکل را نتوانستم رفع کنم . لطفا راهنمایی بفرمائید. متشکرم

seeker
یک شنبه 15 بهمن 1385, 16:47 عصر
خوب دوباره بساز

Payam Moradi
یک شنبه 15 بهمن 1385, 17:18 عصر
خوب دوباره بسازتصور نمیکنم جواب درستی باشه.!!!


با سلام
دوستان توی این فایل نمونه مستقیما نتیجه محاسبه یک فیلد به جدول فرستاده شد که بعد از چند رکورد متوقف شد. علت این مشکل را نتوانستم رفع کنم . لطفا راهنمایی بفرمائید. متشکرم

صبا خانوم/آقا :

شما در کد فرم این خطوط رو نوشتید:



Private Sub Form_AfterUpdate()
Me.total = Me.Text7
End Sub
Private Sub Text7_AfterUpdate()
Me.total = Me.Text7
End Sub


یعنی برنامه میخواد در دو جا یک فیلد رو به صورت همزمان آپدیت کنه. خب مسلما تو یک حلقه میفته و در اون گرفتار میشه.

فقط در روال مربوط به تکست فیلد رو آپدیت کن. مثلا:



Private Sub Text7_AfterUpdate()
Me.total = Me.Text7
End Sub


موفق باشید:چشمک:

صبا9841
دوشنبه 16 بهمن 1385, 08:25 صبح
ممنون از راهنماییتان. هدف انتقال مقادیر محاسبه شده text7 توی فرم به فیلد total توی جدول است. البته توی این فرم در حال تمرین با تعداد زیادی از متدها و روالها بودم که با حذفهای متوالی قابلیت این مورد هم دچار اشکال شد بعد از آن هر چه سعی کردم متوجه نشدم.

Payam Moradi
دوشنبه 16 بهمن 1385, 10:42 صبح
ممنون از راهنماییتان. هدف انتقال مقادیر محاسبه شده text7 توی فرم به فیلد total توی جدول است. البته توی این فرم در حال تمرین با تعداد زیادی از متدها و روالها بودم که با حذفهای متوالی قابلیت این مورد هم دچار اشکال شد بعد از آن هر چه سعی کردم متوجه نشدم.

من که متوجه نشدم. من تست که کردم درست بود.:متفکر:
ولی پیشنهاد میکنم برای فیلدهایی که همیشه حاصل چند محاسبه رو نمایش میدند، فیلدی درست نشه بلکه با یک کوئری نتیجه نمایش داده بشه.



SELECT *, (Fileld1 - 2) AS Total FROM MyTable;


اینطوری حجمی اضافی در دیتابیس بوجود نمی آید و اطلاعات همیشه بروز هست.

این نمونه رو نگاه کنید. من فیلد Total رو از جدول شما حذف کردم و یک کوئری و یک فرم جدید قرار دادم
فرم جدید به نام Query1 و کوئری جدید به نام Query1 هست. فیلد Total در فرم Query1 نیز قابل ویرایش نیست و به صورت خودکار آپدیت میشه.
.

seeker
دوشنبه 16 بهمن 1385, 10:49 صبح
این که فرمودند منطقی تر هست
شما یک کوئری درست کنین که یک فیلد داشته باشه که او محاسبه رو انجام بده
بعد فرم رو از رو کوئری بسازید

صبا9841
دوشنبه 16 بهمن 1385, 11:12 صبح
دوستان خیلی لطف دارید. هدف ارتباط مستقیم فرم با جدول هست. بطوریکه نیازی به نگهداری (ذخیره) مقادیر در دیتابیس نباشد. جهت مزید استحضارتان این کار با یک باتن هم انجام میشد(ارنتقال نتیجه تکس باکس به جدول) اما برای کاربر کلیک روی باتن وقت گیر است مخصوصا در فرمهایی که دارای تکس باکسهای به تعداد کم ولی مقادیر داده های زیاد. تصور کنید در دقیقه 25 عدد وارد کند و بعد باتن را هم کلک کند.
روشش را پیدا شد ولی متاسفانه کلاً فرمت آن بهم خورد و جایی هم یادداشت نشده بود.
لطفاً اگر ممکن است با این هدف که "نتیجه مقادیر تکس باکس را به فیلد در جدول منتقل نماید" راهنمایی بفرمائید . متشکرم

Payam Moradi
دوشنبه 16 بهمن 1385, 11:24 صبح
دوستان خیلی لطف دارید. هدف ارتباط مستقیم فرم با جدول هست. بطوریکه نیازی به نگهداری (ذخیره) مقادیر در دیتابیس نباشد. جهت مزید استحضارتان این کار با یک باتن هم انجام میشد(ارنتقال نتیجه تکس باکس به جدول) اما برای کاربر کلیک روی باتن وقت گیر است مخصوصا در فرمهایی که دارای تکس باکسهای به تعداد کم ولی مقادیر داده های زیاد. تصور کنید در دقیقه 25 عدد وارد کند و بعد باتن را هم کلک کند.
روشش را پیدا شد ولی متاسفانه کلاً فرمت آن بهم خورد و جایی هم یادداشت نشده بود.
لطفاً اگر ممکن است با این هدف که "نتیجه مقادیر تکس باکس را به فیلد در جدول منتقل نماید" راهنمایی بفرمائید . متشکرم

باز هم کدهایی که نوشتم ایراد نداره.
ایندفعه فقط کد رو در روال Form_BeforeUpdate قرار بده. فقط در این روال:



Private Sub Form_BeforeUpdate(Cancel As Integer)
Me.total = Me.Text7
End Sub

.
.
نتیجه را بنویسد.

صبا9841
دوشنبه 16 بهمن 1385, 15:49 عصر
بله، همانطوریکه قبلاً عرض کردم در اثر یکسری تغییرات (حذف واضافه) این فرم با اشکال مواجه شد که طبق فرمایش جنابعالی در پستهای بالا فرم برنامه روی کد afterUpdate توی یک حلقه می افتاد در حالیکه این کد فرم را باید در beforapdate فرم وارد میشد و ظاهراً چند رکورد اولی به این صورت بود.
با تقدیر از همراهی و توجه جنابعالی متاسفانه دیر متوجه شدم (بعد از ان هم امکان کانکت نبود) که به استحضارتان برسانم.
بقول دوستمان یکی دیگه ساخته شد تا اگر مورد نیاز کسی بود بتواند از این فایل الگوبردارد.متشکرم