گمونم برای خوندن ستون های یک ردیف مجبور باشیم ابتدا روی اون ردیف قرار بگیریم بعد ستون هاش رو بخونیم.
مثلا اگه بخواید سطر 5 و ستون 1 رو بخونید باید از فرمان زیر استفاده کنید:
کد:
DataGrid1.Row = 4
MsgBox DataGrid1.Columns(0).Value
کد زیر هم مثل بالا عمل میکنه:
کد:
DataGrid1.Row = 4
DataGrid1.Col = 0
MsgBox DataGrid1.Text
توجه داشته باشید که سطرها و ستون ها از صفر شروع میشن.
ضمناً اگه مقدار اون خونه از DataGrid رو فقط بصورت رشته ای نیاز دارید، بجای خاصیت Value از خاصیت Text استفاده کنید. اینجوری تاریخ ها و عددها هم بصورت رشته به شما داده میشوند.
اگر این حدس من درست باشه که گفتم مجبوریم حتما روی ردیف مورد نظر قرار بگیریم بعد به ستون ها دسترسی داشته باشیم، اینجوری دیگه نیازی به DataGrid نیست و از Adodc هم میشه استفاده کرد:
کد:
Adodc1.Recordset.Move 4, 1
MsgBox Adodc1.Recordset.Fields(0).Value
نکته: هنگام استفاده از متد Move اگر پارامتر دوم رو مقدار 1 بدین، حرکت از اولین رکورد انجام میشه. اما اگه مقدار صفر بدین یا اینکه اصلا به پارامتر دوم مقدار ندین، در اینصورت به اندازه عددی که تو پارامتر اول مشخص کردین از رکورد فعلی به جلو حرکت می کنید.
نکته: تعداد سطرهای DataGrid از خاصیت DataGrid1.ApproxCount بدست میاد.
برای خواندن خانه ای که کاربر وارد آن میشود (روی آن Click میکند) از رویداد DataGrid_Click استفاده نکنید. بلکه باید از کد زیر استفاده کنید.
کد:
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
MsgBox DataGrid1.Columns(DataGrid1.Col).Value
End Sub
اگر میخواهید با عوض شدن رکورد، کاری انجام دهید هرگز از رویداد DataGrid_Click استفاده نکنید.
بلکه باید از رویداد Adodc_MoveComplete استفاده کنید.
در صورتی که با شیء Data کار می کنید از رویداد Data_Reposition استفاده کنید.
راستی این DBGrid چیه؟ تو VB6.0 داریم؟
به هر حال من نتونستم تاابعی پیدا کنم که ستر و ستون رو بعنوان ورودی بگیره و مقدار اون سلول رو بعنوان خروجی بده