PDA

View Full Version : پر شدن تمام فیلدها



smderfan
چهارشنبه 04 بهمن 1385, 17:18 عصر
با سلام و خسته نباشید
می خواستم برنامه رو اینجا بزام تا مشکلم رو حل کنید ولی سایت خوب برای آپ سراغ ندارم
اگر لطف کنید و یک سایت خوب به من پیشنهاد بدید.
می خوام در زمان ثبت اطلاعات کلیه فیلدها پر بشه و اگر فیلدی خالی در زمان ایجاد رکورد جدید پیام بده و مکان نما داخل همان فیلد قرار بگیره تا کاربر اون فیلد رو پر کنه ...
لطف کنید و راهنمایی کنید.
با تشکر

صبا9841
پنج شنبه 05 بهمن 1385, 09:55 صبح
یعنی یک نمونه برنامه اکسس که حداکثر یکی دو جدول و کوئری و فرم را بعد از فشرده سازی با WinRAR یا WinZip حداکثر 1.91 کیلوبایت باشد را بلد نیستید آپلود کنید یا اینکه از این حجم بیشتر میشود؟

smderfan
پنج شنبه 05 بهمن 1385, 13:20 عصر
ببخشید ... می ونم آپلود کنم ولی سایت خوبی برای آپلود سراغ ندارم%

انگوران
پنج شنبه 05 بهمن 1385, 13:55 عصر
ببخشید ... می ونم آپلود کنم ولی سایت خوبی برای آپلود سراغ ندارم%

ممکنه واضحتر بفرمائید منظورتون از سایت خوب چیه ؟

moustafa
پنج شنبه 05 بهمن 1385, 14:14 عصر
با دستور for each ...in.......next می تونی کنترل کنی در رویدا لاست فوکس اخرین فیلد :

dim frm as form
dim ctr as control
set frm =current form
for each ctr in frm
if ctr. control type=actextbox then
if ctr="" then ctr.setfocus
end if
next ctr

smderfan
پنج شنبه 05 بهمن 1385, 17:26 عصر
دست مصطفی جان درد نکنه ...
انگوران عزیز مطالب خودم رو کجا آپلود کنم تا کمکم کنید؟

Ali_Fallah
پنج شنبه 05 بهمن 1385, 19:32 عصر
اگر فایل شما تقریباً در حدود یک مگابایت هست و بصورت zip , rar یا... هست میتونی
در قسمتی که میخواهی پاسخ ارسال کنی دکمه حالت پیشرفته را کلیک کن و بعد از باز شدن صفحه دکمه مدیریت ضمیمه ها کلیک کن که میتونی فایلت رو آپلود کنی ...
توضیحات بیشتر همان صفحه...

smderfan
جمعه 06 بهمن 1385, 00:26 صبح
با سلام
برنامه ام رو گذاشتم لطف کنید و در مورد زیر کمکم کنید.
- می خوام یک بانک مزایده داشته باشم که شماره خودرو رو بگیره و اون رو به لیست مزایده اضافه کنه و در صورتی که درمزایده به فروش رسید از بانک اصلی خودروهای سبک Car1 حذف کنه – ضمناً برای هر مزایده یک بانک با شماره مزایده ایجاد کنه و آرشیو داشته باشه.
با تشکر

لینک دانلود برنامه ام :
6627

smderfan
جمعه 06 بهمن 1385, 22:48 عصر
می خوام وقتی که رکوردی از جدول حذف شد فیلد ردیف بصورت خودکار مرتب شود.
فیلد ردیف در جدول بانک من به صورت Autonumber است.
همچنین این مشکل رو در گزارشگیری نیز دارم یعنی می خوام برای رکوردهای مورد گزارش شماره ردیف بزاره هر چند بصورت مجازی باشه ...
لطف کنید کمکم کنید این دو مورد رو خیلی نیاز دارم%
با تشکر

انگوران
شنبه 07 بهمن 1385, 06:34 صبح
در مورد سئوال اولتون با توجه به اینکه فیلد ردیف Autonumber است امکانپذیر نیست و در مورد سئوال دومتون می تونین در گزارش یه تکست باکس بذارین و اونو مساوی با 1 قرار بدین ( داخل تسکت باکس بنویسین 1= ) و وارد خصوصیت تکست باکس بشین و مقدار خصوصیت running sum رو به over all تغییر بدین .

smderfan
شنبه 07 بهمن 1385, 21:37 عصر
ضمن تشکر از sarami عزیز که در تاپیکی با عنوان " سورت یک فیلد سپس ایجاد ردیف بوسیله کلید " نمونه جالبی رو گذاشته اند.
کد زیر در نمونه وجود داره که شماره ردیف رو وقتی در فرم یک ساب فرم داریم مرتب می کنه . حالا اگر بخواهیم این کار رو بدون ساب فرم انجام بدیم تا شماره ردیف به ترتیب شود باید چه کدی رو قرار بدیم. یعنی وقتی بر روی یک command کلیک کردیم خودکار تنظیمات ردیف در جدول انجام بشه.

کد :


Dim rst As Recordset
Dim a As Integer
Set rst = Me.sform.Form.Recordset

rst.MoveFirst
a = 1
Do Until rst.EOF
rst.Edit
rst!radif = a
rst.Update
a = a + 1
rst.MoveNext
Loop
Me.sform.Requery

smderfan
دوشنبه 09 بهمن 1385, 09:59 صبح
کسی نمی تونه در ایجاد ردیف کمکم کنه

moustafa
دوشنبه 09 بهمن 1385, 18:11 عصر
radif.setfocus
DoCmd.RunCommand acCmdSortAscending

smderfan
دوشنبه 09 بهمن 1385, 21:39 عصر
مصطفی جان دستت درد نکنه ...
منظورم استفاده از فرمان سورت نبود ... برای اینکه متوجه بشی مثالی می زنم؟
------------------------------------------------------------------
یک جدول با یک فیلد (از نوع Number) به عنوان ردیف داریم که پس از ایجاد رکورد جدید شماره ردیف یک واحد افزایش می یابد (مشابه Autonumber)
حالا فرض را بر این می گیریم که 5 رکورد داریم و فیلد ردیف ما از 1 تا 5 ثبت شده است. اگر یکی به عنوان مثال رکورد 3 را حذف کنیم شماره ردیف به صورت 1 - 2 - 4 - 5 قرار می گیرد. و مرتب نیست و من می خوام بصورت 1-2-3-4 به ترتیب شماره رکوردها تغییر یابد.
------------------------------------------------------------------

MM_Mofidi
چهارشنبه 11 بهمن 1385, 09:21 صبح
شماره ردیف معمولا در runtime ایجاد و نمایش داده میشود چه اصراری بر ذخیره کردن آن دارید که این مشکل و دهها مشکل مشابه دیگر برخورد کنید؟

whitehat
چهارشنبه 11 بهمن 1385, 10:04 صبح
یک جدول با یک فیلد (از نوع Number) به عنوان ردیف داریم که پس از ایجاد رکورد جدید شماره ردیف یک واحد افزایش می یابد (مشابه Autonumber)
حالا فرض را بر این می گیریم که 5 رکورد داریم و فیلد ردیف ما از 1 تا 5 ثبت شده است. اگر یکی به عنوان مثال رکورد 3 را حذف کنیم شماره ردیف به صورت 1 - 2 - 4 - 5 قرار می گیرد. و مرتب نیست و من می خوام بصورت 1-2-3-4 به ترتیب شماره رکوردها تغییر یابد.
این کار نیاز به کد نویسی داره و بصورت اتوماتیک انجام پذیر نیست
اگر جدول کوچکی دارید راحت ترین راه اینه که اطلاعات را در یک جدول جدید با فیلد AutoNumber بریزید و جدول قبلی را حذف کنید.
راه دیگر اینه که (در صورتی که ترتیب مهم نباشد) یک فیلد حذف منطقی بگذارید و اطلاعات را حذف فیزیکی نکنید و در هنگام درج رکورد خود را در جایی که خالی است بگذارید
راه سوم و البته سخت ترین راه اینه که بعد از درج رکورد شماره رکورد ها را Update کنید

smderfan
جمعه 13 بهمن 1385, 13:30 عصر
به یک فیلد ردیف بصورت مجازی در فرم نیاز دارم که در بانک ثبت نشه ولی در فرم نمایش داده بشه یعنی در زمان لود فرم ردیف در فیلد خودش قرار بگیره و قابل ویرایش هم نباشه. (یعنی مشکلات فیلد AutoNumber و یا ... رو نداشته باشه)

Payam Moradi
جمعه 13 بهمن 1385, 13:41 عصر
به یک فیلد ردیف بصورت مجازی در فرم نیاز دارم که در بانک ثبت نشه ولی در فرم نمایش داده بشه یعنی در زمان لود فرم ردیف در فیلد خودش قرار بگیره و قابل ویرایش هم نباشه. (یعنی مشکلات فیلد AutoNumber و یا ... رو نداشته باشه)

یک Textbox در یک قسمت فرم قرار بده و خصیصه Control Source رو این مقدار تنظیم کن:


=[CurrentRecord]

البته توجه داشته باش اگه Defualt View فرم به Continuous Forms تنظیم شده باشه این فیلد خیر دیر آپدیت میشه که از مشکلات ذاتی اکسس هست.
در ضمن این فیلد با جابجاشدن رکوردها ثابت میمونه و همیشه یک عدد به یک رکورد تعلق نداره.
.
.

smderfan
جمعه 13 بهمن 1385, 14:39 عصر
می خوام وقتی فرم بانک لود شد جدول اصلی بانک رو چک کنه و کلیه رکوردهایی که فیلدهایی اصلی خالی دارند رو حذف کنه.
جدول شامل رکوردهای نام – نام خانوادگی و آدرس هست. حالا می خوام رکوردهایی که فیلدهای نام و نام خانوادگی خالی داره یعنی زمانی که هر دو خالی هست رو حذف کنه.

Payam Moradi
جمعه 13 بهمن 1385, 15:46 عصر
می خوام وقتی فرم بانک لود شد جدول اصلی بانک رو چک کنه و کلیه رکوردهایی که فیلدهایی اصلی خالی دارند رو حذف کنه.
جدول شامل رکوردهای نام – نام خانوادگی و آدرس هست. حالا می خوام رکوردهایی که فیلدهای نام و نام خانوادگی خالی داره یعنی زمانی که هر دو خالی هست رو حذف کنه.

اگر میخوای شرط اینطوری باشه که هم نام خالی باشه هم نام خانوادگی


DoCmd.RunSQL "DELETE * FROM MyTableName WHERE (Name = '' OR Name Is Null) AND (Family = '' OR Family Is Null)"

ولی اگر نام خالی باشه یا نام خانوادگی


DoCmd.RunSQL "DELETE * FROM MyTableName WHERE (Name = '' OR Name Is Null) OR (Family = '' OR Family Is Null)"

در روال Form_Load خطوط بالا را قرار بده و پس از آن خط ذیل را قرار بده تا اطلاعات جدید توسط فرم دریافت شود.

Me.Requery

به جای MyTableName و Name و Family مقدایر خوت رو بگذار.

برای اکسس هنگام اجرای دستور حذف ازت سئوالی نکه میتونی این خط را قبل دستور حذف بکار ببری:

DoCmd.SetWarnings False

و برای بازگشت به حالت قبل:


DoCmd.SetWarnings True
کار کد بالا اینه که پرسشهای اکسس نادیده گرفته میشه و نمایش داده نمیشه و مقدار پیش فرض (که معمولا Yes هست) در نظر گرفته میشه.

شکل کلی کد درخواستی شما اینگونه خواهد بود.


DoCmd.SetWarnings False
' یکی از دو خط دستور حذف بالا
Me.Requery
DoCmd.SetWarnings True

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

صبا9841
شنبه 14 بهمن 1385, 15:45 عصر
مصطفی جان دستت درد نکنه ...
منظورم استفاده از فرمان سورت نبود ... برای اینکه متوجه بشی مثالی می زنم؟
------------------------------------------------------------------
یک جدول با یک فیلد (از نوع Number) به عنوان ردیف داریم که پس از ایجاد رکورد جدید شماره ردیف یک واحد افزایش می یابد (مشابه Autonumber)
حالا فرض را بر این می گیریم که 5 رکورد داریم و فیلد ردیف ما از 1 تا 5 ثبت شده است. اگر یکی به عنوان مثال رکورد 3 را حذف کنیم شماره ردیف به صورت 1 - 2 - 4 - 5 قرار می گیرد. و مرتب نیست و من می خوام بصورت 1-2-3-4 به ترتیب شماره رکوردها تغییر یابد.
------------------------------------------------------------------
نیازهایت خیلی زیادند تا یکی رو ببینی چهار تا دیگه ... با این حال این نمونه رو ببینید. اگر روی beforInsert اونت فرمت بنویس.

smderfan
شنبه 14 بهمن 1385, 18:59 عصر
با تشکر مشکل حل شده است.

صبا9841
یک شنبه 15 بهمن 1385, 08:04 صبح
با تشکر مشکل حل شده است.
خوشحالم که حل شد.
نمونه کاری که گذاشتی جالب بود. فقط یک نکته را توجه کنید برای دفعات بعدی که خواستی نمونه بفرستی قبل از اینکه از برنامه خارج بشوید در مسیر tools>dataUtiltit برو و فایل compac&Repair کن بعد که بیرون آمدی zip یا RAR کن.
مثلا فایلی که فرستادی 6516 بود که زیپش 830 شد ولی همین فایل را من کمپک کردم و شد 684 با زیپ 50 اینطور نه خودت دنبال سایتی برای آپلود میگردی نه دوستان گرفتار دانلود فایل میشوند.
موفق باشید