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

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

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

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

فرم Login و استفاده از تابع DLookup در اکسس





Private Sub Form_Load()     

InsideHeight = 4000     

InsideWidth = 6000     

Me.tb_ID = Null     

Me.tb_pwd = Null     

Me.tb_ID.SetFocus 

End Sub


Private Sub frm1Btn_Click()    

If IsNull(Me.tb_ID) Or IsNull(Me.tb_pwd) Then       

MsgBox "You must enter password and login ID.", vbOKOnly + vbInformation, "Required Data"    

Me.tb_ID.SetFocus         

Exit Sub     

End If     

If Me.tb_pwd.Value = DLookup("[Login_Pwd]", "login_tbl", "[Empl ID]='" & Me.tb_ID.Value & "'") Then         

If DLookup("[User_Type]", "login_tbl", "[Empl ID]='" & Me.tb_ID.Value & "'") = "Admin" Then             

DoCmd.openForm "admin_menu"             

DoCmd.Close acForm, "login", acSaveNo         

Else             

DoCmd.openForm "user_menu"             

DoCmd.Close acForm, "login", acSaveNo         

End If     

Else       

MsgBox "Password or login ID incorrect. Please Try Again", vbOKOnly + vbExclamation, "Invalid Entry!"       Me.tb_pwd.SetFocus     

End If 

End Sub


مثال های زیر را ببینید : 


DLookUp ( "شرط","نام جدول","نام فیلد مورد جستجو")





تابع زیر یک را بر میگرداند چون دیتا تایپ از نوع متنی است لذا 001 در داخل تک کوتیشن می بایست قرارداده شود

DLookUp("Login_Pwd","login_tbl","[Empl ID]='001'")

تابع زیر عدد ۲ را برمی گرداند ( از فیلد Empl ID ) ، اگر بیش از یک نتیجه باشد فقط اولین آن برگردانده میشود

Dlookup("[Empl ID]","login_tbl","User_Type='User'")

تابع چند شرطه زیر عدد ۲ را برمیگرداند ، شروط : دیتا در فیلد User_Type همان User و فیلد Login_Pwd برابر ۲ باشد

Dlookup("[Empl ID]","login_tbl","User_Type='User' AND Login_Pwd='2'")

شرط از فرم دیگری

Dlookup(“[Empl ID]”,”login_tbl”,”User_Type='”&Forms![Form1]!tb1&”‘”)






مرداد ۱۴۰۳ 



در پاستیل‌های باز و فله از ژلاتین‌های خوکی و حیوانات غیرحلال دیگر چون ماهی غیرحلال، گربه و سگ استفاده شده است.

به گزارش تجارت نیوز، 

حسین رستگار، رییس مرکز تحقیقات حلال سازمان غذا و داروی وزارت بهداشت گفت: «در پاستیل‌های باز و فله از ژلاتین‌های خوکی و حیوانات غیرحلال دیگر چون ماهی غیرحلال، گربه و سگ استفاده شده است.»

او افزود تنها در پاستیل‌هایی که از این سازمان مجوز دارد، از «ژلاتین حلال» استفاده شده است.









Dlookup در اکسس



در کد های زیر از چندین تابع و متد استفاده شده ابتدا چک میکند  درصورت Null بودن نام کاربری ( username ) در جدول tbl_registration ورودی هایی را برای ارسال و درج در فیلدهای این جدول مثل fname یا password دریافت می کند.



If (IsNull(DLookup ("username", "tbl_registration", "username="" & Me.txt_username.Value & "'"))) Then
Dim query As String

نوشتن کوئری Append :

query="insert into tbl_registration (fname, Iname, username, usertype, email, password, gender) values ('" & Me.txt_fname.Value & "'," & Me.txt_lname.Value & "','" & Me.txt_username.Value & "', " & Me.combo_usertype. Column (1) & ", & Me.txt_email.Value & & Me.txt_pswrd.Value & ", " & Me.combo_gender.Column (1) & ")"
اجرای action query یا sql :
CurrentDb.Execute (query,dbFailOnError)
MsgBox ("Successfully Registered")




ورودی های متنی باید داخل تک کوتیشن ها قرار بگیرند فرضا تکست باکس text1 نام را می گیرد روش نوشتاری آن به شرح ذیل است :

' " & text1 & " ' "



waiting for a goal....


Everything you need to know about.....












جستجو ( DlookUp )در جدول یا کوئری

مثال زیر از متغیر intSearch برای گرفتن مقدار ( عددی ) استفاده می کند که بعنوان integer یعنی حدود ۵ رقم نهایتا تعریف میشود اگر عدد بزرگتر باشد از Long استفاده کنید 

نکته : در پنجره ی immediate window وقتی میخواهید عددی را در عدد دیگری ضرب کنید چون پیش فرض integer می گیرد پیغام Overflow را نمایش می دهد که باید آنرا به Long تبدیل یا Convert کنید فرضا      200 *(Clng(1356 ?


Dim intSearch As Integer
Dim varX As Variant
intSearch = 1
_ ,"varX = DLookup("[CompanyName]", "Shippers
("[ShipperID] = " & intSearch]"

در مورد بالا نام کمپانی را از جدول/ کوئری Shippers درصورتیکه مقدار ShipperID آن برابر متغیر اظهارشده بود( یعنی یک ) بازیابی میکند اگر Null باشد ارور Null را بر می گرداند پس صحیح است که بعد ازآن به نمونه روش ذیل عمل کنیم

If IsNull(Varx) =False Or Varx<>"" Then
End if

اگر شرط مورد جستجو عدد نبود یعنی تکست یا به قولی متنی باید شرط بصورت زیر تغییر یعنی تک کوتیشن به اول و آخر عبارت اضافه میشود " ' عبارت ' "

"'=Dlookup("CompanyName","Query1","FamilyName
"'" & Me.TxtSearch &
در مثال فوق اسم شرکت از کوئری یک را بازیابی می کند زمانیکه مقدار txtSearch که تکست هست با فیلد FamilyName برابر باشد. اگر txtSearch در سابفرم باشد باید به آن ارجاع داد فرضا فرم اصلی را MainForm و اسم سابفرمی که txtSearch در آن وجود دارد Sub1 درنظر بگیرید .

& "'=FamilyName"
"'" & Forms!MainForm!Sub1.Form!TxtSearch

بعد از Sub1 از Form استفاده کردیم چرا ؟ چون سابفرم خودش از دو لایه تشکیل شده لایه ی اول پراپرتی های مربوط به خود سابفرم است مثل LinkMaster یا LinkChild و شامل کنترهای مربوط به فرم نیست و بعدی مربوط به فرم که شامل سکشن ها منظور دیتیل و هدر و کنترل هاست
  • Byte — For integers that range from 0 to 255. Storage requirement is a single byte.

  • Integer — For integers that range from -32,768 to +32,767. Storage requirement is two bytes.

  • Long Integer — For integers that range from -2,147,483,648 to +2,147,483,647. Storage requirement is four bytes.