PDA

View Full Version : اضافه کردن اولین رکورد به دیتابیس



sahar_82614
چهارشنبه 25 فروردین 1389, 19:04 عصر
سلام دوستان
من چند تا سوال برنامه نویسی داشتم خواهش میکنم کمکم کنید
اولا بگم که دارم یک برنامه برای ورود و خروج پرونده دربایگانی با vb6 وsql2000 می نویسم که ارتباط انها را از طریق متد adodb و توابع و اشیا ado برقرار کردم وجداول مربوطه را در دیتابیس طراحی کردم بدین صورت که همه را از نوع nvarchar و تاریخها را datetime واجازه null را از همه برداشتم حالا اولین سوالم اینه که چرا وقتی جدولم خالیه ومیخوام اطلاعات جدید را برای اولین بار به جدولم اضافه کنم روی rst.movelast ایراد میگیره وbof,eof رو میخوادو دنبال یک رکورد میگرده چجوری این مشکل را برطرف کنم؟
کد مربوط به اضافه کردن را درزیر نوشتم

Private Sub KewlButtons2_Click()
Dim result As Integer
If Text8.Text = "" Or Text9.Text = "" Or Text2.Text = "" Or Text3.Text = "" Or Text4.Text = "" Then
result = MsgBox(" !لطفا اطلاعات را بطور کامل وارد کنيد ", vbOKOnly, "before add ")
Else
cnn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=bayegani;Data Source=sh"
rst.Open "bahar", cnn, adOpenKeyset, adLockOptimistic, adCmdTable
rst.MoveLast
rst.AddNew
rst!pno1 = Combo1.Text
Combo1.Refresh
rst!pno2 = Text1.Text
rst!Name = Text2.Text
Combo6.Refresh
rst!elat = Text3.Text
rst!date1 = Text4.Text
rst!date2 = Text5.Text
rst!comment = Val(Text10.Text)
Combo7.Refresh

Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text8.Text = ""
Text9.Text = ""
Text10.Text = ""
rst.Update
rst.Close
cnn.Close
Set cnn = Nothing
Set rst = Nothing
End If
end sub
این سوال اولم بود اگه حضرات عنایت کنند سوال بعدی روبگم:گیج::ناراحت:

ali682344
چهارشنبه 25 فروردین 1389, 19:21 عصر
سلام بايد قبل از دستور move last يا هر move ديگه چك كني كه ركوردي در جدول ثبت شده يا نه
با كد زير مي توني چك كني:
If rst.RecordCount > 0 Then rst.MoveLast

HjSoft
پنج شنبه 26 فروردین 1389, 14:06 عصر
سلام ، دلیل اینکه ارور میگره چون تو دیتابیس هیچ رکوردی نیست ، بعد شما میگی برو آخری میگه EOF واسه همین میتونی rst.MoveLast رو حذف کنی . چون اونطوری که من دیدم نیازی نیست . یعنی خودکار وقتی شما مینویسی addnew به آخرین رکورد میره و یکی رو اضافه می کنه . موفق باشید

sahar_82614
پنج شنبه 26 فروردین 1389, 16:42 عصر
مچکرم هر دو روش رو امتحان کردم جواب گرفتم
سوال دوم اینکه بایگانی موردنظر شامل 120000 پرونده می باشد که هر سال حدود 10000 پرونده به آمار قبلی اضافه میشه آیابا همین روش ساده new table و تعریف چند فیلد بصورت زیر مشکلی ایجاد نمی شود من فقط جدول در دیتابیس تعریف کردم هیچ کار دیگه ای انجام ندادم لطفا اکه نیازه بگین

:قلب:

HjSoft
پنج شنبه 26 فروردین 1389, 18:46 عصر
دوست عزیز ، خوش بختانه شما چون از sql استفاده کردی ، مطمئن باش مشکلی پیش نمیاد . اما در صورتی که از اکسس استفاده می کردی با این موضوع به مشکل بر میخوردی . راستی sql جواب میده اما حجمش به معماری دیتابیس شما مثل فیلد ها بستگی داره ... اما در کل مشکلی پیش نمیاد .
موفق باشید .

sahar_82614
جمعه 27 فروردین 1389, 20:16 عصر
مچکرم ا:چشمک:
فقط یک سوال دیگه داشتم اونم اینکه چجوری datagrid رو با جدول مربوطه match کنم؟
منظورم اینه که عرض ستونها طبق محتوی جدول متغیر باشه
ودیگه اینکه میخوام datagrid کاملا توی فرم به نمایش در بیاد و نخوام با حرکت اسکرول ها بقیه اطلاعات رو ببینم
سایز فیلدهارو که کم میکنم کاملا همه رو نشون میده ولی خیلی ریز میشه
حالا فکر میکنم اگه عرض ستونهارو طبق محتوی انها تنظیم کنم کلی از عرض datagrid کم میشه
لطفا در اینمورد منو راهنمایی کنید!!!!!!!!!!!:متفکر:

HjSoft
جمعه 27 فروردین 1389, 22:55 عصر
واسه همه اینا میتونی از قابلیت Marque در vsflex استفاده کنی .

sahar_82614
شنبه 28 فروردین 1389, 00:13 صبح
این قابلیت رو کجا میتونم پیدا کنم؟
من برنامم رو توی ویژوال بیسیک نوشتم

HjSoft
شنبه 28 فروردین 1389, 13:14 عصر
اینو در ابزار Vsflex میتونی پیدا کنی . اما من متوجه نشدم می خوای دقیقا با grid چه کار کنی ، میشه بیشتر توضیح بدی .

sahar_82614
شنبه 28 فروردین 1389, 21:42 عصر
میخوام وقتی اطلاعات جدول توی دیتاگرید به نمایش در میاد نخوام برای دیدن بقیه ستونها از نوار اسکرول استفاده کنم و همه را یکجا در فرم به نمایش در بیاره
خواستم عرض ستونهامو کم کنم ولی دقیقا نمیدونم چجوری کلیه ستونهامو در properties datagrid تعریف کنم اگه راه بهتری بلدید لطفا بهم بگین
ممنون:چشمک:

shoeyb1990
پنج شنبه 16 اردیبهشت 1389, 02:56 صبح
میخوام وقتی اطلاعات جدول توی دیتاگرید به نمایش در میاد نخوام برای دیدن بقیه ستونها از نوار اسکرول استفاده کنم و همه را یکجا در فرم به نمایش در بیاره
خواستم عرض ستونهامو کم کنم ولی دقیقا نمیدونم چجوری کلیه ستونهامو در properties datagrid تعریف کنم اگه راه بهتری بلدید لطفا بهم بگین
ممنون:چشمک:
دوست عزیز میتونی روی دیتا گرایدت کلیک راست کنی و گزینه ی Edit رو بزنی وبه صورت دستی میزان فاصله بین فیلد ها رو مشخص کنی

همیشه موفق باشید

HjSoft
چهارشنبه 29 اردیبهشت 1389, 08:59 صبح
از چه گریدی استفاده میکنی ؟