PDA

View Full Version : ايجاد سطر درج در كوئري هاي access كه جدول هاي آن به sql لينك شده اند



parneian
دوشنبه 09 اسفند 1389, 11:05 صبح
سيستمي در اكسس طراحي كردم كه در آن جدول هاي اكسس به Sql server لينك مي باشند ولي وقتي در اكسس كوئري طراحي ميكنم كه در آن جدول ها فقط بايد از طريق فيلدهاي غير كليدشان با هم ارتباط برقرار كنند سطر آخر در كوئري كه همان سطر درج در كوئري كه به منظور اضافه شدن ركورد جديد در كوئري مي باشد ايجاد نمي شود براي ايجاد اين سطر چكار بايد كرد. لطفا مرا راهنمايي نمائيد

stabesh
دوشنبه 09 اسفند 1389, 16:53 عصر
با سلام
فکر میکنم چه جدولها در اکسس باشه چه لینک باشه فرقی نکنه اگر میخواهید آن سطر وجود داشته باشه حتما کلید ها باید در کوئری انتخاب شوند مگر اینکه autonumber باشند چون نمیشه که کلید مقدارش null باشه

payman_xxp
دوشنبه 09 اسفند 1389, 19:54 عصر
سيستمي در اكسس طراحي كردم كه در آن جدول هاي اكسس به Sql server لينك مي باشند ولي وقتي در اكسس كوئري طراحي ميكنم كه در آن جدول ها فقط بايد از طريق فيلدهاي غير كليدشان با هم ارتباط برقرار كنند سطر آخر در كوئري كه همان سطر درج در كوئري كه به منظور اضافه شدن ركورد جديد در كوئري مي باشد ايجاد نمي شود براي ايجاد اين سطر چكار بايد كرد. لطفا مرا راهنمايي نمائيد

سلام
همونطور که میدونید کوئری چه در SQL و چه در ACCESS وچه در ORACLE و... ابزاریه برای ایجاد پرس و جو، و بعدش انجام تغییرات روی تیبل(insert update delete).
اگر کوئری شما فقط مربوط به یک تیبل باشه مجوز درج رکورد جدید رو دارید، البته به شرطی که هیچ عمل محاسباتی روی هیچ فیلدی انجام نشه(aggregate function)
ولی اگر کوئری شما ارتباطی بین 2 یا بیش از 2 تیبل باشه، دیگه این اجازه از شما سلب میشه.
فکر میکنم باید یه فرم طراحی کنید و تمام فیلدهای تیبلهای مورد نظر رو اضافه کنید و از کوئری اینزرت اقدام به ثبت اطلاعات با کدنویسی کنید.
موفق باشید

Zero Defect
دوشنبه 09 اسفند 1389, 22:24 عصر
سلام

دوست من parneian , عملیات مورد نظر شما ممکنه با اعمال تغییراتی و با توجه به نوع داده های دو سوی اتصال امکان پذیر باشه
شما میتونید با شاخص گذاری دو سوی ارتباط , این کار رو به انجام برسونید , در صورتی که امکان شاخص گذاری براتون وجود نداره , انجام عملیات مورد نظرتون هم امکان پذیر نیست

ممکنه اطلاعات دو سوی ارتباط به گونه ای باشند که برای شما امکان شاخص گذاری ( Indexing ) وجود نداشته باشه در اون حالت همونطوری که گفته شد شما نمیتونید اقدام به درج اطلاعات جدید از طریق واسط Query کنید

البته نظر دهی قطعی منوط میشه به دیدن جداول مورد نظر وگرنه بدون دیدن تنها در حد تئوری هستش , چه امکان پذیر بودنش و چه غیر ممکن بودن اون
...........................

payman_xxp گرامی


اگر کوئری شما فقط مربوط به یک تیبل باشه مجوز درج رکرود جدید رو دارید، البته به شرطی که هیچ عمل محاسباتی روی هیچ فیلدی انجام نشه(aggregate function)
ولی اگر کوئری شما ارتباطی بین 2 یا بیش از 2 تیبل باشه، دیگه این اجازه از شما صلب میشه.

تصور میکنم احتیاج به تصحیح داشته باشند دوست من , چون که با شرایط مد نظر اجازه ها سلب نمیشن

...........................

دوست من stabesh

کلمه کلید غالبا , Primary Key رو در ذهن تداعی میکنه و بر همین اساس


فکر میکنم چه جدولها در اکسس باشه چه لینک باشه فرقی نکنه اگر میخواهید آن سطر وجود داشته باشه حتما کلید ها باید در کوئری انتخاب شوند ....

این جمله نمیتونه در تمامی حالات درست باشه

شما میتونید با فراخوانی فیلدهایی از جداول که Index گذاری شدند ( و الزاما در هر دو جدول به عنوان کلید هم نیستند ) به هدف خودتون برسید ( این دوستمون هم در سئوالشون به همین نکته اشاره کردن که فیلدهای دو سوی ارتباط غیر کلیدی هستند )
فرضا شما در داخل همون اکسس میتونید با شاخص گذاری و تنظیم بر روی Duplicates Ok و No Duplicates به فراخور و با توجه به ماهیت اطلاعات , خلا موجود رو پر کنید

...............

همگی موفق باشید

payman_xxp
سه شنبه 10 اسفند 1389, 00:05 صبح
سلام
پست 3# (http://barnamenevis.org/showthread.php?276628-%D8%A7%D9%8A%D8%AC%D8%A7%D8%AF-%D8%B3%D8%B7%D8%B1-%D8%AF%D8%B1%D8%AC-%D8%AF%D8%B1-%D9%83%D9%88%D8%A6%D8%B1%D9%8A-%D9%87%D8%A7%D9%8A-access-%D9%83%D9%87-%D8%AC%D8%AF%D9%88%D9%84-%D9%87%D8%A7%D9%8A-%D8%A2%D9%86-%D8%A8%D9%87-sql-%D9%84%D9%8A%D9%86%D9%83-%D8%B4%D8%AF%D9%87-%D8%A7%D9%86%D8%AF&p=1221558&viewfull=1#post1221558) اصلاح شد.
جناب Zero Defect
ممنون میشم دوست من ، اگه میشه نمونه ای ارائه کنید که با وجود عرایض بنده "اگر کوئری شما ارتباطی بین 2 یا بیش از 2 تیبل باشه، دیگه این اجازه از شما سلب میشه." این اجازه از کاربر سلب نشه.
موفق باشید.

Zero Defect
سه شنبه 10 اسفند 1389, 06:29 صبح
سلام payman_xxp

یک تصویر نمونه برای شما قرار میدم

به اندازه کافی گویا هست

ولی در جوابیه های مجزایی که برای شما سه دوست گرامی نوشتم , هر سه اون جوابیه ها تفکیک شده هستند ونباید خلط مطلب به وجود بیاد البته اگر با دقت مطالعه شده باشند

موفق باشید

payman_xxp
سه شنبه 10 اسفند 1389, 09:21 صبح
سلام payman_xxp

یک تصویر نمونه برای شما قرار میدم

به اندازه کافی گویا هست

ولی در جوابیه های مجزایی که برای شما سه دوست گرامی نوشتم , هر سه اون جوابیه ها تفکیک شده هستند ونباید خلط مطلب به وجود بیاد البته اگر با دقت مطالعه شده باشند

موفق باشید

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

stabesh
سه شنبه 10 اسفند 1389, 11:01 صبح
با سلام
فکر کنم فیلدهای id آقای zero defect از نوع autonumber بوده باشه در ضمن id2 ایشون کلید اصلی نیست
یک مورد دیگه که از قلم افتاده فیلدهایی که اجازه نداریم مقدار null براشون منظور کنیم غیر کلیدها رو میگم این فیلدهارو اگه در کوئری انتخاب نکرده باشیم با اینکه شاید حتی سطر درج وجود داشته باشه اما موقع درج کردن error میده
ولی در مورد اینکه کلید اصلی غیر autonumber باشه و در کوئری نباشه امکان درج وجود داشته باشه شک دارم
البته فرض من اینه که یک جدول حتما یک کلید اصلی داره شاید منظور شما برای جداولی باشه که کلید اصلی ندارند که البته کاربردش رو نمیدونم
ولی میدونم که اگه برای یک فیلد ایندکس گذاشته بشه و اجازه ورود مقدار تکراری هم داده نشه اون فیلد یک کلید کاندید برای کلید اصلی و اگر جدول کلید اصلی نداشته باشه باید اون کلید اصلی باشه اینایی که گفتم از درس پایگاه یادم بود
اشتباه میکنم یا نه
با تشکر

Zero Defect
سه شنبه 10 اسفند 1389, 17:18 عصر
سلام payman_xxp

فرمودید :


پست 3# اصلاح شد

صبح در حال خوندن دنیای اقتصاد بودم و دقت نکردم که چه چیزی رو اصلاح فرمودید !

الان که دقت کردم متوجه شدم که , شوخیهای بی نمکی بود , امیدوارم از این نوع شوخیها فاصله کافی بگیرید چون زیاد با شوخی میانه خوبی ندارم

تصویر درج شده شما هم برای بنده ارزش بررسی نداره , چرا که اولا شما باید به این مرحله برسید که به تعبیر خودتون فوت کوزه گری در انتخاب نام فیلدها و جداول نیست تا بعد به مابقی موارد هم برسیم ( هنوز هم متوجه نمیشم چرا جتی نام جداول , فیلدهاو اطلاعات ورودیتون رو همنام مثال بنده قرار دادید , این کارتون بیشتر شبیه به نقش یک کاتالیزور برای تبدیل شدن یک گفتگو به بحث هستش )

فوت کوز گری ( به تعبیر شما ) , مخفی نبود که حالا بخوام مجددا اون رو برای شما توضیح بدم , در همون پست اولم کاملا به اون اشاره کردم , نیازی به تکرار مجدد اون در قالب یک پاسخ جدید احساس نمیشه , چرا که از شواهد پیداست شما به متون حساسیت کافی ندارید که اگر داشتید در همون چند خط ابتدایی پاسخ اول , توضیح داده شده بود

دوست گرامی - لطفا بحث رو در همین جا قطع کنید چرا که نه اینجا جلسه املا هستش که شما بخواید توی اون "صلب" رو به "سلب" تصحیح کنید و نه بنده حوصله این رو دارم که به شما در جهت شوخیهای بی نمک , خط بدم

اگر تصور شما از درخواست بنده جهت تصحیح , در همون حد و حدود غلط املایی هستش , ترجیح میدم شما رو با همین تصورات تنها بذارم چرا که , مطمئن باش درک و شعورم بیشتر از این بود که غلط املایی از مطالب شما گرفته باشم که اگر این بود , بنده خودم بی اشکال نیستم

موفق باشید

........................

دوست من Stabesh

سلام


فکر کنم فیلدهای id آقای zero defect از نوع autonumber بوده باشه در ضمن id2 ایشون کلید اصلی نیست

اگر در گذشته مرور کرده باشید , به قطع در کلیه مثالها , کلیه اسامی , اسامی معنی داری بودن که توی مثالها استفاده کردم
از ظاهر پیداست , این مثال رو همینجوری ایجاد کردم و حتی نوع فیلد ها رو از نوع پیش گزیده Text با طول 255 ( یعنی پیش گزیده اکسس ) تغییر ندادم ( به همون دلیلی که عرض کردم : خوندن روزنامه دنیای اقتصاد (http://donya-e-eqtesad.com/) )

پس اطمینان داشته باشید که نوع داده , اصلا دخیل نبود , عرض کردم که بر روی Index گذاری تمرکز شده بود

در خصوص مابقی مواردتون هم , خیر اشتباه نمی فرمایید ولی خوب , چندان ارتباطی هم با پاسخ سئوال مد نظر نداره

.........................

همگی موفق باشید

payman_xxp
سه شنبه 10 اسفند 1389, 22:18 عصر
سلام
اول از همه به شخصه از دوستی که تاپیک رو ایجاد کردن parneian عذرخواهی میکنم که تاپیک ایشون شده محلی برای سفسته بعضیا که بیان نمیدونم حالا از بیکاری یا از سر اوقات فراغت از دنیای اقتصاد تشریف میارن یه نظری هم اینجا میپرونن و نظر میدن بالای 400 کلمه در هر پست، به چه قصد و منظوری نمیدونم.

دوست عزیز Zero Defect
از اینکه می بینید مثالتون عینا( نه فقط اسامی بلکه محتویات)، فقط از روی یک عکس ساخته شده اینقدر ..... کردید یا آرتون میاد به یه آدم بیسواد ( خودمو عرض میکنم) 2تا کلمه چیز یاد بدید.

بله دوست من، خودم خوندم توی فرمایشاتتون گفتید نمیشه "امکان شاخص گذاری ( Indexing ) وجود نداشته باشه در اون حالت همونطوری که گفته شد شما نمیتونید اقدام به درج اطلاعات جدید از طریق واسط Query کنید"، ولی بعدش اومدین مثالی زدید( عکس) که با پیاده سازیش دیدم نمیشه، عین مثالتونو درست کردم که بعدا نگید اگه اینجا اینکارو میکردی ال میشد بل میشد.
نمیشه بگو نمیشه عزیزه دل برادر، دیگه انشا و زمین و زمان و بهم دوختن نداره که.
محفل علمیه کاربر محترم، لطفا با دلیل ، برهان و یا نمونه وارد شوید.
لبخند و روی خوش یادتون نره.

موفق باشید.(تازه 200 تارو پرکرد)