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

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

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

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

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

اصلاح دیزاین جدول در اکسس یا اصلاح فیلد تایپ



ALTER TABLE : 


Modifies the design of a table after it has been created with the CREATE TABLE statement.


دیزاین یک جدول ایجاد شده با CREATE TABLE را تغییر می دهد . ALTER COLUMN نیز برای اصلاح دیتا تایپ فیلد استفاده می شود. ( در نمای SQL )



ALTER TABLE table {ADD {COLUMN field type[(size)] [NOT NULL] [CONSTRAINT index] | ALTER COLUMN field type[(size)] | CONSTRAINT multifieldindex} | DROP {COLUMN field I CONSTRAINT indexname} }


DROP هم برای حذف ستون یا فیلد مورد نظر استفاده میشه ، حذف فیلد یا ستون با دیتا تایپ AutoNumber باعث خطا می شود ( برای حذف این ستون  می بایست اول دیتا تایپ را تغییر دهید مثلا به Number یا Text ، اگر Primary Key دارد آنهم بایستی برداشته شود و بعد Drop Column yourfield   استفاده شود )


ALERT نام جدول DROP COLUMN نام فیلد


برای اضافه یا اصلاح فیلد نوع یا تیپ AutoNumber در اکسس از Counter استفاده بنمائید.(دوپارامتر دارد اولی از چه عددی شروع شود و دومی چند تا چند تا)


برای Reset شماره های AutoNumber  زمانیکه یکسری اعداد بخاطر حذف رکوردهایی lost شده می توان با همان Alter Column دیتا تایپ را به Number تغییر داد و سپس دوباره آنرا با Counter ، دیتا تایپ AutoNumber کنید میشه ؟!!!  خیر امکانپذیر نیست


در Vba متد خاصی برای  اصلاح دیتا تایپ فیلد وجود ندارد کاری که می کنید این است : با CreateField یک فیلد جدید بسازید بعد با UpdateQuery مقادیر را به آن انتقال دهید ( Set NewField=OlfField )  سپس فیلد قدیمی (  OldField )  را حذف  و شئ TableDef را Refresh کنید. ( حتما برای تنظیم اشیاء و کاربردشون از Set استفاده کنید چون باید متغیر تعریفی مثل tdf  به کالکشن TableDefs متصل و بتواند از متدها و ویژگیهای آن بهره ببرد ) اگر از Set استفاده نکنید مطمئنا پیام خطائی صادر و از ادامه کار جلوگیری می کند.



نحوه اجرای دستورات Sql هم با RunSql یا از کالکشن دیتابیس متد Execute . لینک database-execute



The Microsoft Access database engine does not support the use of CREATE TABLE, or any of the DDL statements, with non-Microsoft Access database engine databases. Use the DAO Create methods instead.


موتور دیتابیس اکسس استفاده از Create Table یا هر یک از عبارات Data Definition Language ( DDL ) را با دیتابیس  های موتور دیتابیس غیر اکسس پشتیبانی نمی کند.به جای آن از روش های Dao Create بهره ببرید.


In the context of SQLdata definition or data description language (DDL) is a syntax for creating and modifying database objects such as tables,


در مفاد SQL یا Structural Query Language ، این DDL یک علم نوشتاری است برای ایجاد یا اصلاح اشیاء پایگاه داده مثل جداول 



Dim tdf As Dao.TableDef

Dim fld As Dao.Field

Dim prp As Dao.Property ( no use properties to ger property name )


ایجاد یک کوئری موقت با یک رشته به طول صفر و اجرای یک  Sql که تهیه کردید

Set tdf=CurrentDb.CreateQueryDef("")

StrSQL="Select Distinct id,desc from table1"

Docmd.RunSql StrSQL


Docmd.OpenQeury QueryName


This method is only available in the Access database environment. See the OpenView or OpenStoredProcedure methods if you are using the Access Project environment (.adp).


متد بالا برای باز کردن کوئری فقط در محیط پایگاه داده اکسس است ،  متد OpenView یا OpenStore را مشاهده کنید چنانچه از محیط پروژه اکسس با پسوند adp استفاده می کنید.


-------------------------

For Each fld In tdf.Fields

For Each prp in fld.Properties

-------------------------


Data Access Objects (DAO) enable you to manipulate the structure of your database 


DAO دسترسی شما به دستکاری ساختار پایگاه داده را فراهم می سازد.



Databases in Access are composed of four objects: tables, queries, forms, and reports. Together, these objects allow you to enter, store, analyze, and compile your data however you want

پایگاه های داده در اکسس از چهار شئ تشکیل شده : جداول ، پرس و جو ها ، فرم و گزارشات . این اشیاء با هم به شما اجازه می دهند تا داده های خود را هر طور که می خواهید وارد ، ذخیره ، تجزیه و تحلیل و جمع آوری کنید.


access.accessobject


Because an AccessObject object corresponds to an existing object, you can't create new AccessObject objects or delete existing ones. To refer to an AccessObject object in a collection by its ordinal number or by its Name property setting, use any of the following syntax forms:

  • AllForms (0)
  • AllForms ("name")
  • AllForms ![ name ]


بخاطر اینکه شئ AccessObject متعلق است به یک شئ موجود لذا نمی توان شئ های AccessObject جدید ساخت یا آنرا حذف کرد.برای ارجاع به یک شئ AccessObject در یک مجموعه با شماره ترتیبی  یا تنظیم ویژگی Name  خودش  از شکل های نوشتاری که در بالا اشاره شد استفاده شود.


مطالب بر اساس آنچه جستجو و به این بلاگ ختم شده بیان خواهد شد 



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