با سلام با سلام من یک قبض مالیات دارم که مبلغ قبض مجموع چند دوره و سال است و باید مبلغ هر دوره و سال را جدا در محاسباتم داشته باشم مشکلی که دارم می خوام بعد از پر نمودن تکست باکس 6 یک ردیف دیگر از تکست باکس و کمبو باکس ایجاد کنم تا اطلاعاتشو پر کنم ولی نتونستم دستوراتشو بنویسم لطفا راهنمایی نمایید
textbox
Collapse
X
-
-
-
-
-
با سلام با سلام من یک قبض مالیات دارم که مبلغ قبض مجموع چند دوره و سال است و باید مبلغ هر دوره و سال را جدا در محاسباتم داشته باشم مشکلی که دارم می خوام بعد از پر نمودن تکست باکس 6 یک ردیف دیگر از تکست باکس و کمبو باکس ایجاد کنم تا اطلاعاتشو پر کنم ولی نتونستم دستوراتشو بنویسم لطفا راهنمایی نمایید
سلام دوست عزیز
ایجاد تکست باکس یک قضیست. ثبت اطلاعات اون تکست باکس یه قضیه دیگه. یعنی میشه دو تا کار سخت و کدهای طولانی. من پیشنهاد میکنم اصلا همچین کاری نکنین
پیشنهادی که من دارم اینه که شما مثلا ده ردیف تکست باکس ایجاد کنین و همه رو مخفی نگه دارید. بعد کدی در تکست باکس ۶ بنویسید که بعد از پر شدن این تکست باکس مثلا تکست باکس های ردیف دوم فعال بشن و با پر کردن تکست باکس ۱۲ ردیف سوم فعال بشن و ....کامنت
-
با تشکر از آقایان قاسمیان و پارسائی و سایر دوستان و استادان من در خصوص برنامه ای که سعی در طراحی و نوشتنش هستم تا جاهایی را با راهنمایی دوستان پیش رفتم که فایلم را جهت راهنمایی بیشتر دوستان ضمیمه کردم در فایلم دو یوزر فرم موجود می باشد در یوزرفرم form1 من دستوراتی را جهت دکمه CommandButton قرار داده ام می خوام همین دستورات را در آخرین تکست باکس هر ردیف موقع خروج(exit) از تکست باکس اجرا شودهمانطور که ملاحظه می نمایید تعداد سطر زیاد هست و نمی خوام این دستور را در textbox_exit هر سطر بنویسم ایا دستوری هست که بتوان در هنگام خروج از تکست باکس آخر هر ردیف این دستورات را بررسب نماید.
راستش من چیزی شبیه عکسهایی که ضمیمه کردم(مانند فاکتور که در پایان هر سطر با زدن دکمه اینتر یک سطر جدید باز نماید ) می خواستم و این روش به ذهنم خطور کرد اگر دوستان روش بهتری می دونن لطفا راهنمایی نمایند و ایا در یوزر فرم امکان ایجاد جدول وجو داردفایل های پیوست شدهLast edited by sma4727134; 2018/06/30, 23:37.کامنت
-
-
-
سلام دوست عزيز
كاري كه من پيشنهاد ميكنم اينه كه از يك تابع استفاده كنيد. من تابع رو براتون نوشتم.
کد:Function add_row(ctrl As Control, form As UserForm) On Error Resume Next a = MsgBox("ÂíÇ ÓØÑ ÌÏíÏ ÇíÌÇÏ ÔæÏ", vbYesNo + vbQuestion, "Exit") x = CInt(Replace(ctrl.Name, "TextBox", "")) If (a = vbYes) Then For i = x + 1 To x + 3 form.Controls("TextBox" & i).Visible = True Next i For j = 2 / 3 * (x - 1) To 2 / 3 * (x - 1) + 1 form.Controls("ComboBox" & j).Visible = True Next j form.Controls("TextBox" & i).SetFocus End If End Function
حالا كافيه براي ايونت خروج از تكست باكس اين كد رو قرار بديد.
اين براي خروج از تكست باكس 7
کد:Private Sub TextBox7_Exit(ByVal Cancel As MSForms.ReturnBoolean) add_row TextBox7, form1 End Sub
کد:Private Sub TextBox10_Exit(ByVal Cancel As MSForms.ReturnBoolean) add_row TextBox10, form1 End Sub
کامنت
-
دوست عزیز با تشکر از لطف جنابعالی من تابع جنابعالی را بررسی نمودم و ممنون ازتون بیشتر مشکلم حل شد لطفا در خصوص دستور پیدا کردن متغیر x x = CInt(Replace(ctrl.Name, "TextBox", "")))) یک کم توضیح بدهید ثانیا وقتی در آخرین تکست باکس هر ردیف کلیلک می کنیم
به جای اینکه setfocus بر روی اولین تکست باکس ردیف بعد قرار بگیرد بر روی
commandbottun قرار می گیرد دستور زیر وقتی تکست باکسها visibel می باشند
درست عمل می کند ولی وقتی از حالت visibel = false به حالت visibel= true
تبدیل می شود درست عمل نمی کند لطفا جنابعالی نیز دوباره بررسی نموده و
راهنمایی کنید و همچنین آیا امکانش هست در خصوص event خروج از حلقه استفاده نمود تا مجبور نباشیم برای هر تکست باکس جداگانه دستور را بنویسم form.Controls("TextBox" & i).SetFocus
کامنت
-
دوست عزیز با تشکر از لطف جنابعالی من تابع جنابعالی را بررسی نمودم و ممنون ازتون بیشتر مشکلم حل شد لطفا در خصوص دستور پیدا کردن متغیر x x = CInt(Replace(ctrl.Name, "TextBox", "")))) یک کم توضیح بدهید ثانیا وقتی در آخرین تکست باکس هر ردیف کلیلک می کنیم
به جای اینکه setfocus بر روی اولین تکست باکس ردیف بعد قرار بگیرد بر روی
commandbottun قرار می گیرد دستور زیر وقتی تکست باکسها visibel می باشند
درست عمل می کند ولی وقتی از حالت visibel = false به حالت visibel= true
تبدیل می شود درست عمل نمی کند لطفا جنابعالی نیز دوباره بررسی نموده و
راهنمایی کنید و همچنین آیا امکانش هست در خصوص event خروج از حلقه استفاده نمود تا مجبور نباشیم برای هر تکست باکس جداگانه دستور را بنویسم form.Controls("TextBox" & i).SetFocus
خواهش ميكنم
کد:x = CInt(Replace(ctrl.Name, "TextBox", ""))
در مورد setfocuse نميدونم دقيقا مشكل چيه. يكي ديگه از دوستان هم اتفاقا همين اخيرا اين سوال رو پرسيدن. اگر راه حلشو پيدا كردم يا فهميدم مشكل از كجاست اطلاع رساني ميكنم
در مورد حلقه هم كه فرمودين خير امكان چنين كاري نيست. البته تا جايي كه من اطلاع دارم
کامنت
کامنت