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

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

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

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

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

فیلتر کردن محتویات داخل لیست باکس در زمان تایپ کردن در تکست باکس Filter Contents Of ListBox While Typing The TextBox

استفاده از رویداد OnChange تکست باکس موردنظربنام فیلتر بای  ... اسم لیست باکس در این مثال List0 هست .

سورس لیست باکس از جدول بنام Table1 حاوی فیلدهای نام و نام خانوادگی  .... در مثال پائین s برداشته شود ( انتهای متن sql )

()Private Sub FilterBy_Change
Dim Sql As String 
  Sql="Select  Fnam,Lnam From Table1 Where Fnam 
 Lnam Like '" & Me.FilterBy.Text & "*'"  s  & 
Me.List0.RowSource=Sql
End Sub 



گرفتن مقادیر انتخاب شده در لیست باکس Get List Of Selected Items In List Box


ControlName : List0

اگر خاصیت MultiSelect  از پراپرتی خود لیست باکس انتخاب شود ( Simple Or Extended )  با متد زیر مقادیر Bound Column لیست باکس صفر در پنجره ی Immediate Windo w محیط VBE لیست خواهد گردید. 


If Me.List0.ItemsSelected.Count>0 Then 

Dim VarItem As Variant

For Each VarItem In List0.ItemsSelected 

(Debug.Print List0.ItemData(VarItem

Next

End If

چنانچه لیست باکس چند ستونه باشد و بخواهید مقادیر  Column ها با توجه به Row انتخابی را بدست آورید باید بطریق ذیل عمل بنمائید 


 (Debug.Print   List0.Column(0,2 


که مقدارکالمن  0 و ردیف سوم  را برمی گرداند ایندکس ها از صفر شروع می شوند


 برای تعداد ردیف یا Row   

List0.ListCount            

Dim i 

For i=0 To List0.Listcount-1      

برای ستون یا Column

List0.ColumnCount


INDEX : یک  Long Integer که محدوده میتونه از صفر باشه تا ColumnCount منهای یک 

ROW : یک  Integer که محدوده میتونه از صفر باشه تا ListCount منهای یک 


صفر را برای ارجاع به ستون اول بکارمی برید یک برای ستون دوم و ....

صفر را برای ارجاع به ردیف اول بکار میبرید یک برای ردیف دو م و ....


(FORMS!CONTACTS!COSTUMERS.COLUMN(1,4


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



خالی کردن تکست باکس های داخل فرم ( سینگل )


Dim  Ctl

For Each Ctl In Me.Controls 

If Ctl.ControlType=acTextBox Then      

Ctl=Null             

End If     

Next


126 - acAttachment
   
'108 - acBoundObjectFrame
   
'106 - acCheckBox
   
'111 - acComboBox
   
'104 - acCommandButton
   
'119 - acCustomControl
   
'103 - acImage
   
'100 - acLabel
   
'102 - acLine
   
'110 - acListBox
   
'114 - acObjectFrame
   
'105 - acOptionButton
   
'107 - acOptionGroup
   
'124 - acPage
   
'118 - acPageBreak
   
'101 - acRectangle
   
'112 - acSubform
   
'123 - acTabCtl
   
'109 - acTextBox
   
'122 - acToggleButton
Go to the top of the page
 

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

مثال  شمارش تعداد ro در رشته ی  x 

"X="Roturzrxro

اول در آوردن فاصله در طول رشته ی x اگر وجود داشته باشد 

  (""," ",Replace(x=


راه حل خیلی ساده استفاده از توابع Replace و Len 

(" ","Len(x)-Len(Replace(x,"ro

طول رشته ی X میشود 10 و طول رشته در تابع Replace (جایگزینی فاصله بجای ro ) میشود 8  

در نتیجه تفاضل آنها 2 میشود یعنی دو تا ro در رشته ی x وجود دارد.



ریست کردن شماره ی ردیف در فرم سینگل


اگر AutoNumber باشد که باید فیلد حذف و دوباره اضافه شود 



عدم نمایش پیغام اکشن کوئری 

Docmd.SetWarnings False

ریست کردن ردیف در سینگل فرم 

Docmd.RunSql " Update Tbl Set Row=Row-1 Where  Row>" & Me!Row 

  Docmd.SetWarnings True