کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

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

کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

به اشتراک گذاری اطلاعات کسب شده در اکسس از سایت آفیس و سایت های تخصصی خارجی

Run time error یا خطای حین اجرا در اکسس ( نکات محدودیتی اکسس )


خطاهای زیادی وجود دارد ولی متداول ترینش ذکر شده و بسیار است در صورت تجربه خطاهای دیگر با ذکر مثال و رفعش در زیر مطلب نظر کامنت بگذارید.


Error 7961

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


Erro 3021 : No Current Record

عملی انجام می دهید روی جدولی که رکوردی ندارد دوست من انجام نده ، Recordset خالیه بعد از متد Edit استفاده میکنی ؟ باید از AddNew بهره ببری عَزیزُم.


برای دستکاری داده در رکوردست حتما باید Parent را در حال ویرایش قرار داد وگرنه خطا می دهد و م تد Update را هم باید بکار ببرید.حتما رکوردست را ببندید و از حافظه موقت خالی کنید چون باز باشد فضای  اضافی اشغال می کند.


Error 2059

آبجکت یا شئ ایجاد شده ،  یا وجود خارجی ندارد یا باید نامش را چک کنید که موجود باشد در ضمن صد بار گفتم اسم جداول ، فرم ها که آبجکت هستند رو فارسی ننویسید !!! بین نام هاتون Space نگذارید یا آندرلاین بهشون بدید یا زمان فراخوانیشون داخل براکت بگذارید.


Error 2110

کنترل مورد نظر فوکس نمی گیره مثل label پس سعی بیهوده به خرج ندهید.


Error 2113

اشتباه در ورودی دیتا تایپ مثلا دیتا تایپ عددیه شما تکست میخواهید وارد کنید یا پارامتر عددی شما علاقه دارید متنی مقدار بدید یا اندازش بیشتر از میزان مجازه . خب نکن برادر من چه کاریه هر چی یه قانونی داره!


Error 2136

یکسری ویژگیهای یک کنترل همانطور که گفته شد در نمای دیزاین اون آبجکت مثل فرم یا گزارش قابل تنظیمه و نمی تونید مستقیما در نمای فرم ویو تغییر بدید پس وقتی در نمای دیزاین قابل تنظیمه شما اگر فایل رو accde بکنید در نتیجه دسترسی به محیط دیزاین یا رفتن بهش رو ندارید چون قفله و در آخر اون ویژگیتون هم توسط کد وی بی می خواد انجام بشه ولی متاسفانه راه نیمیده !!!


Error 2147

ساخت یا حذف کنترل ها در نمای دیزاین صورت می گیره پس در نمای فرم ویو شما نمی توانید با CreateControl کار کنید و اگر فایل به accde تبدیل شه به بن بست خواهید خورد چون نمای دیزاین بسته خواهد شد.


Error 2164

نمی توان کنترلی که فوکس دارد را غیر فعال کرد


Error 2165

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


Error 2166

نمی توان کنترلی که تغییرات ذخیره نشده یا بعبارتی Dirty=True است را قفل کرد منظورم lock است دادا !!!


Error 2167

رکورد در این لحظه قابل ذخیره نیست زمانی اتفاق میوفته که فرد دیگری روی همون رکورد باشه ... چون اکسس قفلش  میکنه .


Error 2197

نمی توان ویژگی SourceObject کنترل سابفرم را به رشته ای با طول صفر تنظیم کرد وقتی در حال مشاهده فرم اصلی هستیم و این ویژگی را نمی توان در نمای دیزاین ، دیتاشیت ویو یا پرینت ویو به رشته ای با طول صفر ("") تنظیم نمود دوستان گلم جزو قوانینشه عزیزان !!!


این ویژگی یعنی SourceObject مال زمانیه که کنترل سابفرم رو از نوع دیتا شیت قرار می دید و در فرم اصلیتون فرضا شروطی دارید و هر کدوم در کوئری جداگانه انجام میشه و میخواهید بعد از اعمال کوئری مربوطه در این سابفرم نمایش داده شه یا ویویی ازش داشته باشید.


Error 3022

زمانیه که شما جدولتون پرایمری کی داره خب معلومه که نباید تکراری بگیره اگه خیلی علاقه دارید به تکرای بودن کلید رو از جدول بردارید.


Error 3122

سعی در اجرای کوئری دارید که دارای Expression مشخص شده ای نیست.



توابع Aggregate محاسباتی روی یک ستون داده انجام میدن و مقداری رو بر می گردونن.اکسس واریانت های مختلفی از این توابع شامل Sum یا Count ارائه می کند.



پس زمانیکه قصد دارید سام یا کانت بگیرید از فیلد یا  فیلدهایی و کل فیلدها قراره نمایش داده شه حتما از group by  استفاده کنید وگرنه با این خطا مواجه می شوید.



Group by [Project Name]



مثال دیگر : 


متن ارور چیه ؟ سعی کردید!!! یک کوئری اجرا کنید که عبارت BalanceDate مشخص شده بعنوان قسمتی از تابع aggregate قرار ندارد.


You tried to execute a query that does not include the specified expression "BalanceDate" as part of an aggregate function. (Error 3122)


SELECT RunningBalance.BalanceDate, Sum(Nz(Transactions!Deposit,0)-Nz(Transactions!Withdrawal,0)) AS DepWith
FROM RunningBalance LEFT JOIN Transactions ON RunningBalance.BalanceDate = Transactions.TransDate
ORDER BY RunningBalance.BalanceDate


برای رفع خطا یک Group By قبل از Order By ( مرتب کردن ) لازم دارد.


در بالا در دل کار گروه بندی وجود داره در فیلدها یعنی تاریخ بالانس مشخصا در رکوردهایی با هم فرق میکنه و یکی نیست پس وقتی Sum می زنید باید اول کوئری گروه بندی شه بر اساس تاریخ بعد برای هر گروه سام بزنه اینهم بخاطر تابع نوشته شدست که کار sum و count یا کلا تابع aggregate اینطوریاس !!! اگه sum نزنید هیچ مشکلی بوجود نمیاد و کل رکوردها رو دارید یا اگر فقط یک فیلد رو Sum بگیرید و فیلدهای  غیر عددی که داده های مختلف داخلش هست در گریدتون تیک show رو بردارید هم خطا نمدید کلی سامش رو براتون میگیره که لذت ببرید تنها در یک رکورد 


حتی ممکنه کوئری های تو در تو بنویسید داخل  یک کوئری  و این خطا رو دریافت کنید چرا چون باز تو یکیشون رعایت نکردید Group By کردنش رو و باید ببینید کدام سلکت کوئری هست که  خلاف تابع aggregate عمل کردید و در نهایت اصلاحش کنید تا کوئریتون اجراشه و خلاص شید 


Error 3127

یه فیلد اشتباهی در inser into قرار دادید یا اینکه موجود نیست البته همون چیزی که نوشتید رو بهتون در خطا میده فرضا

insert into (IDD,Desc) Values (280,'Descript')

بعد کاشف بعمل میاد که فیلد ID در جدول وجود داره نه IDD


Error 3129 ~ 3135

خطای نوشتاریه مثلا در insert into که کوئری اپند است یه کوتیشن کم گذاشتید برای مقادیر متنی ،  یا خطای نوشتاری در From یا join کردن و حتی در Group by یا having دارید یا دستورات و عبارات Sql می نویسید که غیر از update delete ویا select است یا مثلا بعد از From  فاصله نذاشتید یا جابجا در نوشتتون قرارش دادید خب معلومه خطای Syntax یا نوشتاری می گیرید در Dlookup هم همینطوره تقدم و تاخر یا نذاشتن کوتیشن یا نوشتن حرف اضافه غیر از اون فرمی که تعریف شده باعث خطا می شد.


Error 3151

زمانیکه برای اتصال به sql server از ODBC استفاده می کنید و ارتباط با شبکه ای فایل sql srver در اون  قرار داره قطع میشه .


Error 3162

سعی می کنید که یک مقدار Null به متغیری که دیتا تایپش Variant نیست تخصیص دهید.

A Variant can also contain the special values Empty, Error, Nothing, and Null.

Null مقدار ندارد برای اینکه بفهمید ComboBox که Null نمی گیرد Null است یا خیر از تابع IsNull استفاده کنید.


Error  3169

موتور دیتابیس اکسس نمی تواند دستور Sql را اجرا کند بدلیل اینکه حاوی فیلدی است با دیتا تایپ غیرمعتبر. موتور اکسس فقط می تواند عبارات Sql  تعریف شده در DDL را اجرا کند پس سعی نکنید دستورات دیگر Sql Server که در آن موجود نیست را بکار ببرید.


Error 3196

دیتابیس توسط کاربر دیگری در حال استفاده است موقعی که در شبکه Share کردید ولی بصورت Exclusively باز شده .


Error 3197

دو نفر در حال ویرایش یک داده در یک زمان هستند و موتور دیتابیس اکسس این فرآیند را متوقف می کند.


Error 3200

رکورد قابل حذف یا ویرایش نیست بدلیل اینکه جدول رکوردهای مرتبطی دارد.به RelationShip مراجعه کنید.وقتی ارتباط برقرار می کنید تیک هایی داره که وقتی بزنید اگر رکوردی در جدول مادر  حذف شود جدول چایلد نیز متاثر از آن حذف می گردد.

enforce referential integrity



Error 3201

قادر به اضافه یا تغییر رکورد نیستید چرا ؟ چون در جدول فیلدی دارید که ویژگی Required آن Yes است و نباید خالی رها شود عزیزان دل ! 


Error 3270

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


Error 3356

تلاش  دارید دیتابیسی را باز کنید که یوزری در یک ماشین دیگری بصورت اختصاصی یا Exclusively باز کرده باید صبر کنید تا دیتابیس را ببندد.


Error 3360

کوئری خیلی پیچیده شده زمانیکه کوئری های تو در تو می نویسید یا جوین ها درست بهم مرتبط نشدند


Error 3361

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


Error 3368

RelationShip می بایست بر روی همان فیلد با دیتا تایپ یکسان اعمال گردد.وقتی ارور رو دریافت می کنید دیتا تایپ ها رو چک کنید زمانیکه ارتباط بین جداول می سازید که پرایمری کی دارند اتفاق می افتد.


زمانیکه ارتباط برقراز میکنید که یک به بی نهایت شود جدول مادر نباید تکراری داشته باشد وگرنه قانون یکپارچگی رو بهم میزنه و ارتباط ایجاد نمیکنه.


Error 3415

رشته باطول صفر فقط برای فیلد Text یا Memo معتبر است.


Error 3824

کوئری insert into نمی تواند حا ی فیلد Multi-Valued باشد پس نمی توان به فیلدی که چند انتخابی است  مقداری اضافه کرد.حتی در union query هم نمی توان از فیلد Multi-Valued استفاده کرد.


Error 3852

نمی توان MultiValued که رکوردست Parent اَش در حالت ویرایش نیست را Update یا به روز رسانی کرد . برای قرار دادن رکوردست Parent  در حالت ویرایش از متد AddNew یا Edit استفاده کنید.


دوستان هم خطا رو اعلام می کنه و هم راهنمایی


Error 3959

Calculated Columns در عبارات Select Into ( برای انجام Make Table ) مجاز نیستند ! 










لطفا دوستان نظر سنجی فراموش نشود !!! در منوی باز شو موجوده متشکرم.