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

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

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

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

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

Top پراپرتی در Report



For reports, the Top property setting is the amount that the current section is offset from the top of the page. This property setting is expressed in twips. You can use this property to specify how far down the page you want a section to print in the section's Format event 

procedure


مقدار جابجایی سکشن جاری از بالای صفحه را نشان میدهد سکشن میتواند Detail باشد یا Report Footer  و  به twips که مقدار در 1440 ضرب میشود بیان شده است. ( خیلی مهم است )


Page Footer که محل قرار گرفتن شماره صفحه یا تاریخ است در تمام صفحات و پائین آن می آید ولی Report Footer در صفحه  آخر و بعد از آخرین رکورد می آید ( مهم : بعد از آخرین رکورد نه بعد از Page Footer ، جای رکورد در کجاست ؟ در رکوردست و لیست شدن در دیتیل ) و قابلیت اینکه بعد از Page Footer یا قبل از شروع آن باشد را ندارد.


قسمت آخر متن انگلیسی در بالا منظور این است که فرضا اگر دیتیل شما تمام صفحه را پر نکرده باشد میشود تا جایی که این آفست یا جابجایی (  طبق گفته ی بالا این مقدار در  پراپرتی Top تنظیم شده )  کوچکتر از ارتفاع صفحه باشد رکورد آخر آن سکشن  را در صفحه پرینت کرد ( NextRecord=False ) و برای عدم پرینت  رکوردهای تکرارشده  PrintSection باید فالز شود.( در رویداد Format )  یا مثلا  میخواهید Report Footer  که بعد از رکورد آخر در دیتیل شروع میشود تقریبا در پایین صفحه ( بعد از Page Footer قرار نخواهد گرفت )  بیاید.


اگر دیتیل تا قبل از Page Footer پیشروی کند (Advance ) ، صفحه جدید ایجاد شده و Report Footer در آن صفحه ی خالی قرار خواهد گرفت  ( در هر صورت در صفحه ی آخر و قبل از Page Footer قرار خواهد گرفت )



Acrobat Child Window



AVScrollView
AVTaskPanelAccordionScrollView
AVTableContainerView
AVTaskPaneBarView
AVFlipContainerView
AVTableContainerView
AVTabStripView
AVSplitterView
AVDockableHostView
AVBookmarkView
AVScrollView
AVTreeViewClass
AVTreeNodeSimpleView
AVTreeNodeSimpleView
AVTreeNodeSimpleView
AVTreeNodeSimpleView
AVTreeNodeSimpleView
AVTreeNodeSimpleView
AVSplitationPageView
AVSplitterView
AVScrolledPageView
AVScrollView
AVTableContainerView
8.50 x 11.00 in
AVSplitterDragView
AVPageView
AVTopBarView
1


>>>> Hidden Text <<<<
AVTableContainerView
AVDockableHostView
AVCornerView
AVRulerView
55.3%
AVRNAFilesScrollContainerView
AVScrollView
AVTableContainerView

پارامترهای هنگام باز کردن Pdf با A/

برای باز کردن فایل pdf از تابع Shell استفاده کنید یا تابع Shell Execute  اگر Shell بکار ببرید  در ابتدا مسیر Acrobat.exe که در سیستم های 32 و 64 بیت فرق میکند را باید حتما ذکر کنید حتی مسیر اپلیکیشن اصلی Word یا Access ؛  از ساخت آبجکت Shell.Application هم به احتمال زیاد می توانید بهره ببرید 


ObjShell.Shell.Open fileName


<Acrobat path> /A "<parameter>=<value>" "<PDF path>



Navpanes=1|0Turns the navigation panes and tabs on or off
Scrollbar=1|0Turns scrollbars on or off
Statusbar=1|0Turns the status bar on or off
Messages=1|0Turns the document message bar

باید بین  معرفی مسیر فایل اجرایی ،  پارامتر و نام فایل از 
  استفاده کرد  Chr(34) 

 "Zoom=%100&navpanes=0&toolbar=0"












Open a PDF file:

    AcroRd32.exe PdfFile

Open a PDF file in a new instance of Adobe Reader:

    AcroRd32.exe /N PdfFile

Open a PDF file at page 7:

    AcroRd32.exe /A "page=7=OpenActions" PdfFile

Open a PDF file with navigation pane active, zoom out to 50%, and search for and highlight the word "batch":

    AcroRd32.exe /A "zoom=50&navpanes=1=OpenActions&search=batch" PdfFile

Print a PDF file with dialog:

    AcroRd32.exe /P PdfFile

Print a PDF file silently:

    AcroRd32.exe /N /T PdfFile PrinterName [ PrinterDriver [ PrinterPort ] ]

پرینت فایل ذکر شده بصورت هیدن یا ریموت 

"C:\Program Files\Adobe\Acrobat 5.0\Reader\AcroRd32.exe" /p /h "c:\filename.pdf"


ShellExecute Method

  • با ساخت آبجکت Shell.Application

Key
   application   The file to execute (required)
   parameters    Arguments for the executable
   dir           Working directory
   verb          The operation to execute (runas/open/edit/print)
   window        View mode application window (normal=1, hide=0, 2=Min, 3=max, 4=restore, 5=current, 7=min/inactive, 10=default)

تابع GetClassNameA و GetWindowTextA از توابع API


User32.dll  64 Bit 



نحوه ی اظهار توابع عنوان این مطلب  در ویندوز 32 و 64 بیت یا در Vb6 یا Vb7 فرق میکند که در اینترنت جستجو کنید تابع صحیح برای موارد بالا وجود دارد.


تابع زیر نام یا کلاس را در بافر ایجاد و برمی گرداند 



برای گرفتن کلاس یا نام (  پنجره  )بکار برده میشود فرضا گرفتن  تکست  نوار عنوان پنجره ی اکسس جایی که اسم دیتابیس و نام اپلیکشن و حتی مسیر نمایان میشود


(Public Function GetClassName(h as LongPtr

Dim Buff As String*256

Dim BuffLen As Long 

((Buff=String(256,Chr(0

(BuffLen=getclassnamea(h,Buff,BuffLen

If BuffLen>0 Then 

(GetClassName=Left$(Buff,BuffLen

End If

Set Buff=Nothing 

End Function 



(Public Function GetWindowText(h as LongPtr

Dim Buff As String*256

Dim BuffLen As Long 

((Buff=String(256,Chr(0

(BuffLen=getwindowtexta(h,Buff,BuffLen

If BuffLen>0 Then 

(GetWindowText=Left$(Buff,BuffLen

End If 

Set Buff=Nothing

End Function 




تابع SetParent

.

DLL


User32.dll




ساخت کوئری با CreateQueryDef


Microsft DAO Object 


Dim db As Dao.DataBase

Dim qd As QueryDef

Set db=CurrentDb

("Set qd=db.CreateQueryDef("Query1","SELECT * FROM tblrefud




Microsoft Data Access Objects reference

Applies to: Access 2013, Office 2013





آدرس دهی کنترل موجود در فرم یا سابفرم






 : Form 

Forms!Form1!Text1

("Forms("Form1").Controls("Text1

: SubForm


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


If You Have Created Event In Subform Just Needs Write: Form_SubForm1.Form!Text1

If Not 

Forms!Form1!SubForm1!Text1


سابفرم پراپرتیهای مخصوص به خودش را داراست مثل Link Master و Link Child که ارتباط بین سابفرم و فرم اصلی را برقرار می کند فرضا با فیلتر کردن کمبو در فرم اصلی که حاوی آیدی های سابفرم است  سابفرم فیلتر میشود یا Border Style و غیره جز دسترسی به کنترل های فرمش.



مدیریت رویدادهای کنترل در فرم خاص


WithEvents


Get بازگشت مقدار پراپرتی و WriteOnly است

Set ذخیره مقدار پراپرتی و ReadOnly است


Getproperty procedure that is used to return the value of the property.


Set property procedure that is used to store the value of the property.



در لود فرم  Set mfrm=Me البته  قبلش باید کلاس را تعریف کرد


HTML LIST

Text : RichText

















WebBrowserControl در اکسس ۲۰۱۳ ببعد ( نمایش صفحات HTML در این کنترل )


البته در خود این کنترل در اکسس که در ورژن های بالاتر وجود دارد میتوان آدرس وب را در Property Sheet در Control Source داخل " " با = قرار داد و احتیاجی به Navigate هم نیست در 2010 یا 2007 در ActiveX داخل نوار دیزاین و گروه کنترل ها میتوان WebBrowser را انتخاب کرد و در فرم گذاشت در اینصورت پراپرتی بنام ControlSource وجود ندارد و از Navigate برای نمایش صفحه ی وب باید استفاده نمود. در نسخه ی 2016 این کنترل در گروپ کنترل ها وجود دارد در نوار دیزاین و برای کنسل کردن کلیک راست روی آن میتوان از رویداد KeyDown یا KeyUp استفاده کرد که اگر راست کلیک ( Button ) فشرده شد KeyCode برابر صفر شود با Msgbox Button در این Event  ها میتوان شماره ی ثابت باتن فشرده شده با Mouse را گرفت . در نسخ پائین تر فرضا 2007 یا 2010 که از ActiveX و فایل OCX مربوطه ایجاد میشود باید رویدادی به نام OnContextMenu ایجاد کرد 



    SDate = .Document.getElementByID("SDate").innerText
    Omega = .Document.getElementByID("Omega").innerText











 "........" Object.Navigate.
"........" Object.Navigate2.





object.Navigate2(URL, Flags, TargetFrameName, PostData, Headers)









("set xmlhttp = createobject(“Microsoft.XMLHttp
xmlhttp.open "GET","http://www.imdb.com",false










وضعیت پیشروی به رکورد بعدی در گزارش


Event : OnFormat  In Section


(Public Sub ChangeNextRecord(r As Report
r.NextRecord = False
End Sub

Provider ... کانکشن در اکسس برای Activex Data Object



"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\AccessFile.accdb"




"Provider=Microsoft.ACE.OLEDB.12.0;Data 
Source=C:\myFolder\myAccessFile.mdb,Database 
Password=MyDbPassword"



برای اکسس 2003 

"Provider=Microsoft.JET.OLEDB.4.0;Data 
Source=C:\myFolder\myAccessFile.mdb;Jet 
OLEDB:Database  Password=MyDbPassword"


Workgroup (system database) specifying username and password
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:System Database=system.mdw;User ID=myUsername;Password=myPassword;

OpenSchema Method فرضا گرفتن نام جداول



SchemaEnum Constants and Constraint Columns Values 

 

ConstantValueDescriptionConstraint Columns
adSchemaAsserts0Returns the assertionsCONSTRAINT_CATALOG
CONSTRAINT_SCHEMA
CONSTRAINT_NAME
adSchemaCatalogs1Returns the catalog informationCATALOG_NAME
adSchemaCharacterSets2Returns the defined character set in the catalogCHARACTER_SET_CATALOG
CHARACTER_SET_SCHEMA
CHARACTER_SET_NAME
adSchemaCheckConstraints5Returns the defined check constraints in the catalogCONSTRAINT_CATALOG
CONSTRAINT_SCHEMA
CONSTRAINT_NAME
adSchemaCollations3Returns the defined character collations in the catalogCOLLATION_CATALOG
COLLATION_SCHEMA
COLLATION_NAME
adSchemaColumnDomainUsage11Returns the columns that are domain dependentDOMAIN_CATALOG
DOMAIN_SCHEMA
DOMAIN_NAME
COLUMN_NAME
adSchemaColumnPrivileges13Returns the column privilege informationTABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
COLUMN_NAME
GRANTOR
GRANTEE
adSchemaColumns4Returns the columns informationTABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
COLUMN_NAME
adSchemaConstraintColumnUsage6Returns the columns used by constraintsCOLUMN_NAME
TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
adSchemaConstraintTableUsage7Returns the tables used by constraintsTABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
adSchemaCubes32Returns info about the cubes used for multi-dimensional dataCATALOG_NAME
SCHEMA_NAME
CUBE_NAME
adSchemaDBInfoKeywords30Return the keywords recognized by the providernone
adSchemaDBInfoLiterals31Return the literals used in text commands by the providernone
adSchemaDimensions33Returns info about the dimensions in a cubeCATALOG_NAME
SCHEMA_NAME
CUBE_NAME
DIMENSION_NAME
DIMENSION_UNIQUE_NAME
adSchemaForeignKeys27Returns the foreign key columnPK_TABLE_CATALOG
PK_TABLE_SCHEMA
PK_TABLE_NAME
FK_TABLE_CATALOG
FK_TABLE_SCHEMA
FK_TABLE_NAME
adSchemaHierarchies34Returns hierarchy info for multi-dimensional dataCATALOG_NAME
SCHEMA_NAME
CUBE_NAME
DIMENSION_UNIQUE_NAME
HIERARCHY_NAME
HIERARCHY_UNIQUE_NAME
adSchemaIndexes12Returns the indexes defined in a catalogTABLE_CATALOG
TABLE_SCHEMA
INDEX_NAME
TYPE
TABLE_NAME
adSchemaKeyColumnUsage8Returns the defined key columns in the catalogCOLUMN_NAME
CONSTRAINT_CATALOG
CONSTRAINT_SCHEMA
CONSTRAINT_NAME
TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
adSchemaLevels35Returns info about the levels in multi-dimensional dataCATALOG_NAME
SCHEMA_NAME
CUBE_NAME
DIMENSION_UNIQUE_NAME
HIERARCHY_UNIQUE_NAME
LEVEL_NAME
LEVEL_UNIQUE_NAME
adSchemaMeasures36Returns the measures for multi-dimensional dataCATALOG_NAME
SCHEMA_NAME
CUBE_NAME
MEASURE_NAME
MEASURE_UNIQUE_NAME
adSchemaMembers38Returns the available members for multi-dimensional dataCATALOG_NAME
SCHEMA_NAME
CUBE_NAME
DIMENSION_UNIQUE_NAME
HIERARCHY_UNIQUE_NAME
LEVEL_UNIQUE_NAME
LEVEL_NUMBER
MEMBER_NAME
MEMBER_UNIQUE_NAME
MEMBER_CAPTION
MEMBER_TYPE
TREE OPERATOR
adSchemaPrimaryKeys28Returns the primary key columnsPK_TABLE_CATALOG
PK_TABLE_SCHEMA
PK_TABLE_NAME
adSchemaProcedureColumns29Returns info on columns returned by stored proceduresPROCEDURE_CATALOG
PROCEDURE_SCHEMA
PROCEDURE_NAME
COLUMN_NAME
adSchemaProcedureParameters26Returns info on the parameters and return codes of stored proceduresPROCEDURE_CATALOG
PROCEDURE_SCHEMA
PROCEDURE_NAME
PARAMETER_NAME
adSchemaProcedures16Returns info on the stored proceduresPROCEDURE_CATALOG
PROCEDURE_SCHEMA
PROCEDURE_NAME
PROCEDURE_TYPE
adSchemaProperties37Returns info on the properties of each level of multi-dimensional dataCATALOG_NAME
SCHEMA_NAME
CUBE_NAME
DIMENSION_UNIQUE_NAME
HIERARCHY_UNIQUE_NAME
LEVEL_UNIQUE_NAME
MEMBER_UNIQUE_NAME
PROPERTY_TYPE
PROPERTY_NAME
adSchemaProviderSpecific-1For provider-specific, non-standard schemaprovider specfic
adSchemaProviderTypes22Returns the provider-supported data typesDATA_TYPE
BEST_MATCH
adSchemaReferentialConstraints9Returns the defined referential constraints in the catalogCONSTRAINT_CATALOG
CONSTRAINT_SCHEMA
CONSTRAINT_NAME
adSchemaSchemata17Returns the schema owned by a userCATALOG_NAME
SCHEMA_NAME
SCHEMA_OWNER
adSchemaSQLLanguages18Returns the SQL language support infonone
adSchemaStatistics19Returns the defined statistics in a catalogTABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
adSchemaTableConstraints10Returns the table contraints defined in the catalogCONSTRAINT_CATALOG
CONSTRAINT_SCHEMA
CONSTRAINT_NAME
TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
CONSTRAINT_TYPE
adSchemaTablePrivileges14Returns the privileges on tablesTABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
GRANTOR
GRANTEE
adSchemaTables20Returns the tables in a catalogTABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
TABLE_TYPE
adSchemaTranslations21Returns the character set translation infoTRANSLATION_CATALOG
TRANSLATION_SCHEMA
TRANSLATION_NAME
adSchemaTrustees39Not usednone
adSchemaUsagePrivileges15Returns the user privilege infoOBJECT_CATALOG
OBJECT_SCHEMA
OBJECT_NAME
OBJECT_TYPE
GRANTOR
GRANTEE
adSchemaViewColumnUsage24Returns the column usage for viewed tablesVIEW_CATALOG
VIEW_SCHEMA
VIEW_NAME
adSchemaViews23Returns the views info from the catalogTABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
adSchemaViewTableUsage25Returns the table usage for viewed tablesVIEW_CATALOG
VIEW_SCHEMA
VIEW_NAME



(Set X= Conn.OpenSchema(adSchemaTables

For i=0 To X.Count-1

Msgbox X(i).Name

Next

که   Constraint Columns در جدول بالا را برای adSchemaTables لیست میکند و میشود 

TABLE_CATALOG                                                                           
TABLE_SCHEMA
TABLE_NAME
TABLE_TYPE




    (("",OpenSchema(adSchemaColumns,Array("","","MyTable



ConnectionString در Access 2013




To reference ADO from Microsoft Visual Basic

  1. In Visual Basic, from the Project menu, select References....

  2. Select Microsoft ActiveX Data Objects x.x Library from the list


ADO Recordset Object 


objRecordset.Open 

source,actconn,cursortyp,locktyp,opt


CursorType







Set objRecordset= objConnection.OpenSchema(adSchemaTables)




(("Set rs = cn.OpenSchema(adSchemaTables, Array(Empty, Empty, Empty, "TABLE
Do While Not rs.EOF
Debug.Print rs.Fields("TABLE_NAME").Value
rs.MoveNext
Loop
rs.Close

موجودی انبارهای کالا در حین فروش


1;موجودی ;2;خرید;3; فروش ;4;برگشت از خرید;5; برگشت از فروش


باز کردن فولدر مشخص شده


Shell.Application

ساخت آبجکت بالا 

("\\:Shell.Open("C.



ثابت های فولدرهای خاص یا SpecialFolder 


Environment.SpecialFolderEnum




Desktop                    0

Cookies                   33

DesktopDirectory   16

Favorites                  6

Fonts                        20

History                     34

MyComputer           17

MyDocuments         5

MyMusic                  13

MyPictures               39

MyVideos                 14

ProgramFiles           38

ProgramFilesX86    42

Recent                      8

StartMenu               11

Startup                     7

System                    37

Windows                 36

دسترسی به فولدرهای ویندوز ( ایجاد شی فولدر ) / کپی آیتم ( ها )به فولدر


Shell.Application


برای دسترسی به آیتم  یا آیتم های  فولدرهای  خاص استفاده از متد شی Folder  که Items هست 



متد CopyHere ... آیتم یا آیتم هایی را به فولدراضافه میکند 


("CopyHere("C:\AUTOEXEC.BAT.






مثال :  ثابت هگزا H14& یا دسیمال 20 ( حاصل 1 ×16+4) برای فولدر Fonts

(NameSpace(&H14.




باز کردن گزارش و پرینت



Private Sub Command33_Click()
DoCmd.OpenReport "repAwariaOtwarta", acViewPreview, , _
"[dbAwarieOtwarte].[ID] =" & Me![ID]
End Sub
DoCmd.PrintOut , , , , 1


در تصویر زیر آرگومان های متد پرینت بیان شده


ران کردن کوئری ها یا اجرای عبارات Sql ( با سرعت خوب )


مثل RunSql هشدار نمیدهد ولی سرعت خوبی دارد اگر dbFailOnError استفاده شود در صورت خطا طبق گفته ی داکیومنت در زیر Roll Back میشود .



CurrentDB.Execute







تغییر سورس جدول لینکی



Set tdef = New DAO.TableDef

tdef.Name = strLinkedTableName

tdef.Connect = strConnect

tdef.SourceTableName = strSourceTableName