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

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

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

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

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

لیست آخرین آیتم براساس گروبندی فیلد SupplierID



تمام برداشت ها از سایت های خارجی جهت آموزش شما دوستان مبتدی اخذشده،نایاب هستند لذا نهایت استفاده را ببرید.


We are looking to make changes



select * from products where productid in(

(select val(lastt) as lastt from (select distinct dlast('ProductId','products',"supplierId=" & [SupplierId]) as Lastt,supplierid from products

order by supplierid)))




w3schools/sql




ProductIDProductNameSupplierIDCategoryIDUnitPrice
Aniseed Syrup 12 - 550 ml bottles 10 
Northwoods Cranberry Sauce 12 - 12 oz jars 40 
12 Queso Manchego La Pastora 10 - 500 g pkgs. 38 
15 Genen Shouyu 24 - 250 ml bottles 15.5 
23 Tunnbröd 12 - 250 g pkgs. 
24 Guaraná Fantástica 10 12 - 355 ml cans 4.5 
27 Schoggi Schokolade 11 100 - 100 g pieces 43.9 
30 Nord-Ost Matjeshering 13 10 - 200 g glasses 25.89 
39 Chartreuse verte 18 750 cc per bottle 18 
41 Jack's New England Clam Chowder 19 12 - 12 oz cans 9.65 
44 Gula Malacca 20 20 - 2 kg bags 19.45 
46 Spegesild 21 



استفاده از عبارت Last 


select * from products where productid in(select lLast from (select distinct last([productId]) As lLast,supplierid from products group by supplierid order by supplierid))



Or 


select * from products where productid in(select distinct last([productId]) As lLast from products group by supplierid)



select * from products where productid in(select distinct last([productId])-1 As lLast from products group by supplierid)



select * from products where productid in(select distinct first([productId]) As ifirst from products group by supplierid)





first-and-lastfunction-in-ms-access




























کد نویسی در اکسس



کد نویسی در اکسس با دریافت مبلغ مربوطه فقط کدهای اکسسی نه script نویسی ، پروژه پذیرفته نمی شود و فقط در حد رفع مشکل. لطفا زیر همین پست  مشکل در کد نویسی جهت رفع قرار داده شود شاید سایر دوستان نیز در رفع آن کمک بنمایند.




لطفا نظرسنجی فراموش نشود.






فیلتر کردن محتویات داخل لیست باکس در زمان تایپ کردن در تکست باکس 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 



رفتن به رکورد خاص



DoCmd.SearchForRecord acDataForm, "frmOrders", acFirst, "[OrderID] = " & Me!txtOrderID

این متد قدرتمند تر از متد FindRecord هست که عملگرهای منطقی نظیر  >  <  And Or و Between رو ساپورت میکند ( ویژگی مهم ) 

اگر در سابفرم اشاره شود باید به آن فوکس شود با متد SetFocus 

Form_SubFormName.SetFocud 

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


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