PDA

View Full Version : سوال: کپی یک رکورد با شرایط متغییر



Rasool-GH
یک شنبه 26 مهر 1394, 10:04 صبح
سلام
با چه دستوری میشه یک کپی جدید از یک رکورد تهیه کرد به صورتی که چند فیلد اون خالی باشه .

مثلا میشه یک رکورد رو کپی کرد و بعد اون فیلد های مورد نظر رو از داخلش پاک کرد .

ehsanshahi
یک شنبه 26 مهر 1394, 11:59 صبح
سلام
با چه دستوری میشه یک کپی جدید از یک رکورد تهیه کرد به صورتی که چند فیلد اون خالی باشه .

مثلا میشه یک رکورد رو کپی کرد و بعد اون فیلد های مورد نظر رو از داخلش پاک کرد .
سلام ...سوال واضح نیست

Rasool-GH
یک شنبه 26 مهر 1394, 15:13 عصر
سلام
من میخوام یک رکورد شامل 65 فیلد رو کپی کنم ولی دو مورد از فیلدها نباید کپی بشه . فیلد ادرس و نام رو نمیخوام کپی بشه . دنبال روشی میگردم که به جای اینکه تک تک فیلدهایی که نیاز به کپی شدن داره مشخص کنم (مثل Insert Into) فقط فیلدهایی که نیاز به کپی شدن نداره رو مشخص کنم
کاربردش در جاییه که کاربر رکوردی مشابه میخواد ثبت کنه و فقط دو مورد از اطلاعات تغییر میکنه .

Abbas Amiri
سه شنبه 28 مهر 1394, 20:58 عصر
سلام
من میخوام یک رکورد شامل 65 فیلد رو کپی کنم ولی دو مورد از فیلدها نباید کپی بشه . فیلد ادرس و نام رو نمیخوام کپی بشه . دنبال روشی میگردم که به جای اینکه تک تک فیلدهایی که نیاز به کپی شدن داره مشخص کنم (مثل Insert Into) فقط فیلدهایی که نیاز به کپی شدن نداره رو مشخص کنم
کاربردش در جاییه که کاربر رکوردی مشابه میخواد ثبت کنه و فقط دو مورد از اطلاعات تغییر میکنه .

سلام
با دستور Insert Into بدون درج اسامی فیلدها و بصورت کلی رکورد مورد نظر را کپی کنید و بعدبا دستور Update دوفیلد دلخواه را مقداردهی کنید.
این خیلی راحت تر از درج تمامی 63 فیلد در دو طرف عبارت Insert Into است.

Rasool-GH
سه شنبه 28 مهر 1394, 22:18 عصر
سلام جناب امیری . ممنون از راهنماییتون ولی در مورد فیلدهایی که امکان تکراری وارد کردن اونها نیست چکاری میشه کرد . مثلا ID

Abbas Amiri
سه شنبه 28 مهر 1394, 22:56 عصر
سلام جناب امیری . ممنون از راهنماییتون ولی در مورد فیلدهایی که امکان تکراری وارد کردن اونها نیست چکاری میشه کرد . مثلا ID

سلام
در این مورد می توانید از نمونه زیر الگو بگیرید:

Dim rs1 As DAO.Recordset, rs2 As DAO.Recordset
Dim fld As DAO.Field
Set rs1 = CurrentDb.OpenRecordset("SELECT * FROM SourseTable WHERE Criteria")
Set rs2 = CurrentDb.OpenRecordset("DestTable")
For Each fld In rs1.Fields
If StrComp(fld.Name, "Field1", vbTextCompare) <> 0 _
And StrComp(fld.Name, "Field2", vbTextCompare) <> 0 Then
rs2.AddNew
rs2(fld.Name) = Nz(fld)
rs2.Update
End If
Next
Set rs1 = Nothing
Set rs2 = Nothing