PDA

View Full Version : movenext



mahmoodreza
پنج شنبه 26 شهریور 1383, 23:21 عصر
من از این دستور استفاده میکنم ولی فقط یکبار فرم منو جلو میبره و دیگه نمیبره
میخواستم یک نگاه به کد من بندازید




Private Sub btnNext_Click()

Dim cnnNorthwind As New Connection
Dim rsCustomers As Recordset

cnnNorthwind.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=e:/projects/telefonbuch/telefon.mdb"



'Create recordset reference and set its properties.

Set rsCustomers = New ADODB.Recordset
rsCustomers.CursorType = adOpenKeyset
rsCustomers.LockType = adLockOptimistic

'Open recordset and print a test record.
rsCustomers.Open "telefon", cnnNorthwind, , , adCmdTable

If rsCustomers.EOF = False Then
rsCustomers.MoveNext

txtname.Text = rsCustomers.Fields("Name").Value
txtvname.Text = rsCustomers.Fields("Vorname").Value
txttel.Text = rsCustomers.Fields("tel").Value
txtfax.Text = rsCustomers.Fields("fax").Value
txtadd.Text = rsCustomers.Fields("add").Value
Else
MsgBox ("You are at the end")
End If

MsgBox (rsCustomers.Fields("Name").Value)

rsCustomers.Close


End Sub

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

کم حوصله
جمعه 27 شهریور 1383, 11:24 صبح
دوست عزیز مشکل شما اینجاست که هر بار که رکورد را می خواهید حرکت بدهید همانجا رکوردست را باز می کنید
خوب در نتیجه چون شما همان لحظه رکوردست را باز کردید طبیعی است که مکان نمای رکوردست شما روی اولین رکورد باشد و با زدن کلید بعدی به رکورد دوم جدول برود و هر بار که شما این کلید را می زنید همین کار مجدد تکرار می شود
حال راه حل چیست

قدم اول :
متغییر های رکوردست و کانکشن را در قسمت جنرال فرم تعریف کنید که در تمام پروسیجر های داخل فرم قابل دسترسی باشد ( برای این فرم به عنوان متغییر های عمومی تعریف می شود )

قدم دوم :
شما کانکشن اتصال به بانک و اتصال رکوردست به جدول را در قسمت فرم لود قرار بدهید ( یعنی یک بار رکوردست را بازکنید و دیگر نبندید) و چون این رکوردست در فرم جاری به عنوان متغییر عمومی است همه جا می توانید آن را صدا بزنید

قدم سوم :
حا در کامندی که جهت حرکت کردن بر روی رکورد ست را دارید فقط دستور چک کردن انتها نبودن رکوردست را بگذارید جهت جلوگیری کردن از بروز خطا و دستور حرکت بر روی رکورد ست

کم حوصله
جمعه 27 شهریور 1383, 11:47 صبح
اینم نمونه

mahmoodreza
جمعه 27 شهریور 1383, 17:38 عصر
ای قربان دسته شما درد نکنه.. ممنون از توضیح
داشتم خل ه چل میشدم دیگه :D

mahmoodreza
جمعه 27 شهریور 1383, 17:52 عصر
مثل همیشه دوستان به من کمک کردند
ممنون تقتی کم جوصله ی با حوصله که برنامه من را مرتب کردی و بهم دادی. :flower: