ورود

View Full Version : سوال: چگونگی فر خوانی فیلد ها در VBA



Lord_Voldemort
دوشنبه 27 آبان 1387, 22:26 عصر
سلام
من قصد دارم که مقادیری رو از ورودی بگیرم و با فیلدهای داخل جدول مقایسه کنم ولی نمی دونم چطور ! البته بگم از کوری نمیخوام استفاده کنم
باید اضافه کنم من با فیلد ها سر کار دارم مثلا تو این دتابیسی که ضممیه کردم از کاربر یه عدد قراره بگیرم و اگر تو یه رنج خاص بود بد رو در نظر مگیره و به احتمال تجمعی اون نگاه میکنه خوب بود یه کاره دیگه و....
گیجتون نکنم می خوام مقادیرم رو از کاربر بگیرم و با فیلدهای جدولم، اونم از طریق VBA مقایسه کنم دستورات لازم برای رفتن بین رکورها و مخصوصا فیلدها رو می خواستم(قبلی،بعدی،اولی....)
قابل ذکر من هر چقدر تو قسمت Vba گشتم مطلبی ندیدم که صراحتا در این رابطه صحبت کرده باشه در مورد رکورد یه چیزایی بود ولی در مورد فیلد خیر .
پیشا پیش از راهنمایی شما ممنونم

dadsara
سه شنبه 28 آبان 1387, 11:48 صبح
16 بازدید کننده و 0 جواب :ناراحت:
سلام
دوست عزیز راستش من فایل و سوال شما را دیدم ولی دقیقا منظور شما را نفهمیدم
اگر امکان داره با یک نمونه عکس می تونی خواسته ات را مطرح کنی

Lord_Voldemort
سه شنبه 28 آبان 1387, 13:38 عصر
سلام
دوست عزیز راستش من فایل و سوال شما را دیدم ولی دقیقا منظور شما را نفهمیدم
اگر امکان داره با یک نمونه عکس می تونی خواسته ات را مطرح کنی

ببینید من چیز پیچیدهای نمی خوام می خوام فیلدهام (مثلا فیلد اعداد احتمالی) رو از دیتابیس جاریم بخونم و با یه سری مقادیر که از ورودی میگیرم مقایسه کنم فقط این کار رو با کد نویسی می خوام انجام بدم ولی نمی دونم دستورات چطوری هست باید recordset تعریف کنم یا چیز دیگه ایی ؟!

dadsara
سه شنبه 28 آبان 1387, 14:14 عصر
دقیقا همینطوریه که گفتی باید با استفاده از رکوردست که نمونه های خیلی زیادی در همین سایت می باشد اینکار را انجام دهی

Lord_Voldemort
سه شنبه 28 آبان 1387, 15:21 عصر
ممنون میشم اگه یه نمونه به من نشون بدید چون من در مورد فراخونی رکورد مطلب دیدم اما در مورد فراخوانی یه فیلد و حرکت بین فیلدها (با VBA ) چیزی ندیدم
با تشکر

Lord_Voldemort
شنبه 02 آذر 1387, 01:03 صبح
من قصد دارم دنبال یه رکورد با یه مقدار خاص بگردم اما متاسفانه هر کاری میکنم شرط FindFirst متغییر و یا ارایه قبول نمیکنه خواستم ببینم این خودش اینجوریه یا میشه با یه حالت خاصی متغییر نوشت

rs3.FindFirst ("bazeh_rooz_khoob=rang(1)")

rang(1) بجای این عدد قبول میکنه ولی متغییر خیر، چه کنم ؟


با تشکر

dadsara
شنبه 02 آذر 1387, 08:41 صبح
یک نمونه با استفاده از رکوردست خدمت شما ، انشاءاله بتوانید از روی آن ایده بگیرید
بدیهی است از این روش برای پیدا کردن یک کرود خاص و با شرایط خاص استفاده می شود (به کلید های نوشته شده زیر کلید شماره دقت فرمائید )

Lord_Voldemort
شنبه 02 آذر 1387, 14:04 عصر
دوست عزیز خیلی ممنون برای فایلی که گذاشتین
من مشکل جدیدی دارم و اونم اینکه وقتی من recordset رو به شکل زیر تعریف میکنم
Set rs = CurrentDb.OpenRecordset("arghame_rooz", dbOpenDynaset)
موقعه استفاده از findfirst به شکل زیر پیغام خطا میده
'rs3.FindFirst ("bazeh_rooz_khoob= rang")
چرا ؟

Lord_Voldemort
دوشنبه 04 آذر 1387, 00:16 صبح
خوب این مشکل من حل شد اشکال از اونجایی بود که می بایست تمام مواردی که درون دبل کوتشن "" مربوط به Find next قرار میگرفتن به صورت رشته میبودن که با کد زیر مشکل حل شد
dim str as string
str = "bazeh_rooz_khoob =" & rang(5)
rs3.FindFirst (str)

Lord_Voldemort
سه شنبه 05 آذر 1387, 01:20 صبح
من قصد آپ دیت کردن فیلدهام با VBA دارم با اینکه تمام مراحل درست بنظر میان ولی پیغام خطا میده چرا ؟؟؟

dadsara
سه شنبه 05 آذر 1387, 08:06 صبح
سلام
دوست عزیز من با استفاده از Find بلد نیستم ولی با استفاده از رکوردست و Where ابتدا رکورد مورد نظر پیدا می کنم سپس تغییرات خود را اعمال می کنم
- من روی اولین فیلد بانک این کار را انجام سایر فیلدها را بسته به نیاز خودتان و محاسبات انجام دهید
( اگر با استفاده از Where این کار را انجام دهید ترتیب قرار گرفتن خوب ، بد ، متوسط برروی بانک مهم نیست)

میکروکنترل
چهارشنبه 06 آذر 1387, 23:30 عصر
Private Sub Command4_Click()
Dim rstrand As Recordset
Dim dbs As Database
Dim i As Integer
i = 0
Set dbs = CurrentDb
Set rstrand = dbs.OpenRecordset("arghame_tasadoofi_rooz")

Do While Not rstrand.EOF

If rstrand![arghame_ tasadofi] = Me.Text0 Then
i = i + 1
End If
rstrand.MoveNext
Loop

MsgBox i & "مورد مشابه داریم"
rstrand.Close

End Sub
این کد رادرایونت یک کلید روی فرم بگذار زمانیکه یک عدد به تکسباکس0بدهید این برنامه شروع مکند مقایسه بین این عدد و فیلد مورد نظر د تیبل شمارا اگر مقدار مساوی پیدا کرد پیغام میدهد تعداد تکرار ان را