PDA

View Full Version : اضافه کردن یک رکورد در vb



abbas8786
یک شنبه 20 شهریور 1384, 13:20 عصر
سلام دوستان

من یک برنامه با vb6 نوشتم و از بانک access استفاده کردم.

در برنامه یک dbgrid گذاشتم که اطلاعاتی را با توجه به پرکردن text box نمایش می دهد.

می خواهم از یک رکورد نشان داد شده در dbgrid کپی گرفته و آنر ا در همانجا paste کنم.

به عبارتی می خواهم که یک رکورد جدید اضافه کنم ولی با copy و paste کردن.

لطفا راهنمایی بفرمائید.



متشکرم.

dr_g
یک شنبه 20 شهریور 1384, 13:46 عصر
با سلام
دوست عزیز ابتدا باید با دستور : ( متن مورد نظر) Clipboard.SetText متن مورد نظر رو به کلیپ برد انتقال بدی
بعد در جایی که می خوای قرار بدی با دستور Text1.Text = Clipboard.GetText که در اینجا تکست1 به فرض مثال نوشته شده است پیس کنی

abbas8786
یک شنبه 20 شهریور 1384, 16:46 عصر
سلام

دستور جنابعالی کاملا درست است.

ولی همانطور که در بالا گفته شده ، من می خواهم یک سطر انتخاب شده از dbgrid را به clipboard فرستاده و سپس در انتهای dbgrid آن را paste نمایم.

لطفا در این زمینه مرا راهنمایی کنید.

متشکرم.

dr_g
دوشنبه 21 شهریور 1384, 13:08 عصر
با سلام
دوست عزیز من درست متوجه سوالت نشدم ولی این قطعه کد بر هر سطر از گرید که کلیلک می کنی محتوای تمام سطررو به کلیپ برد می فرسته

Clipboard.Clear
For i = 0 To 2
Clipboard.SetText Clipboard.GetText & " " & Dg.Columns(i).Text
Next

که 2 در اینجا تعداد ستونهای گرید هستش

abbas8786
سه شنبه 22 شهریور 1384, 10:30 صبح
سلام

دستت در نکنه

کد شما کاملا در ست است و جواب می دهد ( برا ی کپی در clipboard)
با کد شما سطر dbgrid را کپی کردم و برای paste کردن از کد زیر استفاده کردم.

For i = 0 To 2
DBGrid1.Columns(i).Text =Clipboard.GetText
next i

ولی هرچه تلاش کردم نشد.چون اطلاعات کل clipboard را در هر ستون کپی می کند.
یعنی اطلاعات ستون 0 تا 2 را در ستون های 0 تا 2 کپی میکند.

نمی دانم روش paste کردن در dbgrid چگونه است.

لطفا راهنمایی بفرمائید.

dr_g
سه شنبه 22 شهریور 1384, 13:51 عصر
با سلام
دوست عزیز دستوری که شما بکار بردین اشتباهه
برای اینکه بتونین هر کلمه رو داخل یک سلول قرار بدین می توونین از اون فضای خالی که بین کلمات است استفاده کنین وبا استفاده از توابع رشته ای کلمات را از درون رشته استخراج کنین و درهر سلول کلمه مناسب با اون رو قرار بدین
cb=clipboard.gettext
(for i=1 to len(cb
(x=mid(cb,i,1
if x="" then
(w=mid(cb,1,i-1
end if
next

البته این دستورات فقط اولین کلمه رو استخراج می کنه و به راحتی می توونی با کمی تغییر واسه همه کلمات همین کارو کنی.چون من در حال حاضر روی کامپیوترم VB ندارم و این دستورات رو همین جا نوشتم.اگه اشتباه بود خودت اصلاح کن

abbas8786
سه شنبه 22 شهریور 1384, 15:58 عصر
دستور جنابعالی درست و به شرطی کار می کند که در ستون یک کاراکتر و یا تعداد آنها همیشه ثابت ( 2 یا 3 و یا ...) باشد.

ولی 3 تا از ستون های grid من دارای تعداد کاراکتر های متفاوتی است. یعنی ممکن است یکبار 5 کاراکتر باشد و بار دیگر 25 کاراکتر.

چه راه حلی برای این کار دارید.

آیا این روش کپی از اطلاعات و پیست کردن آن مشکل مرا حل خواهد کرد.

امیدوارم د ر کل منظور من را فهمیده باشی که چه کا ر می خواهم بکنم.

متشکرم.

ehsan_ansaripoor
پنج شنبه 24 شهریور 1384, 00:17 صبح
دوست عزیز چرا برای اینکار از دستورات SQL و کار با بانک اطلاعاتی استفاده نمی کنی به این ترتیب:
insert into Table (filed1,filed2) select filed1,filed2 from table where filed1=textbox
یا با اضافه کردن دوباره رکورد به داخل Table با دستورات Vb