PDA

View Full Version : سوال: استفاده از تابع زيرفرم در يك فرم ديگر



stabesh
پنج شنبه 02 دی 1389, 11:58 صبح
سلام
چه جوري تابع زير فرم را از يك فرم ديگر صدا بايد زد ؟
اگر بخواهيم تابع خود فرم را صدا بزنميم مي نويسيم


Call Forms(formName).FunctionName
ولي براي زير فرم جواب نميده
ممنون

mazoolagh
جمعه 03 دی 1389, 22:25 عصر
این رو تست کنین


call forms![mainformname]![subformname].function


البته اگر تابع یا سابروتینی دارین که قرار هست استفاده سراسری ازش داشته باشین بهتر هست یک public class تعریف کنین و اون تابع یا ساب رو هم بصورت پابلیک در اون کلاس معرفی کنین

stabesh
شنبه 04 دی 1389, 17:12 عصر
این رو تست کنین


call forms![mainformname]![subformname].function


البته اگر تابع یا سابروتینی دارین که قرار هست استفاده سراسری ازش داشته باشین بهتر هست یک public class تعریف کنین و اون تابع یا ساب رو هم بصورت پابلیک در اون کلاس معرفی کنین

ممنون اینکه گفتید نشد
لطفا یکی کمک کنه
:گریه:

mazoolagh
شنبه 04 دی 1389, 19:55 عصر
فکر کنم در مورد این کد شما من رو به اشتباه انداختین

Call Forms(formName).FunctionName

راهش همون هست که فانکشن پابلیک در یک ماجول پابلیک تعریف کنین

stabesh
یک شنبه 05 دی 1389, 17:33 عصر
فکر کنم در مورد این کد شما من رو به اشتباه انداختین

Call Forms(formName).FunctionName

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

mazoolagh
دوشنبه 06 دی 1389, 22:34 عصر
حالا شد
خوب این چیزی که مورد نظر شماستfunction نیست بلکه property هست و call کردن اون هم بیمعنی است.


forms![mainformname]![subformname].allowedit=false

stabesh
سه شنبه 07 دی 1389, 07:51 صبح
حالا شد
خوب این چیزی که مورد نظر شماستfunction نیست بلکه property هست و call کردن اون هم بیمعنی است.


forms![mainformname]![subformname].allowedit=false

جناب من توي زير فرم يك تابع دارم كه property هاي اونو عوض مي كنه
من مي خوام اون تابع رو صدا بزنم

mazoolagh
سه شنبه 07 دی 1389, 20:29 عصر
پابلیک فانکشن
والسلام

tooraj_azizi_1035
چهارشنبه 08 دی 1389, 15:57 عصر
سلام،
فرض کن این تابع تو Orders Subform از فرم Orders قرار داره:


Public Function GetProductID() As Variant
' Return current productID.
GetProductID = ProductID
End Function

اینطوری می تونی صداش کنی: Forms!Orders![Orders Subform].Form.GetProductID

به شرطی می تونی کد بالا رو اجرا کنی که فرم Orders باز باشه در غیر این صورت اینطوری باید کار کنی:

Dim frm As New [Form_Orders Subform]
frm.GetProductID


چون Form_Orders Subform فاصله داره باید از [] استفاده کنی. وجود فاصله اجباری نیست.

منبع: http://msdn.microsoft.com/en-us/library/aa172250(office.11).aspx

stabesh
پنج شنبه 09 دی 1389, 08:11 صبح
سلام
ممنون جواب داديد ولي اين به دردم نميخوره خودم ديده بودمش مي خوام مثل فرمت پست شماره يك باشه شايد اصلا امكان نداشته باشه چون خيلي گشتم
به هر حال ممنون :ناراحت:

tooraj_azizi_1035
پنج شنبه 09 دی 1389, 17:47 عصر
منظورتون چیه که بدردتون نمی خوره؟ مگه شما نمی خوای یک تابع متعلق به یک زیر فرم که تو یه فرم دیگه هست رو صدا بزنید؟
جواب را مایکروسافت داده نه ما که بخواد مشکلی داشته باشه!
پاسخ ما مطابق سوال شماست مگر آنکه سوال رو خوب مطرح نکرده باشید.

stabesh
جمعه 10 دی 1389, 13:54 عصر
می خوام به فرمت پست اول باشه
من یک فرم دارم که توش با انتخاب کشور استان وشهر باید شناسه شهر به اون فرمی که اون رو باز کرده بفرسته چون خیلی از اوقات لازمش دارم به نظرم رسید بهترین راه اینه که موفع باز کردن این فرم اون فرمی که بازش می کنه اسم خودشو به این فرم بده بعد از این که کاربر تأیید کرد اون وقت یک تابع اجرا میشه که شناسه شهر رو استفاده می کنه
حالا ممکن فرمی که فرم انتخاب شهر رو باز کرده زیر فرم باشه اون وقت دیگه نمی دونم وقتی می خوام از فرمت پست اول این تاپیک استفاده کنم چه جوری باید اسمشو بدم خیلی گشتم فکر کنم اون فرمت فقط برای فرم کار میکنه نه زیر فرم باید یه راه دیگه پیدا کنم
بازم ازتون متشکرم

tooraj_azizi_1035
شنبه 11 دی 1389, 11:30 صبح
سلام،
ببین راهی که بهت گفتم درسته کافیه به جای مقادیر اسامی خودت رو جایگزین کنی.