PDA

View Full Version : درباره Adodc و خطای ست کردن( فوری)



naeeme
سه شنبه 06 آبان 1382, 22:21 عصر
در کد زیر خطای ست کردن رخ میده. این کد در همان برنامه در قسمت دیگری که بر این قسمت تقدم داره، درست عمل می کنه اما با تعویض فریم، این کد دچار خطا میشه. :(
میشه یکی راه نمایی کنه.
این برنامه از 4 فریم در یک فرم تشکیل شده و این فریم ها برای گرفتن داده های ورودی مورد استفاده قرار می گیرن و در فرم یک Adodc قرار داره که به یک بانک اطلاعاتی متصل شده. اتصال درست هست و در مورد فریم اول درست عمل می کنه اما در مورد فریم های بعدی خطای عدم ست کردن رخ میده.
اگر نیازی بود، خود برنامه رو هم می فرستم.


On Error GoTo err
If Not (Adodc1.Recordset.BOF) Then
Adodc1.Recordset.MoveLast

With Adodc1.Recordset
.Delete
.MoveNext
If .EOF Then .MoveLast
End With
End If

Exit Sub
err:

With Adodc1.Recordset
.AddNew
End With

کم حوصله
سه شنبه 06 آبان 1382, 23:48 عصر
:shock: :shock:
والا دوست عزیز این فانکشن تا جایی که مشخص داره بانک را خالی می کنه نه اضافه کردن
اگر میتونی برنامه را بگذار اینجا تا اگر تونستیم کمکت کنم :oops:

jannati
چهارشنبه 07 آبان 1382, 08:04 صبح
دوست عزیز
شاید در فریمهای بعدی داده‌ای وارد میکنید که به این پایگاه مربوط نیست.
درضمن توی FormLoadاتصال را تعریف کن.بعد یک Refresh بذار شاید جواب بگیری.

naeeme
پنج شنبه 08 آبان 1382, 14:21 عصر
این فانکشن برای دکمه انصراف هست که باید رکورد ایجاد شده را پاک کنه. این قست در بار اول درست کار میکنه اما در بار دوم عمل نمی کنه.
refresh کردم. بانک رو بستم و دوباره باز کردم اما باز هم این خطا رخ میده.
کلا دستور Adodc.recordeste. رو نمیشناسه.

کم حوصله
پنج شنبه 08 آبان 1382, 15:34 عصر
دوست من چشم سعی می کنیم ببینیم مشکل شما چیه :wink: :mrgreen:

naeeme
یک شنبه 25 آبان 1382, 17:32 عصر
کسی نمی خواد جواب این رو بده؟؟؟؟
آبروم رفت :cry:

Microsoft.net
یک شنبه 25 آبان 1382, 18:44 عصر
ببین اگه می خوای رکوردی که آخرین بار ایجاد کردی پاک کنی از این استفاده کن حتما کار می کنه


if adodc1.recordcount <> 0 then
.movelast
.delete
end if


این کد هایی که نوشتی خیلی درهم هستش اینی که من نوشتم امتحان کن جوابشو بده بهم

Microsoft.net
یک شنبه 25 آبان 1382, 18:47 عصر
ببین اگه می خوای رکوردی که آخرین بار ایجاد کردی پاک کنی از این استفاده کن حتما کار می کنه


if adodc1.recordcount <> 0 then
.movelast
.delete
end if


این کد هایی که نوشتی خیلی درهم هستش اینی که من نوشتم امتحان کن جوابشو بده بهم

naeeme
دوشنبه 26 آبان 1382, 20:34 عصر
مرسی از توجه تون. اما این کد کار نکرد. یعنی اصلا شناخته نشد.
این برنامه من توی vb نوشته شده نه در vb.net که هم چنان این سوال در عنوان vb.net قرار گرفته.
لطفا در سطح vb کمک کنین. :(
بیچاره شدم. :cry:

کم حوصله
دوشنبه 26 آبان 1382, 23:19 عصر
دوست عزیز شما دقیقا می خواهی چه کار بکنی بگو ببینم من می تونم کاری برات بکنم :oops:

naeeme
سه شنبه 27 آبان 1382, 15:39 عصر
من دارم یه برنامه می نویسم که مشخصات مشتری رو نگه می داره.
در ست کردن بانک برنامه دچار مشکل می شه. یعنی برنامه بانک رو نمی شناسه در حالی که تمام مراحل اتصال درست انجام شه. گاهی وقتا برنامه بانک رو میشناسه گاهی وقتا نمی شناسه.
اما وقتی می خوام رکورد خالی ایجاد شده رو از بین ببرم به هیچ عنوان بانک رو نمی شناسه.
اوایل مشکل نشناختن فقط برای حذف رکورد بود که بعدا در موقع درج هم ایجاد شد!!! و نکته جالب هم این هست که در اجراهای متوالی ممکنه خطا رخ بده و ممکنه رخ نده!

کم حوصله
چهارشنبه 28 آبان 1382, 00:03 صبح
چرا از این روش جهت انجام ارتباطاتت استفاده نمی کنی هم راحتتره هم جالبه امتحانش کن ببین مشکلت حل میشه !!! :wink:
راستی یک چیزی می خواستم بگم یعنی یک سئوال آیا در اون فرم خاص که شما مشکل داری هیچ کدام از فیلد های شما هست که غیر مستقیم مقدار بگیره ؟؟؟
واضح تر بگم شما تمام فیلدهایت را به تکست باکس متصل می کنی جهت نمایش و یا ورود اطلاعات حال مثلا یکا از فیلد های شما مجموع دو فیلد دیگه است که شما بعد از انجام عملیات خاص مقدار نتیجه آن را در تکست باکس دیگه ای بریزی


text3.text = text1.text + text2.text

این جور چیزی تو فرمت داری که مثلا خودت با کد نویسی به آن تکست مورد نظر مقدار بدی ؟؟؟؟

کم حوصله
چهارشنبه 28 آبان 1382, 00:04 صبح
راستس لینک را یادم رفت بگذارم :oops:

http://www.barnamenevis.org/forum/viewtopic.php?t=2853

این روش را حتما حداقل امتحان کن :wink: :mrgreen:

naeeme
چهارشنبه 05 آذر 1382, 18:24 عصر
کم حوصله عزیز!
من اون کاری که گفته بودین رو در یک قسمت انجام دادم! مشکلی ایجاد می کنه؟ تاریخ رو از ترکیب 3تا تکست باکس ایجاد می کنم و توی یه تکست باکس دیگه می ریزم.

کم حوصله
پنج شنبه 06 آذر 1382, 00:05 صبح
2 راه حل
1 - مقدار را مستقیم به خود فیلد بریز نه تکست
2 - زمانی که مقداری را در داخل باکسی که مقدار دهی می کنی سعی کن کرسر را از انجا عبور دهی تا ست شود :wink:
:mrgreen:
حالا برو حال کن ببین مشکلت همین بود؟؟؟؟
:mrgreen:

naeeme
پنج شنبه 06 آذر 1382, 00:53 صبح
کم حوصله عزیز! مشکل یه چیز دیگه بود :oops:
کسی که فرم رو طراحی کرده بود، مقدار پیش فرض تمام تکست باکس ها رو یک فاصله" " گذاشته بود!!!!!
در ضمن من توی هیچ کتابی مقدار دهی مستقیم به یک فیلد رو ندیدم. چه جوری این کار رو می کنن؟
( این هم از عوارض خود یادگیریه دیگه!!!)

کم حوصله
پنج شنبه 06 آذر 1382, 01:21 صبح
کسی که فرم رو طراحی کرده بود، مقدار پیش فرض تمام تکست باکس ها رو یک فاصله" " گذاشته بود!!!!!
دوست عزیز این همونه ببین مقدار دهی به یک تکست که به بانک وصل شده باعث ایجاد اون مشکل میشه
حال چه اون مقدار دهی توسط کد نویسی باشه چه به واسطه مقدار پیش فرض قراردادن (البته تو برنامه نه تو بانک !!! )
خوب و اما در مورد سئوالت
اگر شما با vb6 کار می کنی بگو من در خدمتم وگرنه اگر با .net کار می کنی من شرمندم ولی خانم شیما تو این یک فقره فکر کنم بتونه کمکت کنه البته اگر کلاسشون پایین نیاد که یک vb6 کا این رو میگه :x چون به گفته اوشون اینجا بخش .net هست نه vb6 :x

naeeme
پنج شنبه 06 آذر 1382, 01:42 صبح
من با VB6 کار می کنم!

کم حوصله
پنج شنبه 06 آذر 1382, 02:32 صبح
خوب روشی که من استفاده می کنم اینه که با استفاده از کرسر بر روی تکست ها حرکت می کنم. بدین صورت :
در نظر بگیرید ما چندین تکست باکس در صفحه دارم حال ما مثلا به داخل تکست چهارم مقدار میریزیم (با کد نویسی ) خوب چنین می نویسیم


Text4.Text="1382"
Text4.SetFocus
sendkeys "{Tab}"

به همین راحتی :wink: :mrgreen: