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

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

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

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

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

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.