PDA

View Full Version : hyperlink در اکسس



lililili
شنبه 31 شهریور 1386, 09:55 صبح
سلام

من 3 table دارم که بین آنها relation برقرار کردم

حال می خواهم وقتی روی یکی از فیلدهای فرم سومم که بر اساس table 3 ساخته شده
کلیک کنم (hyperlink ) فرم مربوط به آن فیلد باز شود

آیا باید در design مربوط به table فیلدم را از نوع hyperlink تعریف کنم ؟ در این صورت آدرس فرمم را باید کجا بدهم ؟

یا.....

لطفا مرا یاری کنید

mmha_85
شنبه 31 شهریور 1386, 11:07 صبح
اگه به بک فرم داخل برنامت می خوای لینک بدی لزومی نداره از hyperlink استفاده کنی. می تونی با یک کد ساده مثل :
DoCmd.OpenForm "form.name"
این کار رو انجام بدی. اگر هم می خوای به یک برنامه در خارج از محیط اکسس لینک بدی کافیه توی همون جدول آدرس محل مورد نظرت رو بنویسی. البته می تونی اون فیلد رو در فرم بذاری که کاربرت هم بتونه توش دیتا بزنه و یا تغییر بده و اگه بخوای صرفا ببینه میشه فیلد رو قفل کرد که نتونه دست کاریش کنه.
امیدوارم برداشتم از سوال درست بوده باشه و جوابم هم به دردت بخوره

انگوران
شنبه 31 شهریور 1386, 11:20 صبح
فکر می کنم منظور دستمون این باشه که دو تا فرم تو یه فیلدی مشترکن مثلا" شماره پرسنلی و زمانی که فرم دوم با دستوری که دوستمون فرمودن باز شد اطلاعات خاص رکورد جاری رو تو فرم دوم بیاره اگه اینه بفرمائید یا نمونه بذارین تا درستش کنیم .

lililili
شنبه 31 شهریور 1386, 11:39 صبح
ممنونم

من 3 Table دارم و 3 فرم که بر اساس آن 3 table می باشد

فرم اول و دوم به صورت design طراحی شده خودم طراحی کردم

و فرم سوم tabular می باشد که مثلا اگر فیلد num پر شده باشد کاربر روی آن کلیک کند فرم شماره 1و 2 به صورت همزمان باز شود .

و در ضمن این کد باید در کجا نوشته شود event مربوط به فرمم یا آن textbox م ؟؟؟
ممنونم

mmha_85
شنبه 31 شهریور 1386, 11:49 صبح
شما می تونین با نوشتن کدی که بهش اشاره کردم، فرمتون رو باز کنین. بدون نیاز به hyperlink. با توجه به اینکه شما می خواین با کلیک بر روی فیلدتون این 2 تا فرم باز بشه، پس قاعدتا باید روی event مربوط به Text box کد بنویسین.
البته همونطور که دوستمون گفتن اگه نمونه بذارین، خیلی راحت تر میشه مشکل رو حل کرد.

saeed razaee
شنبه 31 شهریور 1386, 12:02 عصر
با سلام
من فکر می کنم اصلا hyperlink ربطی به موضوع نداره و کاربرد hyperlink جائی دیگر است بهتر است در مورد hyperlink بیشتر مطالعه نمائید.

lililili
شنبه 31 شهریور 1386, 12:06 عصر
من نمی توانم برنامه را ضمیمه کنم چون هم سیستمم آنتی ویروس ندارد وهم سیستمم ویروس دارد(محل کارم) در ضمن دسترسی ندارم که فایلی را downloade یا uploade کنم .:ناراحت:

mmha_85
شنبه 31 شهریور 1386, 12:16 عصر
با توجه به بحثی که صورت گرفت، اگه باز هم مشکل حل نشده، اون رو مطرح کنین. میشه با کمک دوستان حلش کرد.

lililili
شنبه 31 شهریور 1386, 12:30 عصر
ممنونم از شما . بنده این کد را ... انجام دادم ولی error زیر را می دهد در رویداد onclicke مربوط به textboxam آن را وارد نمودم

Run-time error '2102':
The form name 'form_search' is misspelled or refers to a form that doesn't exist.

mmha_85
شنبه 31 شهریور 1386, 12:35 عصر
DoCmd.OpenForm "form.name"
در این کد بجای قسمت form.name باید اسم فرمتون رو بنویسید. با توجه به Error که بهش اشاره کردین، ظاهرا اسم فرم به صورت درست نوشته نشده. چون برنامه نتونسته فرمی که بهش اشاره کردین رو پیدا کنه
در ضمن پیشنهاد می کنم روی رویداد onclick این کد رو ننویسین و اون رو روی on dblclick بنویسین. چون در رویداد onclick کاربر به محض اینکه بر روی فیلد مورد نظر کلیک می کنه، اون فرم های مورد نظرتون باز میشن و باعث میشه که کاربر نتونه روی اون فیلد کلیک بکنه. اما اگر دبل کلیک باشه کاربر خیلی راحت می تونه فیلد مورد نظرش رو انتخاب کنه.

lililili
شنبه 31 شهریور 1386, 13:34 عصر
بله انجام شد طبق گفته شما عمل کردم و درست شد ممنونم از لطفتون

حالا باید چکار کنم که وقتی کاربر در textbox مربوطه عدد 1 را وارد کرد و روی آن dbl click کرد دقیقا همان فرم شماره 1 بیاید الان فقط یک فرم باز می کند

آیا باید در relationha یم تغییری ایجاد کنم ؟
در ضمن relation های من در عکس ضمیمه می باشد .

آیا درست می باشد؟

mmha_85
شنبه 31 شهریور 1386, 13:57 عصر
شما می تونین این محدودیت رو با کد نویسی حل کنید. بدین صورت

Me.Refresh
If Me.textname = 1 Then
DoCmd.OpenForm "FormName1"
ElseIf Me.textname = 2 Then
DoCmd.OpenForm "FormName2"
End If

که جای FormName اسم فرمتون رو می تونین بذارین. یعنی اگر مقدار فیلدتون 1 باشه فرم 1 باز میشه و اگه مقدار فیلدتون 2 باشه فرم 2 باز میشه.

lililili
شنبه 31 شهریور 1386, 13:59 عصر
نه از این روش نمی توانم استفاده کنم چون من به تعداد n شماره فرم دارم .یعنی این تعداد باید کد بزنم ؟؟؟؟؟؟

mmha_85
شنبه 31 شهریور 1386, 14:09 عصر
می تونین بر روی text box مورد نظرتون اسم فرم رو وارد کنین و از این کد استفاده کنین

Me.Refresh
DoCmd.OpenForm (Me.TextBoxName)

یعنی با دبل کلیک بر روی این Text box تنها فرمی باز میشه که اسمش در درون Text box قرار گرفته و دیگه نیازی نیست که برای تک تک فرم ها کد بنویسید.

lililili
شنبه 31 شهریور 1386, 14:32 عصر
سلام
فکر کنم منظورم را خوب بیان نکردم

همانطور که در عکس ضمیمه ملاحظه می فرمایید ...

مثلا وقتی کاربر روی حرف C در ردیف اول و یا A کلیک کرد فرمی با شماره 1 و Tag No یا همان شماره دستگاه frc
103a باز شود .



ممنونم

lililili
یک شنبه 01 مهر 1386, 08:08 صبح
سلام

آیا این برنامه شامل بحث INDEX گذاری می شود ؟؟ چون باید این قابلیت را داشته باشد که همزمان اگر کاربر خواست C ویا اگر خواست A را فشار دهد تا فرم مربوطه باز شود .