PDA

View Full Version : سوال: ساخت نام SubProcedure از طريق كد



A.Farzin
چهارشنبه 01 خرداد 1387, 18:32 عصر
با سلام

من تعداد 90 Sub دارم كه هر كدامشان در حالتي خاص بايد اجرا شوند. نامهاي اين سابها عبارتند از Sub1، Sub2، Sub3، ...، Sub90
براي تشخيص اينكه در هر شرايط كدام Sub بايد Call شود از يك SELECT CASE ... END SELECT استفاده كرده‌ام.
دوست داشتم تا بدون ساخت چنين SELECT CASE طولاني و از طريق تركيب دو متغير، نام مناسب هر ساب را بدست آورده و اين متغير را در جلوي Call قرار دهم ولي روي نوع متغير خطا رخ مي‌داد.
به اين ترتيب كه اگر I متغيري از نوع Byte باشد از طريق
"SUB" & TRIM(STR(I)) يك متغير String بدست آورم كه معادل نام يكي از سابهاست. و حالا اين نام را اجرا كنم.
ميخواستم بدانم كه آيا چنين چيزي عملي است و اگر هست از چگونه بايد انجامش دهم؟

ممنون

.:KeihanCPU:.
چهارشنبه 01 خرداد 1387, 18:56 عصر
بهتره برنامه رو ضمیمه کنی تا کاربران کاملا متوجه بشن.

xxxxx_xxxxx
چهارشنبه 01 خرداد 1387, 19:02 عصر
دوست عزیز I را از نوع variant تعیین کنید شاید درست بشه. من هم امروز تقریبات به یک همچین مسئله ای برخوردم که با این کار درست شد.

موفق باشید

vbhamed
پنج شنبه 02 خرداد 1387, 00:32 صبح
سلام
اسم تابع بايد كامل نوشته بشه و اينطوري كه شما نوشتين اصلا از حالت فراخواني خارج ميشه و دستور معتبري نيست

اما اگر كار سابروتين هات خيلي طولاني نيست مي توني فقط يك سابروتين بنويسي و Select رو داخل سابروتين بزاري و يك پارامتر هم بگيري و با توجه به اون پارامتر كه با Select چك مي كني، كد مورد نظر رو اجرا كني


Private Sub subName(param As Integer)

Select Case param

Case 1
'code1

Case 2
'code2

Case 3
'code3
.
.
.

End Select

End Sub

Private Sub Form_Load()

subName 1
subName 2
subName 3
.
.
.

End Sub