View Full Version : سوال: آپدیت کردن و حذف از جدول با کد نویسی
Younestalebi
شنبه 29 مرداد 1390, 02:06 صبح
سلام دوستان
من با این کد
Dim db As Database
Dim rst As Recordset
Set db = CurrentDb
Set rst = db.OpenRecordset("TBL_Companies")
rst.AddNew
rst.Fields("Company").Value = Me.Company
rst.Update
rst.Close
db.Close
Set rst = Nothing
Set db = Nothing
یک رکورد به جدول اضافه کردم
کد حذف رو هم نوشتم.
حالا برای آپدیت کردنش مشکل دارم
اساتید محترم لطفاً کمک کنید
dadsara
شنبه 29 مرداد 1390, 10:07 صبح
سلام
چنانچه قصد دارید از رکوردست استفاده کنید ، بجای عبارت Rst.Addnew عبارت Rst.Edit را بکار ببرید
Younestalebi
شنبه 29 مرداد 1390, 11:01 صبح
هميشه ركورد اول رو ويرايش مي كنه چطوري يه ركورد خاص رو براش تعريف كنيم
RESMAILY
شنبه 29 مرداد 1390, 12:07 عصر
به نام خدا
با سلام. براي آپديت كردن و يا حذف كردن بايد ابتدا ركورد مزبوررا با يك ايندكس معين و بصورت ديناست احضار نماييد . سپس عمليات را انجام دهيد. مثلا فلان ركورد كه شماره منحصر بفردش فلان شماره است. يا فلان دسته ركورد كه در تاريخ با هم مشتركند و غيره. نحوه اين كاررا مي توانيد از راهنماي خود آكسس و درقسمت DAO معمولا و يا ADODB (اگر استفاده مي نماييد) بطور كامل بدست بياوريد و اين روش شايد بهتر از آن باشد كه دوستان محترم نمونه هاي شما را بصورت موردي تكميل بفرمايند. براي ويرايش ركوردهاي بعدي هم كه خوب بايد از يكي از حلقه ها استفاده بفرماييد. do while و حتي for و جزآن كه حتما بلديد.
به تجربه شخصي معتقدم راه سريع تر (از لحاظ پردازش) استفاده از عبارات اس كيو ال است. البته در اين روش هم شما بايد شرط WHERE را در عبارات تامين نماييد. ساختن اين عبارات در آكسس و به كار گيري آن در VBA آسان است. موفق باشيد.
Younestalebi
یک شنبه 30 مرداد 1390, 02:40 صبح
هميشه ركورد اول رو ويرايش مي كنه چطوري يه ركورد خاص رو براش تعريف كنيم
لطفاً در این مورد کمک کنید
RESMAILY
یک شنبه 30 مرداد 1390, 08:51 صبح
به نام خدا
با سلام. ركورد يا ركوردهاي خاص را ابتدا با يك عبارت اس كيو ال (يا طريق ديگر) باز كنيد. احتمالا موضوعي كه مطرح كرده ايد براي ويرايش تعدادي از ركورد هاست. مثلا ركوردهايي كه در تاريخ معين يا محدوده اي از تاريخ (از... تا) قرار دارند. مثلا:
SELECT APPLICATE.* FROM APPLICATE WHERE (((APPLICATE.SDATE) Between #1/1/1390# And #1/31/1390#));
اين عبارت را به جاي نام جدول در فرمان احضار ركورد ست ديتابيس قرار دهيد. حالا بايك حلقه do while not rs.eof و rs.movenext و loop به سراغ تك تك ركورد ها برويد و هركار خواستيد بكنيد.
براي ركورد خاص هم بايد ابتدا آدرس خاص آن ركورد را بدهيد و از ايندكس تكي (شماره) يا ايندكس تركيبي (مثلا اسم و فاميل)منحصر به فرد استفاده بفرماييد.
dadsara
یک شنبه 30 مرداد 1390, 09:07 صبح
سلام
در تاپیک زیر تقریبا همین سوال را عنوان نمودید و جواب نیز ارائه شد
http://barnamenevis.org/showthread.php?299936-مشكل-در-آپديت-كردن-و-حذف-اطلاعات
RESMAILY
یک شنبه 30 مرداد 1390, 09:10 صبح
به نام خدا
با سلام. از مطلب ضميمه شده كمك بگيريد. در حدود صفه 16 آن مثال خوبي وجود دارد.
Younestalebi
دوشنبه 31 مرداد 1390, 01:12 صبح
من از این کد برای Select کردن رکورد می خوام استفاده کنم
Set rst = db.OpenRecordset(" select * from TBL_Course where(ID_Number='" & ID_Cr & "')")
وقتی نوع فیلد Text باشه مشکلی نداره ولی در بقیه حالت ها ارور میده چیکار باید بکنم
RESMAILY
دوشنبه 31 مرداد 1390, 12:55 عصر
به نامخدا
باسلام. براي فيلدهاي ديگر (غير text) علامت قبل و بعد از كوتيشن را برداريد. مثل اين:
Set rst = db.OpenRecordset(" select * from TBL_Course where(ID_Number=" & ID_Cr & "))"
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.