# Native Code > برنامه نویسی در 6 VB > مطالب مرتبط با بانکهای اطلاعاتی در VB6 >  کلیک روی یک رکورد از data grid

## paysokhan

چطور می شود در حال اجرا کاربر بتواند روی یکی از رکوردهای datagrid یا هر جدول دیگری کلیک کند و صفحه ای دیگر باز شود تا بتواند مثلا اطلاعات آن رکورد را ویرایش کند
ممنون از راهنمایی شما

----------


## xman_dj

Private Sub VS_DblClick()
EditContact Me.VS.TextMatrix(VS.Row, 1)

    
End Sub


Private Sub EditContact(ID As Long)

    If VS.Rows = 1 Then MsgBox "moredi baraye edit peyda nashod", vbExclamation + vbMsgBoxRtlReading, "error": Exit Sub


'========hala shoma id ro darin har kari ke mekhay metoni bahash anjam bedi mesle edit ya delete==========
    
End Sub


در ضمن اینجا vs  اسم VSFlexGrid هست چون از  ocx ----- VSFlexGrid استفاده شده

----------


## paysokhan

دوست عزیز من که چی متوجه نشدم 
آیا این کار با دیتاگراید امکان دارد؟
آیا با دی بی گراید امکان دارد؟
اگر با مثال توضیح بدید ممنون می شم

----------


## rezankh

با سلام
من خودم اينجوري استفاده كردم البته با vsflexgrid نشد و يك تاپيك همدر اين بار همين امشب گذاشتم بلكه به جواب برسم.
ولي در مورد ديتاگريد و Adodc :
اين بدردتون ميخوره

----------


## paysokhan

روش شما را استفاده کردم و کاملا خوب بود اما برای جایی که یک combobox باشد و اطلاعات آن کامبو را از یک دیتابیس دیگر بگیریم و در دیتابیس دیگر ذخیره کنیم برنامه قفل می کند و خارج می شود ایا راهی هست؟

----------


## paysokhan

برای سوال من راهی هست؟

----------


## paysokhan

واقعا گیر افتادم یکی کمک کنه؟
چند تا راه را پیدا کردم ولی راحت نیستند
با adodc کار می کنم
چطور می شود در حال اجرا کاربر بتواند روی یکی از رکوردهای datagrid یا هر جدول دیگری کلیک کند و صفحه ای دیگر باز شود تا بتواند مثلا اطلاعات آن رکورد را ویرایش کند

روش شما را استفاده کردم و کاملا خوب بود اما برای جایی که یک combobox باشد و اطلاعات آن کامبو را از یک دیتابیس دیگر بگیریم و در دیتابیس دیگر ذخیره کنیم برنامه قفل می کند و خارج می شود ایا راهی هست؟

----------


## اوبالیت به بو

> رکوردهای datagrid یا هر جدول دیگری


اين جمله تناقص داره.



> چطور می شود در حال اجرا کاربر بتواند روی یکی از رکوردهای datagrid یا هر جدول دیگری کلیک کند و صفحه ای دیگر باز شود تا بتواند مثلا اطلاعات آن رکورد را ویرایش کند


فرض كنيد DataGrid من 2 تا ستون به نام Names و ID داره. اينجوري مي تونم مقاديرش رو بگيرم:

    Dim ID As Integer
    Dim Names As String
    ID = Val(DataGrid1.Columns(0).Value)
    Names = Str(DataGrid1.Columns(1).Value)
    MsgBox Str(ID)
    MsgBox Names
فقط شما سعي كن رويه ركورد كليك كني نه رويه Cell چون مقدار قبلي رو نشون مي ده و مجبوري يه بار ديگه كليك كني. حالا اين مقادير رو به هرجا كه مي خواي پاس بده.

----------


## paysokhan

دوست عزیز به نظرم منظور من را متوجه نشدید من می خواهم وقتی روی یک رکورد دوبار کلیک می کنم فرمی دیگر باز شود که در آن چند تکس باکس و یا کمبو باکس و هرچیز دیگر باشد که اطلاعات آن رکورد را نمایش بدهد و بتوان ویرایش کرد
ممنون می شوم اگر راهنمایی کنید

----------


## xxxxx_xxxxx

سلام
دوست عزيز مثالي كه آقاي rezankh گذاشتند درسته ديگه. حالا شما Combo مي خواين يكم تغييرش بديد. كاري نداره كه. اگرنه هم بانكتون رو بزاريد اينجا تا يك نفر زحمتشو بكشه.

----------


## paysokhan

> سلام
> دوست عزيز مثالي كه آقاي rezankh گذاشتند درسته ديگه. حالا شما Combo مي خواين يكم تغييرش بديد. كاري نداره كه. اگرنه هم بانكتون رو بزاريد اينجا تا يك نفر زحمتشو بكشه.


 

سلام دوست عزیز دارم دانلودش می کنم انشاءالله کارم راه بیفته اگه راه نیفتاد بانکم رو می زارم تا زحمتش را بکشید

----------


## xxxxx_xxxxx

گويا برنامه رو تو يك تاپيك ديگه گذاشتيد.
دوست عزيز سه تا تاپيك براي همين سوالتون ايجاد كرديد، ما رو كه گيج كرديد. نفهميديم چي شد.
بالاخره هرچي شد هموني شد كه شما مي خواستيد.
يه نگاه به فايل ضميمه بياندازيد.

موفق باشيد.

----------


## xxxxx_xxxxx

دوست عزيز چرا از DataCombo استفاده كرديد؟ اگر مي خواين DataCombo داشته باشيد تو بانك هم فيلدهاتون بايد كمبو باشند. كه نيستند. حالا كه تو بانك فيلد كمبو نداريد پس تو فرم ها هم بايد ComboBox استفاده كنيد و به صورت دستي داده ها رو از بانك بگيريد و تو Combo بزارين و براي ذخيره كردن هم به همين ترتيب.

----------


## paysokhan

> دوست عزيز چرا از DataCombo استفاده كرديد؟ اگر مي خواين DataCombo داشته باشيد تو بانك هم فيلدهاتون بايد كمبو باشند. كه نيستند. حالا كه تو بانك فيلد كمبو نداريد پس تو فرم ها هم بايد ComboBox استفاده كنيد و به صورت دستي داده ها رو از بانك بگيريد و تو Combo بزارين و براي ذخيره كردن هم به همين ترتيب.


 

میشه همین راه رو در فایل من اجرا کنید
به خدا خیلی برات دعا می کنم

----------


## paysokhan

چون که می خواستم مثلا برای وضعیت که شامل(موجود یا مفقود) می باشد از طریق adodc به آن مقدار دهی کنم تا قابلیت ویرایش را داشته باشد
ضمنا این مشخصات قبل از اینکه وارد جدول شوند در فرمی شبیه edit اطلاعات وارد می شود یعنی کاربر اول در صفحه new اطلاعات را وارد می کند و در آنجا باید گزینه های انتخاب داشته باشد
اگر شما راه دیگری دارید استفاده می کنیم

----------


## xxxxx_xxxxx

يعني همين "موجود" و "مفقود" رو هم كاربر وارد مي كنه. از ابتدا تو بانك نيست؟

----------


## xxxxx_xxxxx

در صورتي كه جواب پست قبلم بله باشه:
ساده هست نيازي به توضيح نداره. همونطور كه گفتم كليه عمليات مربوط به Combo ها به صورت دستي انجام ميشه.
انشاءا... كه ديگه كارتون راه افتاد
موفق باشيد/

----------


## paysokhan

> در صورتي كه جواب پست قبلم بله باشه:
> ساده هست نيازي به توضيح نداره. همونطور كه گفتم كليه عمليات مربوط به Combo ها به صورت دستي انجام ميشه.
> انشاءا... كه ديگه كارتون راه افتاد
> موفق باشيد/


 
خیلی ممنون از زحمات شما دوست گرامی
باز اگر سوالی بود مزاحمت می شوم

----------


## paysokhan

در پروژه موجود وقتي مي خواهيم ركورد را ويرايش كنيم با كد updata همه عوض مي شود غير از data combo كه باز با تغيير موردش(( مثلا شامل دو كلمه موجود و مفقود است)‌وقتي در ثبت اوليه روي موجود است و در ويرايش مي خواهيم از موجود به مفقود عوض كنيم تغييرش را ذخيره نم يكند
راهش چيست؟

----------


## xxxxx_xxxxx

متوجه نشدم!



> در پروژه موجود وقتي مي خواهيم ركورد را ويرايش كنيم با كد updata [منظور recordset.update هست؟] همه عوض مي شود غير از data combo [ما كه datacombo نداريم!] كه باز با تغيير موردش(( مثلا شامل دو كلمه موجود و مفقود است)‌وقتي در ثبت اوليه روي موجود است و در ويرايش مي خواهيماز موجود به مفقود عوض كنيم تغييرش را ذخيره نم يكند 
> راهش چيست؟


كلاً متوجه نشدم :متفکر: 
من فايل پست هفدهم رو دانلود كردم ولي قسمت آبي رنگ جمله شما توش مشكلي نداره!
قسمت هاي قرمز رنگ هم كه اصلا تو برنامه موجود نيستند!
لطفاً كامل توضيح دهيد مشكل كجاست!

----------


## ramsess

سلام دوست من این سوال درد من هم بود که کسی جواب نداد ولی جوابش رو پیدا کردم
Dim strQ As String
 strQ = "Select * From neww Where ID=" & Adodc1.Recordset.Fields("ID").Value
 DataEnvironment1.rsCommand1.Open strQ, DataEnvironment1.Connection1, adOpenDynamic, adLockOptimistic, 1
 DataReport1.Show
 Form2.Hide
 Form1.Show
توی خاصیت دابل کلیک دیتاگرید این رو بنویس نکته اینکه به جای neww اسم جدول خودت رو بزام و یه فیلد باید توی اکسس بسازی یا sql فرقی نداره بعد اسم اون رو id بزار و نوع اون رو aoutonumber بزار تا بتونه عددهای اتوماتیک و پشت سر هم رو تولید کنه اسمش رو هم بزار  id توی کارکردنش  شک نکن درست کار می کنه  مشکلی داشتی در خدمتم البته به جای DataReport1  می تونی اسم فرم خودت رو بزاری برای ویرایش یا هر کاردیگه

----------

