PDA

View Full Version : Refresh شدن vsflexgrid پس از ورود اطلاعات



davood59
یک شنبه 22 دی 1387, 08:47 صبح
سلام دوستان؛
یک سوالی برام پیش اومده که اگه امکانش هست جوابمو بدید.
ببینید من بعد از اینکه کاربر اطلاعاتش رو وارد کرد و پیغامی مبنی بر "آیا مایل به بروز رسانی هستید؟" پیغام " اطلاعات به درستی به روز شد" رو براش نشون میدم. طبق کد ذیل. حالا من یک سوال دارم, چجوری به محض اینکه پیغام دوم به کاربر نشون داده شد، vsflexgrid رو رفرش کنم؟ یعنی کاربر بدون اینکه برنامه رو ببنده و دوباره اجرا کنه بره پایین لیست و اسمی رو که وارد کرده بدون زدن کلیدی و یا دکمه ای مبنی بر بروز رسانی فوراً لیست رو بصورت آپدیت شده ببینه.
اینهم کد:


If MsgBox("اطلاعات بدرستي بروز شد" & vbCrLf & "آيا مايل به بروز رساني ليست هستيد ؟", vbInformation + vbMsgBoxRtlReading + vbYesNo + vbMsgBoxRight) = vbYes Then


Form1.ShowGrid Form1.VS.DataRefresh


End If
Unload Me



لازم به ذکره که من نام vsflexgrid رو به vs تغییر دادم و در این حالت vb به من خطای type mismatch رو میده. و روی این دستور (vs.datarefresh ) خطا میگیره.
با تشکر

hrj1981
یک شنبه 22 دی 1387, 08:51 صبح
گريد خود را با چه رابطي به بانك اطلاعاتي متصل نموده ايد ؟آن را Refresh كنيد.

davood59
یک شنبه 22 دی 1387, 09:29 صبح
با این کد وصلش کردم ؛



Public Sub ShowGrid(StrSQL As String)
ConnectDB

Dim Rs As New Adodb.Recordset
If Rs.State = 1 Then Rs.Close
If StrSQL = "" Then
Rs.Open "SELECT lname,fName,fathername,nshen,sbirth,birthdate FROM personnel ORDER BY ID ASC", Conn, adOpenStatic, adLockOptimistic
Else
Rs.Open StrSQL, Conn, adOpenStatic, adLockOptimistic
End If

Set Me.VS.DataSource = Rs

DoEvents

End Sub


حالا چه جوری کد رو بنویسم؟

mpmsoft
یک شنبه 22 دی 1387, 09:49 صبح
Rs.Requery
Set Me.VS.DataSource = Rs

davood59
یک شنبه 22 دی 1387, 10:11 صبح
سلام آقا مهرداد؛ چه عجب معلوم هست کجایی؟ یه چند روزی تشریف نداشتید؟ مهرداد جان من کد رو اضافه کردم ولی عمل نکرد، میشه بگی کجاش ایراد داره؟ به احتمال زیاد من کد رو جایی که باید ننوشتم ! درسته؟



Public Sub ShowGrid(StrSQL As String)
ConnectDB

Dim Rs As New Adodb.Recordset
If Rs.State = 1 Then Rs.Close
If StrSQL = "" Then
Rs.Open "SELECT lname,fName,fathername,nshen,sbirth,birthdate FROM personnel ORDER BY ID ASC", Conn, adOpenStatic, adLockOptimistic
Else
Rs.Open StrSQL, Conn, adOpenStatic, adLockOptimistic
End If

' Set Me.VS.DataSource = Rs
Rs.Requery
Set Me.VS.DataSource = Rs

DoEvents

End Sub

vbhamed
چهارشنبه 25 دی 1387, 23:17 عصر
Public Sub ShowGrid(StrSQL As String)
ConnectDB

Dim Rs As New Adodb.Recordset
If Rs.State = 1 Then Rs.Close
If StrSQL = "" Then
Rs.Open "SELECT lname,fName,fathername,nshen,sbirth,birthdate FROM personnel ORDER BY ID ASC", Conn, adOpenStatic, adLockOptimistic
Else
Rs.Open StrSQL, Conn, adOpenStatic, adLockOptimistic
End If

' Set Me.VS.DataSource = Rs
Rs.Requery
Set Me.VS.DataSource = Rs

DoEvents

End Sub



سلام
دستور زير رو بنويسيد



Set Me.VS.DataSource = Nothing

سپس دوباره دستورات بالا رو اجرا كنيد و به صورت معمولي به آخر گرايد بريد

vbhamed
یک شنبه 13 بهمن 1387, 09:58 صبح
سلام

اينم برنامه اصلاح شده

davood59
چهارشنبه 21 اسفند 1387, 08:39 صبح
سلام دوباره به آقا حامد
این آخرین نسخه جهت اصلاح به حضورتون ارسال میشه.

vbhamed
چهارشنبه 05 فروردین 1388, 12:37 عصر
سلام

اينم نسخه رفع مشكل شده