PDA

View Full Version : ایراد در تعریف متغیر از نوع database



انگوران
چهارشنبه 05 دی 1386, 15:59 عصر
تکه کد زیر رو ببینید .

Dim db As Database, rst As Recordset
Set db = CurrentDb
Set rst = db.OpenRecordset("tableuser")
Do While rst.EOF = False
If Str(rst![codevahed]) = Str([Text1]) And rst![password] = [txtpas] Then
...
زمانی که می خوام داده ای رو از نوع Database تعریف کنم بعد از as این نوع رو به من نمیده و اگه اونو تایپ کنم زمان اجرای کد نیز از این قسمت ایراد می گیره علتش چیه
و سئوال دوم اینکه آیا میشود بدون تعریف نوع متغییر به شکل زیر به خواسته خودمون برسیم .

If Me.CurrentDb.openrecordset("tablename")![fieldname] = me.textname Then
...

مهدی قربانی
چهارشنبه 05 دی 1386, 16:52 عصر
سلام
تیک Microsoft DAO 3.6 رو فعال کردی ؟

انگوران
چهارشنبه 05 دی 1386, 17:16 عصر
ممنونم مهدی جان مشکل با گذاشتن تیک مربوطه حل شد اگه یه لطفی بکنین رو قسمت دوم سؤال هم وقت بذارین ممنون میشم .

مهدی قربانی
چهارشنبه 05 دی 1386, 18:46 عصر
ممنونم مهدی جان مشکل با گذاشتن تیک مربوطه حل شد اگه یه لطفی بکنین رو قسمت دوم سؤال هم وقت بذارین ممنون میشم .
حبیب جان علت استفاده از این روش چیه ؟ قطعاً می دونی که از رکوردست موقعی استفاده میشه که می خوایم یه تعداد رکورد موجود در جدول رو Update و یا ADDNew و .... کنیم اگر هم هدف جستجو باشه که باید از متد FindFirst استفاده کنیم حالا اگر بخوایم از روشی که مورد نظر شماست استفاده کنیم FindFirst درست عمل نمی کنه و خواهی دید که فقط می تونیم به رکورد اول بریم مثلاً در نمونه فایل مقداری که در text4 وارد میشه فقط با رکورد اول مقایسه میشه که در اینصورت این روش کاربردی نداره ( پیمایش و جستجوی رکوردها ) به نمونه یه نگاهی بنداز .

انگوران
پنج شنبه 06 دی 1386, 08:21 صبح
مهدی جان از وقتی که گذاشتی ممنونم ببینید برای اینکه یک فرم ورود به برنامه داشته باشیم راههای مختلفی وجود داره .
1- با استفاده از select case این کار رو انجام بدیم که در این حالت اگه یه کاربر اضافه بشه باید کد دستکاری بشه که اصولی نیست .
2- یه جدول درست کنیم که اطلاعات یوزر و پسورد رو داشته باشه و هر زمان یوزری اضافه شده مشخصات اونو به جدول اضافه کنیم .
حالا چند روش وجود داره تا در فرم ورود به سیستم به اطلاعات جدول اشاره بشه یکی اینه که با dlookup اطلاعات جدول رو با اطلاعات روی فرم مقایسه کنیم و یکی هم با استفاده از رکوردست هست که آقای سهرابلو تو یکی از تاپیکها اشاره کرده بودن که بخشی از نمونه کدش رو بالا گذاشتم و مطمئناً روشهای دیگری هم وجود داره که شاید ساده و کاربردی تر از این روشها باشه که خوشحال میشم راهنمائی بفرمائید .

مهدی قربانی
پنج شنبه 06 دی 1386, 16:53 عصر
سلام
لطف داری حبیب جان من خودم به راهنمایی نیاز دارم . اما در مورد موضوع بحث به نظر من تمام راههایی که شما اشاره کردی قابل استفاده هست و از نظر عملکردی شبیه هم بنابراین از نظر کیفی هم نمیشه خیلی تفاوت بینشون قائل شد انتخابشون بستگی داره به سلیقه برنامه نویس . نمونه آقای سهرابلو هم دقیقاً با استفاده از متغیر ، رکوردست و تابع حلقه اینکار رو انجام میده و عملاً مقصود اینه که اطلاعات کاربر در طول کار با برنامه در جاهای مختلف قابل استفاده باشه که اینم روش جالبیه به هر حال همونطور که عرض کردم همش بستگی داره به خواسته کاربر و برنامه نویس شخصاً تا حالا از جدول یوزرها و Dlookup استفاده کردم بخاطر راحتی و دقتش و خوب هم جواب داده .