View Full Version : data grid & delete
khomar
جمعه 10 شهریور 1385, 17:48 عصر
یه دیتا گرید دارم که یه سری اطلاعات(بانک) رو نشون می ده امکانش هست که با های لایت کردن مثلا رکورد ها که از طریق دیتا گرید نشون داده می شه اون رکورد رو کلا حذف کرد اگه امکانش هست (کد نویسی)کدش رو کسی اینجا بزاره ؟ مرسی
Armin62
شنبه 11 شهریور 1385, 01:24 صبح
پس از انتخاب رکورد
adodc1.Recordset.Delete
khomar
یک شنبه 12 شهریور 1385, 14:17 عصر
من کد شما رو امتحان کردم اما ارور داد:
object variable or whith block variable not set
من نفهمیدم این adodc دگه واسه چی هست؟ من می خوام با انتخاب رکورد های data gride رکورد انتخاب شده رو دل کنم
rezasafdari
دوشنبه 13 شهریور 1385, 09:42 صبح
روی دیتا گریدت راست کلیک کن بعد در قسمت پراپتیز خاصیت آپدیت و دلیت گریدت رو اکتیو کن درست میشه در حقیقت اصلا نیازی به کد نویسی نیست چون یکی از امکانات هر گریدیه
یا علی
khomar
دوشنبه 13 شهریور 1385, 10:41 صبح
این رو خودم هم می دونم می خوام بدونم با کد نویسی هم می شه؟ اگه می شه یه ادم خیر این کد رو بزاره اینجا
rezasafdari
دوشنبه 13 شهریور 1385, 13:21 عصر
آره که میشه اما اول باید ما بدونیم شما گریدت رو به وسیله ی چی به دیتا بیس وصل کردی البته بعید بدونم دیتا گرید خود ویبی این کار رو بتنونه بکنه ولی گرید های دیگه ای هست که خودش بدونه کد نویسی این کار رو میکنه اگه دیتا بیست اس کیو ال بود 3 سوته میشد!!
موفق باشی...
khomar
دوشنبه 13 شهریور 1385, 23:44 عصر
با adodc به پایگاه وصله دیتا بیسم هم اکسس هست من که فرقش رو نمی دونم چه اکسس باشه چه اس کیو ال چون در هر صورت بازم من دارم از همون دستورات اس کیو ال استفاده می کنم
yavari
سه شنبه 14 شهریور 1385, 16:48 عصر
سلام
عزیز جان ، شما اگه شیوه حذف رکورد از دیتا بیسو بدونی که باقیش فرمالیتس !
فرض اینه که شما میخواین رو سطر گرید که کلیک کردین و مثلا دکمه F3 رو گرفتین یه پیغام هشدار بده و بعد از اوکی شدن ضمن حذف رکورد از بانک تو دیتا گرید هم دیگه نشون داده نشه !
مراحل اولیه که کاری نداره ، برا آخرین مرحله ، تابع بایند دیتاگرید تونو فراخوانی کنین تا با داده های جدید بانکتون رفرش بشه !
موفق باشید
rezasafdari
سه شنبه 14 شهریور 1385, 17:04 عصر
از طریق دیتا گرید که امکان همچین چیزی نیست ولی میتونی توی گوگل delete Grid رو سرچ کنی با اون یه همچین کاری میشه کرد توی همین جام سرچ کنی گرید کلی گرید پیدا میکنی اما اگه به طور عام بخوای میتونی یه دیتا گرید بزاری یدونه کلید و یدونم تکست باکس و کدش به صورت زیر
Dim inp
inp = InputBox("Please insert your name to delete :", "Delete A Name")
'Do While Not Data1.Recordset.EOF
'If Data1.Recordset.Fields("Name") Like inp Then
'adodc1.Recordset.Bookmark = inp
' adodc1.Recordset.Delete
'End If
'adodc1.Recordset.MoveNext
'Loop
Data1.Recordset.FindFirst "Name='" & inp & "'"
If Data1.Recordset.NoMatch = False Then
adodc1.Recordset.Delete
End If
کاری که کردیم این بود یه اینپوت باکس گذاشتیم که ورودی رو از اونجا بدی و با یکی از کلومن های بانک که این ستون تو کد بالا Name در نظر گرفته شده ست میکنه بعد اگه پیدا کرد کل اون رکورد رو پاک میکنه
موفق و موید باشید
در پناه یزدان
یا علی
yavari
پنج شنبه 16 شهریور 1385, 15:55 عصر
سلام
ز طریق دیتا گرید که امکان همچین چیزی نیست
:متعجب: :متعجب: :متعجب: :متعجب:
rezasafdari
جمعه 17 شهریور 1385, 17:34 عصر
ایشون میخوان با کد نویسی کاری کنن که اگر یک رکورد از دیتا گربد رو کلیک کردی و دلیت رو زدی اون رکورد پاک بشه به نظر شما امکان پذیره؟؟؟!!
yavari
شنبه 18 شهریور 1385, 22:17 عصر
سلام
آقا رضا ، من که تو پست شماره 8 توضیح دادم !!!
موفق باشید
khomar
شنبه 18 شهریور 1385, 22:30 عصر
:ناراحت:
سلام
عزیز جان ، شما اگه شیوه حذف رکورد از دیتا بیسو بدونی که باقیش فرمالیتس !
فرض اینه که شما میخواین رو سطر گرید که کلیک کردین و مثلا دکمه F3 رو گرفتین یه پیغام هشدار بده و بعد از اوکی شدن ضمن حذف رکورد از بانک تو دیتا گرید هم دیگه نشون داده نشه !
مراحل اولیه که کاری نداره ، برا آخرین مرحله ، تابع بایند دیتاگرید تونو فراخوانی کنین تا با داده های جدید بانکتون رفرش بشه !
موفق باشید
من طریقه حذف رکورد از دیتا بیس رو بلدم خودش دستور داره اما نمی دونم از طریق دیتا گرید چه جوری باید کد نویسی کنم ممکنه یه نمونه برنامه بزارین
yavari
دوشنبه 20 شهریور 1385, 10:24 صبح
سلام
For Each varBmk In Grid.SelBookmarks
rs.Bookmark = varBmk
Grid.AllowDelete = True
SendKeys ("{DEL}")
Grid.Refresh
Next i
موفق باشید
khomar
سه شنبه 21 شهریور 1385, 01:06 صبح
سلام
سلام
For Each varBmk In Grid.SelBookmarks
rs.Bookmark = varBmk
Grid.AllowDelete = True
SendKeys ("{DEL}")
Grid.Refresh
Next i
موفق باشید
من که از کد شما چیزی نفهمیدم مثلا این rs اینجا چیه؟
سلام
For Each varBmk In Grid.SelBookmarks
Next i
موفق باشید
فکر نمی کنید این for یه خورده می لنگه ؟
rezasafdari
سه شنبه 21 شهریور 1385, 10:52 صبح
آقای یاوری فراموش کردن rs رو از نوع رکورد ست تعریف کنند در جنرال بنویسید :
Dim rs as adodc1.record set
ممنون از شما جناب یاوری
yavari
سه شنبه 21 شهریور 1385, 15:25 عصر
سلام
ممنون آقا رضا
آقا رضا ، فراموش نکردم ، عجله داشتم فقط راه کلی رو گذاشتم
خمار جان ، این الگوریتم کلی کاره ، لطف کن باقیشو خودت بنویس
با این حال مشکلی بود در خدمتم
موفق باشید
khomar
سه شنبه 21 شهریور 1385, 23:48 عصر
سلام
ممنون آقا رضا
آقا رضا ، فراموش نکردم ، عجله داشتم فقط راه کلی رو گذاشتم
خمار جان ، این الگوریتم کلی کاره ، لطف کن باقیشو خودت بنویس
با این حال مشکلی بود در خدمتم
موفق باشید
سلام
کاش در مورد این for توضیح می دادین
yavari
چهارشنبه 22 شهریور 1385, 08:18 صبح
سلام
باشه ، یه لحظه ...
yavari
چهارشنبه 22 شهریور 1385, 08:56 صبح
سلام
Grid همون دیتاگریدته !
rs همون رکود ستته که باید تعریف و بازش کنی !
در مورد چیزای دیگه هم که بوک مارک میکنه ردیف گریدی که سلکت شده بعد اجازه میده خاصیت
AllowDelete گردیو و بعد هم حذف و رفرش گرید !
For Each varBmk In Grid.SelBookmarks
rs.Bookmark = varBmk
Grid.AllowDelete = True
SendKeys ("{DEL}")
Grid.Refresh
Next
موفق باشید
khomar
شنبه 01 مهر 1385, 23:50 عصر
مرسی اقای یاوری
yavari
دوشنبه 03 مهر 1385, 08:09 صبح
مرسی اقای یاوری
سلام
خواهش میکنم :چشمک:
خوشحالم به جواب رسیدید !
موفق باشید
adhami
چهارشنبه 05 مهر 1385, 14:20 عصر
با سلام خدمت دوستان عزیز
من با استفاده از دیتاگرید یک برنامه نوشتم . اطلاعات در دیتاگرید به خوبی نمایش داده می شود . مشکل من از اینجا شروع می شه که من اجازه پاک کردن و ویرایش در دیتاگرید رو هم فعال کرده ام ولی وقتی می خوام مثلا پاک کنم این کار رو انجام نمی دهد ؟
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
cn.Open "provider=Microsoft.jet.OLEDB.4.0;Data Source=anbar.mdb"
cn.CursorLocation = adUseClient
rs.Open "select * from bookzaban where family like '" & cfamily & "' and name like '" & cname & "'", cn
Set Me.DataGrid1.DataSource = rs.DataSource
این هم برنامه ارتباطی دیتاگرید با بانک که جواب می ده
از برنامه آقای یاوری هم استفاده کرده ام ولی هیچ تغییری مشاهده نمی کنم درواقع مثل این است که اصلا اتصال رو برقرار نمی کنه ؟
لطفا من را راهنمایی کنید .
با تشکر از کلیه دوستان
yavari
جمعه 07 مهر 1385, 08:17 صبح
سلام
من اجازه پاک کردن و ویرایش در دیتاگرید رو هم فعال کرده ام
روش کار این لوپی که گذاشتم به صورت دستیه نه اینکه شما از پراپرتی خود دیتا گرید استفاده کنید .
شما کلا ایجاد کانکشن و اتصال و حذف و ویرایش و مشاهده رو باید دستی کدنویسی کنین ، کار سختی هم نیست ، فک میکنم با انجام این کار مشکلتون حل بشه !
موفق باشید
adhami
شنبه 08 مهر 1385, 08:11 صبح
با سلام
با توجه به کدی که من گذاشتم مشخص می شودکه من برقراری اتصال و پرسیدن پرس و جو را با کد نویسی نوشته ام .
قسمت که مربوط به پاک کردن است رو هم از کد شما نوشته ام . ولی همانطوری که گفتم جواب نمی ده ؟
آقای یاوری در مورد این کد (SendKeys ("{DEL}" لطفا توضیح بدهید ؟
ممنون
yavari
یک شنبه 09 مهر 1385, 14:38 عصر
سلام
با توجه به کدی که من گذاشتم مشخص می شودکه من برقراری اتصال و پرسیدن پرس و جو را با کد نویسی نوشته ام .
قسمت که مربوط به پاک کردن است رو هم از کد شما نوشته ام . ولی همانطوری که گفتم جواب نمی ده ؟
ببین عزیزم ! می فهمم چی میگی ! اولا اینکه میدونم اتصالتون دستی کدنویسی شده اما من منظورم این بود که اجازه پاک کردن و ویرایش در دیتاگرید رو از طریق پراپرتی غیرفعال کنین این یک !
دو اینکه کدی که من گذاشتم فقط سطر دیتاگریدو حذف میکنه نه اینکه رکوردو از بانک حذف کنه ، این موردو خودتون دستی زحمتشو بکشید !
سعی خودتونو بکنید اگه نتونستید بگید یه سمپل بذارم !
آقای یاوری در مورد این کد (SendKeys ("{DEL}" لطفا توضیح بدهید ؟
این خط عمل کلید Delete کی بوردو فعال میکنه !
موفق باشید
adhami
دوشنبه 10 مهر 1385, 07:35 صبح
سلام
می شه لطفا یک سمپل بذارین .
ممنون می شم.
yavari
دوشنبه 10 مهر 1385, 19:40 عصر
سلام
می شه لطفا یک سمپل بذارین .
ممنون می شم.
سلام
سعی کردم از کانکشنای خودت استفاده کنم ! :خجالت:
موفق باشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.