PDA

View Full Version : ارتباط و دستورات sql



powerboy2988
دوشنبه 17 دی 1386, 13:12 عصر
سلام
من یه پایگاه داده درست کردم تو access که توش چند تا فرم دارم که مثلا اسمش فرم پرسنل. تو این فرم 3 تا از فیلدام به اسم id , name , family هستش. من فرم های دیگه ای هم ایجاد کردم که بقیه هم دارای چندتا فیلد هستن که 3تا فیلد از آنها همین 3تا فیلد id , name, family هستش. ارتباط بین جدول ها یه این صورت هستش که همه جدول ها اون 3تا فیلدشون ارتباط دارن با 3تا فیلد فرم پرسنل.
حالا کاری که من می خوام انجام بدم اینکه وقتی فرم پرسنل رو باز کردم و توش یه دکمه قرار دادم که وقتی کلیک می کنم روش مثلا فرم شماره 4 رو باز می کنه من می خوام وقتی فرم شماره 4 باز شد بیاد بر اساس 3تا فیلدی که دربالا معرفی کردم 3تا فیلد id, name, family خودشو رو برابر با 3تا فیلد id, name , family فرم پرسنل قرار بده و بر این اساس یه سرچ کنه و بقیه اطلاعات فرم 4 رو بر همین اساس 3تا فیلد نشون بده

powerboy2988
سه شنبه 18 دی 1386, 13:25 عصر
البته من این کار رو تو access 2007 انجام دادم.

Ali_Fallah
سه شنبه 18 دی 1386, 14:59 عصر
ابتدا بصورت ویزارد دکمه ای روی فرم گذاشته سپس بعد از انتخاب فرم مورد نظر ، بصورت شکل زیر عمل کنید...

powerboy2988
چهارشنبه 19 دی 1386, 08:30 صبح
این کاری نیست که من می خوام
لطفا سوالمو دوباره بخون ، منظورمو اشتباه برداشت کردی

صبا9841
جمعه 21 دی 1386, 07:55 صبح
فقط کافیه یکی از فیلدها را مثلا id را لینک کنی و بعدبا این کد معرفیش کنی


stLinkCriteria = "[fild]=" & "'" & Me![Text] & "'"l

powerboy2988
جمعه 21 دی 1386, 08:19 صبح
تو access 2007 نمی دونم چرا نمیشه برنامه نویسی کرد. همش باید از ماکرو استفاده کنی. این کار رو هم تست کردم جواب نداد. در ضمن من 3 تا مشخصه دارم

صبا9841
شنبه 22 دی 1386, 18:01 عصر
فایل نمونه ای بگذار تا جواب بگیری.

powerboy2988
سه شنبه 25 دی 1386, 23:08 عصر
من دوباره همون کاری رو که آقای فلاح گفت تست کردم جواب گرفتم البته تو access 2003 ، نمی دونم چرا تو access 2007 کار نمی کنه . دلیلش چی می تونه باشه؟

مهدی قربانی
چهارشنبه 26 دی 1386, 00:20 صبح
تو access 2007 نمی دونم چرا نمیشه برنامه نویسی کرد. همش باید از ماکرو استفاده کنی. این کار رو هم تست کردم جواب نداد. در ضمن من 3 تا مشخصه دارم
سلام
متاسفانه نمی دونم چرا ویزارد در 2007 بجای کد نویسی از Embedded Macro استفاده می کنه البته دارم دنبال علتش می گردم ببینم چیه ولی شما می تونید از طریق Office Button و Access Option بعد در قسمت Popular ورژن 2000 یا 2003-2002 رو از کامبو Default file format انتخاب کنید تا ضمن استفاده از اکسس 2007 بتونید از ویزارد VBA‌ استفاده کنید .

powerboy2988
چهارشنبه 26 دی 1386, 09:20 صبح
دیشب مشکل شو فهمیدم کجاست. این آفیسی که من ریخم از تو cd king بود ‏‌‏‏‏‏‏‏آفیسش کرکش شده بود واسه همین نمی شه توش کد نویسی کرد ‏. رفتم DVD آفیس رو گرفتم برنامه کار کرد!!

powerboy2988
پنج شنبه 27 دی 1386, 10:21 صبح
سلام
متاسفانه نمی دونم چرا ویزارد در 2007 بجای کد نویسی از Embedded Macro استفاده می کنه البته دارم دنبال علتش می گردم ببینم چیه ولی شما می تونید از طریق Office Button و Access Option بعد در قسمت Popular ورژن 2000 یا 2003-2002 رو از کامبو Default file format انتخاب کنید تا ضمن استفاده از اکسس 2007 بتونید از ویزارد VBA‌ استفاده کنید .

من این کار رو انجام دادم ولی جواب نداد!!

مهدی قربانی
پنج شنبه 27 دی 1386, 11:27 صبح
سلام
بله حق با شماست البته باید یه کار دیگه هم بکنید ، برای ایجاد فایل جدید شما اکسس رو باز کنید بعد در سمت راست پنجره اون کلید انتخاب مسیر رو کلیک کنید ضمن تعیین آدرس از کامبو Save As Type فرمت 2003-2002 رو انتخاب کنید بعد از این مراحل در بالای پنجره آیکون new رو کلیک کنید . حالا شما یک دیتابیس با فرمت 2003-2002 دارید . اگر موفق نشدید بفرمائید تا بیشتر راهنمایی کنم .

powerboy2988
پنج شنبه 27 دی 1386, 12:00 عصر
همه کاریو انجام دادم . کد رو قبول نمی کنه

powerboy2988
یک شنبه 30 دی 1386, 09:49 صبح
حالا من همین کا رو تو access 2003 انجام می دم کار می کنه ‏وقتی تو database خودم که درستش کردم از این دستورات استفاده کردم ازش error می گیره و فرم رو باز نمی کنه. یه نمونه از برنامه رو می زارم ببینید مشکلش از کجاست.

مهدی قربانی
یک شنبه 30 دی 1386, 11:09 صبح
سلام
می تونید اون نمونه ای که با 2007 ساختید رو مثل نمونه بالا اینجا بذارید .

powerboy2988
یک شنبه 30 دی 1386, 11:12 صبح
من از 2007 به 2003 , switch کردم. یه نمونه دیگه می زارم که کار می کنه. مخم دیگه کار نمی کنه :گیج::گیج:

powerboy2988
یک شنبه 30 دی 1386, 12:26 عصر
مشکلو حل کردم.
مشکلم اینجا بود که در فرم family من 2تا فیلد نام و نا خانوادگی رو lookup wizard گرفتم از فرم پرسنل واسه همین از نوع number می ساخت در حالی که من به عنوان ورودی بهش text می دادم سره همین مشکل داشت!!!

powerboy2988
یک شنبه 30 دی 1386, 16:18 عصر
خب حالا اگه بخوام بر اساس 2 تا فیلد برام جستجو کنه چیکار کنم؟
البته از این دستور استفاده کردم ولی جواب نداد!


On Error GoTo Err_Command96_Click

Dim stDocName As String
Dim stLinkCriteria, stLinkCriteria2 As String

stDocName = "Form Family"

stLinkCriteria = "[n1]=" & "'" & Me![name] & "'"
stLinkCriteria2 = "[f1]=" & "'" & Me![family] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria
DoCmd.OpenForm stDocName, , , stLinkCriteria2

Exit_Command96_Click:
Exit Sub

Err_Command96_Click:
MsgBox Err.Description
Resume Exit_Command96_Click
البته فقط بر اساس stLinkCriteria2 عمل جستجو رو انجام می ده

powerboy2988
یک شنبه 30 دی 1386, 16:27 عصر
من این رو به این صورت تحلیل می کنم که اول میاد بر اساس stLinkCriteria عمل سرچ رو انجام میده و سپس از داده هایی که stLinkCriteria به وجود آورده میاد بر اساس stLinkCriteria2 سرچ می کنه
درسته ؟

powerboy2988
یک شنبه 30 دی 1386, 18:04 عصر
چی جوری میشه 2تا stLinkCriteria رو با هم and یا or کرد؟

Ali_Fallah
یک شنبه 30 دی 1386, 19:49 عصر
به نظر من
VB اکسس 2007 بصورت پیش فرض غیر فعال بوده (شاید بخاطر امنیتی) بنابراین تمامی فرمها و... محاسبات بدرستی عمل نمیکنند یا بهتر بگویم اصلاً عمل نمیکنند بنابراین انتخاب دکمه و نوشتن کد یا استفاده از ویزارد امری بیهوده است .
متاسفانه چون بنده در سیستمم آفیس 2007 ندارم خیلی نمیتوانم راهنمائی کنم ولی این را میدانم که در قسمت Option گزینه ای در قسمت(فکر کنم) امنیتی دارد که بایستی تیک زده و آنرا فعال کنید با فعال شدن آن تمامی کدها عمل میکنند...

powerboy2988
دوشنبه 01 بهمن 1386, 09:04 صبح
به نظر من
VB اکسس 2007 بصورت پیش فرض غیر فعال بوده (شاید بخاطر امنیتی) بنابراین تمامی فرمها و... محاسبات بدرستی عمل نمیکنند یا بهتر بگویم اصلاً عمل نمیکنند بنابراین انتخاب دکمه و نوشتن کد یا استفاده از ویزارد امری بیهوده است .
متاسفانه چون بنده در سیستمم آفیس 2007 ندارم خیلی نمیتوانم راهنمائی کنم ولی این را میدانم که در قسمت Option گزینه ای در قسمت(فکر کنم) امنیتی دارد که بایستی تیک زده و آنرا فعال کنید با فعال شدن آن تمامی کدها عمل میکنند...

بله همچین کاری رو تست کردم ولی جواب نداد.

مهدی قربانی
دوشنبه 01 بهمن 1386, 09:34 صبح
دوست عزیز من الان به 2007 دسترسی ندارم شب یه نمونه ای که با ویزارد کد ساخته شده باشه براتون آپ می کنم تا برسی کنید .

powerboy2988
دوشنبه 01 بهمن 1386, 10:23 صبح
اگه پست قبلی ها رو خونده باشید گفتم که من switch کردم تو 2003 حالا تنها مشکلی که دارم اینکه می خوام تو کد زیر 2تا stLinkCriteria رو با هم and یا or کنه!


On Error GoTo Err_Command96_Click

Dim stDocName As String
Dim stLinkCriteria, stLinkCriteria2 As String

stDocName = "Form Family"

stLinkCriteria = "[n1]=" & "'" & Me![name] & "'"
stLinkCriteria2 = "[f1]=" & "'" & Me![family] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria
DoCmd.OpenForm stDocName, , , stLinkCriteria2

Exit_Command96_Click:
Exit Sub

Err_Command96_Click:
MsgBox Err.Description
Resume Exit_Command96_Click

powerboy2988
سه شنبه 02 بهمن 1386, 10:41 صبح
کسی نیست یه راه حلی بده!!!