PDA

View Full Version : سوال: عدم خروج از رکورد در صورت خالی بودن چند فیلد



Nazir Ahmad
چهارشنبه 30 بهمن 1392, 09:11 صبح
با سلام خدمت تمام اساتید و دوستان گرامی
درمورد این موضوع جستجو کردم اما هیچی پیدا نکردم. از دوستان معذرتخواهی میکنم اگر موضوع تکراریه.

یه فرم داریم که شامل چند فیلده. از داخل جدول برای بعضی از فیلدها خاصیت required رو به yes تغییر دادم یعنی حتما باید پر بشه و خالی نباشه. زمانی که این فیلدها خالیه و میخواهیم از رکورد خارج بشیم پیغام خود اکسس که فلان فیلد خالیه ظاهر میشه.
حالا من میخوام یه کد بنویسم که هنگام خارج شدن از رکورد درصورتیکه فیلدهایی که مشخص میکنم خالی بود؛ پیغامی که من میخوام ظاهر بشه و رنگ زمینه فیلدها هم تغییر کنه.

ممنون
یا حق

Nazir Ahmad
پنج شنبه 01 اسفند 1392, 07:13 صبح
دوستان کسی نبود کمک کنه؟ :ناراحت::ناراحت::ناراحت::نار حت::ناراحت::ناراحت::ناراحت:: اراحت:

alirezabahrami
پنج شنبه 01 اسفند 1392, 10:33 صبح
با سلام خدمت تمام اساتید و دوستان گرامی
درمورد این موضوع جستجو کردم اما هیچی پیدا نکردم. از دوستان معذرتخواهی میکنم اگر موضوع تکراریه.

یه فرم داریم که شامل چند فیلده. از داخل جدول برای بعضی از فیلدها خاصیت required رو به yes تغییر دادم یعنی حتما باید پر بشه و خالی نباشه. زمانی که این فیلدها خالیه و میخواهیم از رکورد خارج بشیم پیغام خود اکسس که فلان فیلد خالیه ظاهر میشه.
حالا من میخوام یه کد بنویسم که هنگام خارج شدن از رکورد درصورتیکه فیلدهایی که مشخص میکنم خالی بود؛ پیغامی که من میخوام ظاهر بشه و رنگ زمینه فیلدها هم تغییر کنه.

ممنون
یا حق
سلام
برای کنترل خالی بودن فیلد چرا از داخل فرم اقدام نمی کنید ؟
کدزیر برای کنترل خالی بودن یکی از فیلدهای شما به نام text0 است آن را در رویداد LostFocus فیلد text0 بکار ببر
برای فوکوس روی فیلد فوق ، ابتدا باید بر روی یک فیلد دیگر ( که پر بودن آن الزامی ندارد) فوکوس شود . در این مثال ابتدا روی text 5 فوکوس میشود بعد text0
موفق باشید


If IsNull(Text0) Or Text0 = "" Then
Text0.BackColor = 12582911
MsgBox "ÝíáÏ ÎÇáí ÇÓÊ", , "ÊæÌå"
Text5.SetFocus
Text0.SetFocus
Else
Text0.BackColor = 16777215
End If

Nazir Ahmad
پنج شنبه 01 اسفند 1392, 13:08 عصر
ممنون alirezabahrami (http://barnamenevis.org/member.php?90573-alirezabahrami) عزیز
من میخوام زمانی که رکورد جدیدی ایجاد میکنم و یا رکوردهای قبلی رو ویرایش میکنم این کار انجام بشه.
فایل رو هم ضمیمه کردم . اگر ممکنه همکاری کنید.
البته دو تا سوال دیگه هم دارم که تو خود فایل عنوان کردم
ممنون

یا حق

Nazir Ahmad
شنبه 03 اسفند 1392, 09:00 صبح
اساتید محترم لطفا همکاری کنید!!!!!!!!!!!!!
:افسرده::افسرده::افسرده::افس ده::افسرده:

Nazir Ahmad
دوشنبه 05 اسفند 1392, 08:32 صبح
:ناراحت::ناراحت::ناراحت::نار حت::ناراحت::ناراحت::ناراحت:: اراحت::ناراحت::ناراحت:

poriya1312
سه شنبه 06 اسفند 1392, 19:22 عصر
بهتره در قسمت before update فرمت نام فیلدهارو مشخص کنی وکد بنویسی خالی بودنشو کنترل کنه

Nazir Ahmad
چهارشنبه 07 اسفند 1392, 09:39 صبح
ممنون. اما سوال من اینه


از داخل جدول برای بعضی از فیلدها خاصیت required رو به yes تغییر دادم یعنی حتما باید پر بشه و خالی نباشه. زمانی که این فیلدها خالیه و میخواهیم از رکورد خارج بشیم پیغام خود اکسس که فلان فیلد خالیه ظاهر میشه.
حالا من میخوام یه کد بنویسم که هنگام خارج شدن از رکورد درصورتیکه فیلدهایی که مشخص میکنم خالی بود؛ پیغامی که من میخوام ظاهر بشه

یعنی من میخوام وقتی میخوام از رکورد خارج بشم دیگه اکسس اررو خالی بودن فیلد رو نده و تنها پیغام من رو نشون بده.
از کامند docmd.setwarnings False هم استفاده کردم جواب نمیده.
یه سوال دیگه هم اینکه که چطوری میشه قبل از خروچ از یک رکورد اطلاعات یک یا چند فیلد از رکورد جاری رو داخل کلیپ بورد کپی کرد و به فیلد جدید پیست کرد. (یعنی من میخوام با یه دکمه یه رکورد جدید اضافه کنم و بعد از اضافه شدن رکورد اطلاعات چند تا فیلد از رکوردی که قبلا توش بودم تو رکورد جدید پیست بشن)
ممنون
یا حق

poriya1312
شنبه 17 اسفند 1392, 18:26 عصر
سلام دوست عزیر و با اجازه اساتید بزرگوار درمورد کنترل خالی بودن فیلدهای عددی باید بگم که من از این روش استفاده کردم.که در before update فرم مربوطه کد زیر را بنویسید فرض بگیرید فیلدی با نام HOGOG دارید که نمیخواهید خالی باشد


If IsNull(HOGOG) Then
"MsgBox " the fild HOGOG is null
Me.HOGOG = 0
Else

Endif
توجه داشته باشید که خط سوم دستور عدد صفر را در فیلد مورد نظر وارد میکند که خالی نباشد

poriya1312
شنبه 17 اسفند 1392, 19:19 عصر
اما درمورد قسمت دوم سوالت در پست شماره هشت که چطوری میشه قبل از خروچ از یک رکورد اطلاعات یک یا چند فیلد از رکورد جاری رو داخل کلیپ بورد کپی کرد و به فیلد جدید پیست کرد. راههای متعددی وجود دارد ولی ساده ترین را عرض میکنم
باز فرض کنیم شما فیلدی با نام HOGOG دارید در قسمت before update فرمتون کد زیر را بنویسید
Me.HOGOG.DefaultValue = Me.HOGOG.Value
توضیح اینکه این کد فقط برای فیلدهای عددی میباشد یعنی همیشه آخرین عدد واردشده در فیلد حقوق را در DefaultValue فیلد حقوق خواهد داشت که نیازی به نوشتن دوباره نخواهید داشت