PDA

View Full Version : 2سوال: مشکل با دستور insert و کپی یک فیلد در فیلد دیگر در چندین رکورد



saeed hg
جمعه 21 مرداد 1390, 14:58 عصر
سلام دوستان. من تا حال با access کار نکردم اما الان نوشتن یه برنامه رو که بانکش با اکسسه رو دارم تموم میکنم و 2تا سوال دارم.

1- یه جدول دارم با 7 کالمن و موقع insert کردن به جدول من 4تا کالمن رو می خوام مقدار دهی کنم و 3تای بعدی رو نمی خوام مقدار بدم و ویبی دات نت ارور میده و میگه که تعداد کالمن های جدول و تعداد کالمن هایی که مقدار بهش دادید یکسان نیست. چه جوری این مشکل رو حل کنم؟

2- می خوام با یه کوئری در اکسس تمام مقادیر فیلد1 رو در فیلد2 کپی کنم. یعنی من الان مثلاً 12 تا رکورد در این جدول دارم که فیلدهای 1 تمام رکوردها مقداری (مثلا 1 یا 6 یا ...) دارند و فیلدهای 2 تمام رکوردهاخالی هستند،
چی کار کنم؟

mazoolagh
جمعه 21 مرداد 1390, 16:45 عصر
1- طراحی جدول رو چک کنین برای فیلدهای مورد نظر ویژگی required مقدارش true نباشه. هنگام insert کردن رکورد جدید مقدار این فیلدها رو dbnull بگذارین.

2-

UPDATE table_name SET field2=field1

saeed hg
جمعه 21 مرداد 1390, 17:18 عصر
1- طراحی جدول رو چک کنین برای فیلدهای مورد نظر ویژگی required مقدارش true نباشه. هنگام insert کردن رکورد جدید مقدار این فیلدها رو dbnull بگذارین.


[/VB]

میشه یه مثال بزنید و یه خط کد بزارید که سینتکسش رو ببینم. dbnull رو بلد نیستم

این سی ام دیمه.

cmd.CommandText = "insert into tbl_Amanat values('" & txt_UserId.Text & "','" & txt_bookid.Text & "','" & mtb_issueDate.Text & "','" & mtb_returnDate.Text & " ')"


فیلدهای takhirو tedadetakhirو pass رو بعدا باید مقدار دهی کنم.
فیلد pass از نوع yes/no که ویژگی required نداره و مقدار دیفالتش هم 0 هستش، اینو باید چی کارش کنم؟
این جور مقدار بهش میدم

cmd.Parameters.AddWithValue("pass", 0)

ممنون

saeed hg
جمعه 21 مرداد 1390, 17:48 عصر
کدهای زیر رو اضافه کردم


cmd.Parameters.AddWithValue("takhir", DBNull.Value)
cmd.Parameters.AddWithValue("tedadetakhir", DBNull.Value)


اما ارور زیر نمایش داده میشه

Number of query values and destination fields are not the same.

saeed hg
جمعه 21 مرداد 1390, 20:09 عصر
سی ام دی رو به صورت زیر تغییر دادم اما این دفعه اررور missmatch in cretria میده . لطفا راهنمایی کنید


cmd.CommandText = "insert into tbl_Amanat values ('" & Val(txt_UserId.Text) & "','" & Val(txt_bookid.Text) & "','" & mtb_issueDate.Text & "','" & mtb_returnDate.Text & "','" & " takhir = " & DBNull.Value & "','" & " tedadetakhir = " & DBNull.Value & "','" & " pass = " & DBNull.Value & "')"

mazoolagh
شنبه 22 مرداد 1390, 21:09 عصر
اون فیلدهایی که required نیستن اصلا لازم نیست در commandtext ظاهر بشن. مقادیر default اون ها رو در طراحی جدول مشخص کنین (اگر لازم دارن).

وقتی در دستور Insert into فیلدها رو مشخص نکنین باید برای تمام فیلدها مقداردهی کنین. شما دستورتون رو بصورت کلی زیر اصلاح کنین:

CMD.COMMANDTEXT="INSERT INTO tbl_amanat ([userid],[bookid],...) VALUES(@USERID,@BOOKID,....)"
CMD.PARAMETERS.ADDWITHVALUE("@USERID",txt_UserId.Text)
CMD.PARAMETERS.ADDWITHVALUE("@BOOKID",(txt_bookid.Text)
...

reza2371
جمعه 14 فروردین 1394, 13:43 عصر
با سلام خدمت اساتید محترم
تشکر از راهنمایی های شما ولی مشکلم حل نشده . میشه بیشتر توضیح بدید.
توی اکسس یک فرم دارم که به دو جدول متصل است
جدول اول اطلاعات پرسنلی افراد و جدول دوم یک سری مشخصات و اطلاعات جدید می باشد.
در فرم وقتی کد پرسنلی افراد را وارد میکنم نام افراد و کد ملی را نمایان میکند و کد پرسنلی وارده را در جدول دوم به همراه اطلاعات جدید دیگر ذخیره میکند.
حال میخوام کد ملی که در فرم نمایش میده در جدول دوم به صورت اتوماتیک ذخیره کنه.
لطفا کمکم کنید. فوووووووووووری مممنووووووونم