-
Cut شدن رکورد های Data Grid
درود بر اساتید
من یک فرمی طراحی کردم که 3 تا Text داره که رکوردهایی که در این 3 تا Text نوشته میشه با زدن دکمه Start وارد یک Data Grid در همون فرم میشه ! حالا میخوام اطلاعاتی که در این Data Grid وارد شده و قابل مشاهده است با زدن دکمه Run وارد یک Data Grid دیگه در فرمی دیگه بشه و به نوعی این اطلاعات در Data Grid در فرمی دیگه کات بشه ! یا بازم به نوعی واضح تر رکورد ها از این جدودل Data Base به جدولی دیگه کات بشه !
* منظورم از کات شدن یعنی کپی رکورد ها به نوعی که اثری ازشون در Data Grid و جدول Data Base باقی نماند.
-
1 ضمیمه
نقل قول: کات شدن رکورد های Data Grid
تو این عکس کاملا مشخصه :
ضمیمه 123227
میخواهم با زدن دکمه Run رکورد های موجود در Data Grid فرم 1 به Data Grid فرم 2 منتقل بشه و Data Grid فرم 1 خالی از رکورد بشه !
دوستان به شدت به راهنمایی شما نیاز دارم.
-
نقل قول: کات شدن رکورد های Data Grid
شما برای اینکه بتونی این کارو بکنی احتیاج به چیز خاصی ندارید ، با همون Adodb یا Adodc که اطلاعات رو داحل جدول ریختی در دیتا گرید دوم یک رشته اتصال دیگه درست کن و Datasource مربوط به Grid2 رو به رشته اتصال جدید قرار بدی خودش اطلاعات رو نشون میده
-
نقل قول: کات شدن رکورد های Data Grid
نقل قول:
نوشته شده توسط
m.4.r.m
شما برای اینکه بتونی این کارو بکنی احتیاج به چیز خاصی ندارید ، با همون Adodb یا Adodc که اطلاعات رو داحل جدول ریختی در دیتا گرید دوم یک رشته اتصال دیگه درست کن و Datasource مربوط به Grid2 رو به رشته اتصال جدید قرار بدی خودش اطلاعات رو نشون میده
خب نه ! دوست من دیگه تا این حد بلدم !
من میخوام با زدن اون دکمه Run رکورد ها در Grid 1 کلا پاک بشن و وارد Grid 2 بشن ! این اتفاق باید در مورد Table های موجود در SQL هم بیفته !
-
نقل قول: کات شدن رکورد های Data Grid
دوستان نیازمند کمک شما هستم ! کسی ایده ای نظری چیزی نداره !؟ یا کلا این روش نوعیه و من تنها کسی نیستم که نمیدونم باید چیکار کنم !؟
-
نقل قول: کات شدن رکورد های Data Grid
من یک کلکی بهش زدم و قطعه کدی نوشتم که در واقع ، وقتی کاربر روی دکمه Run کلیک میکنه ! رکورد های موجود در Data Grid همگی با هم پاک بشند ! اما این اتفاق میفته ولی یک run time error میده که نمیدونم برای چی به این گیر میده !
On Error Resume Next
Adodc1.Recordset.MoveFirst
Adodc1.Recordset.Delete
DataGrid1.Refresh
Adodc1.Refresh
Timer5.Enabled = True
بیشتر مواقع به این "Adodc1.Recordset.MoveFirst" گیر میده ! مشکل چیه !؟ و چه جوری باید رفعش کنم !؟
-
نقل قول: کات شدن رکورد های Data Grid
نمی دونم چه برنامه ای دارید می نویسید که نیاز است اول اطلاعات در جدول موقتی ذخیره شود و بعد کاربر را ملزم کنید که با زدن Run اطلاعات به صورت دائم در جدول دیگر ذخیره شوند.
راه حل معقول برای این کار این است که شما می توانید از DataGrid هایی که اصلا به هیچ DataSource ی وصل نیستند ابتدا در فرم 1 نمایش دهید (مثل کنترل FlexGrid). بعد با زدن Run اطلاعات در جدول ثبت شوند و بعد در فرم دوم آنها را نمایش دهید.
-
نقل قول: کات شدن رکورد های Data Grid
خوب واسه این کار انقدر کش و قوس لازم نیست :
اولین Dgrid به Adodc1وصل هستش دومین DGrid هم به Adodc2 باید وصل بشه در واقع هر دو Adodc باید به یک جدول اشاره کنن موقعی که ران رو میزنی Dgrid1 رو از Adodc1 جدا کن یعنی Datasource رو برابر "" کن و عمل رفرش رو انجام بده و Adodc2 رو فال کن و رفرش کن. انقدر سختی نداره
-
نقل قول: کات شدن رکورد های Data Grid
نقل قول:
نوشته شده توسط
hmbarnamenevis
نمی دونم چه برنامه ای دارید می نویسید که نیاز است اول اطلاعات در جدول موقتی ذخیره شود و بعد کاربر را ملزم کنید که با زدن Run اطلاعات به صورت دائم در جدول دیگر ذخیره شوند.
راه حل معقول برای این کار این است که شما می توانید از DataGrid هایی که اصلا به هیچ DataSource ی وصل نیستند ابتدا در فرم 1 نمایش دهید (مثل کنترل FlexGrid). بعد با زدن Run اطلاعات در جدول ثبت شوند و بعد در فرم دوم آنها را نمایش دهید.
این دیتا گرید موقت چیه؟ من تا حالا چنین چیزی نشنیدم میشه بیشتر توضیح بدهید یا سورس چیزی برام بگذارید.
نقل قول:
نوشته شده توسط
m.4.r.m
خوب واسه این کار انقدر کش و قوس لازم نیست :
اولین Dgrid به Adodc1وصل هستش دومین DGrid هم به Adodc2 باید وصل بشه در واقع هر دو Adodc باید به یک جدول اشاره کنن موقعی که ران رو میزنی Dgrid1 رو از Adodc1 جدا کن یعنی Datasource رو برابر "" کن و عمل رفرش رو انجام بده و Adodc2 رو فال کن و رفرش کن. انقدر سختی نداره
یعنی چی؟ میشه یه مثال بزنید؟ یک برنامه کوچک در این رابطه بنویسید تا من از رو اون یاد بگیرم. ممنونم.
-
1 ضمیمه
نقل قول: کات شدن رکورد های Data Grid
-
نقل قول: کات شدن رکورد های Data Grid
نقل قول:
نوشته شده توسط
m.4.r.m
بفرما اینم نمونه سورس
آقا خیلی ممنون ! ولله گره ای از مشکلات من گشودی ! حالا یه سوال دیگه ! اگر اون Data Grid توی یک فرم دیگه باشه چی ؟ مثلا من Data Grid دوم تو فرم 2 !؟ بعد اینکه تو این مثال شما یک جدول هست و به صورت نمادین رکورد ها به Data Grid دوم میروند و با شروع دوباره برنامه رکورد ها سر جای اصلی بر میگردند !
من 2 تا جدول دارم مثل جدول شما مثل هم ! اما میخواهم Run که زده شدن رکورد ها برای همیشه به Data Grid دومی بروند !
-
نقل قول: کات شدن رکورد های Data Grid
پروژه استاد عزیزم m.4.r.m کاری بود و ازشون تشکر میکنم. شما میتونید دوتا جدول درست کنید و وقتی تو datagrid1 اطلاعات وارد شد، در باتون run دستور اضافه کردن رکورد رو به adodc2 بدین و از adodc1 پاک کنین و درمورد اینکه به فرم دیگه ای ارسال بشه خیلی ساده میباشد فقط کافیه به جای شئ که در فرمی بعدی هست نام فرم رو قبل از شئ مورد نظربیارید.مثلا:
Form2.Adodc1.Refresh
-
نقل قول: کات شدن رکورد های Data Grid
نقل قول:
نوشته شده توسط
iliaoofice1
پروژه استاد عزیزم m.4.r.m کاری بود و ازشون تشکر میکنم. شما میتونید دوتا جدول درست کنید و وقتی تو datagrid1 اطلاعات وارد شد، در باتون run دستور اضافه کردن رکورد رو به adodc2 بدین و از adodc1 پاک کنین و درمورد اینکه به فرم دیگه ای ارسال بشه خیلی ساده میباشد فقط کافیه به جای شئ که در فرمی بعدی هست نام فرم رو قبل از شئ مورد نظربیارید.مثلا:
Form2.Adodc1.Refresh
میفهمم چی میگید ! اما هدف اینکه رکورد ها از Table 1 واقع در پایگاه داده به Table 2 انتقال پیدا بکنند !
الآن همین اتفاقاتی میگید شما در پروژه دوست خوبمون "m.4.r.m" اعمال بکنید تا من منظور شما رو بهتر متوجه بشم !
-
نقل قول: کات شدن رکورد های Data Grid
شما میخواین که اطلاعات گرید 1 برای همیشه و کلی به گرید 2 منتقل بشه؟ و گرید2 در فرم دیگه ای باز بشه؟
این کد اطلاعات جدول2 رو به جدول 1 با دستورات sql میریزه :
Dim DB As Database
Set DB = OpenDatabase(App.Path & "\db.accdb", True)
DB.Execute "INSERT INTO Table1 In '" & App.Path & "\db.accdb' SELECT * FROM Table2 "
-
نقل قول: کات شدن رکورد های Data Grid
نقل قول:
نوشته شده توسط
iliaoofice1
شما میخواین که اطلاعات گرید 1 برای همیشه و کلی به گرید 2 منتقل بشه؟ و گرید2 در فرم دیگه ای باز بشه؟
این کد اطلاعات جدول2 رو به جدول 1 با دستورات sql میریزه :
Dim DB As Database
Set DB = OpenDatabase(App.Path & "\db.accdb", True)
DB.Execute "INSERT INTO Table1 In '" & App.Path & "\db.accdb' SELECT * FROM Table2 "
برای من خط دوم Error میگیره ! مگه نباید برای اینکار از شی واسط پایگاه داده Adodc استفاده کرد ؟
-
نقل قول: کات شدن رکورد های Data Grid
نقل قول:
برای من خط دوم Error میگیره ! مگه نباید برای اینکار از شی واسط پایگاه داده Adodc استفاده کرد ؟
بنده اطلاعات زیادی از پروگرمینگ ندارم
به نظرم باید db.accdb رو کنار فایل اجرایی قرار بدید تا مقادیرش لود شه
-
نقل قول: کات شدن رکورد های Data Grid
نقل قول:
نوشته شده توسط
مجید آرتا
بنده اطلاعات زیادی از پروگرمینگ ندارم
به نظرم باید db.accdb رو کنار فایل اجرایی قرار بدید تا مقادیرش لود شه
ولله من دیگه نمیدونم باید چیکار بکنم ! فکر نمیکردم این مشکل اینقدر پیچیده بشه که یک صفحه میگذره و مشکل من هنوز حل نشده !
-
نقل قول: کات شدن رکورد های Data Grid
نقل قول:
نوشته شده توسط
Juventus FC
برای من خط دوم Error میگیره ! مگه نباید برای اینکار از شی واسط پایگاه داده Adodc استفاده کرد ؟
این دستور همانند دستور کپی میمونه و بین جدول های اکسس عمل میکنه درصورتی که نیاز به نمایش این اطلاعات داشته باشی خوب معلومه که باید از شئ adodc استفاده کنی.
-
نقل قول: کات شدن رکورد های Data Grid
نقل قول:
نوشته شده توسط
مجید آرتا
بنده اطلاعات زیادی از پروگرمینگ ندارم
به نظرم باید db.accdb رو کنار فایل اجرایی قرار بدید تا مقادیرش لود شه
این که شما میگید ربطی به انتقال نداره مگر اینکه دستورمون این باشه که فایل دیتابیس کنار پروژه هست که بدون اقدام جابجایی داده ها بی ثمره.
-
نقل قول: کات شدن رکورد های Data Grid
نقل قول:
نوشته شده توسط
iliaoofice1
این دستور همانند دستور کپی میمونه و بین جدول های اکسس عمل میکنه درصورتی که نیاز به نمایش این اطلاعات داشته باشی خوب معلومه که باید از شئ adodc استفاده کنی.
کاری به نمایش ندارم ! این دستور به خودی خود ! از کجا درک میکنه Data Base من کجاست ؟ چه جوری باید بهش وصل بشه و جداول و کپی کنه ؟ باید به وسیله یک شیئی چیزی به پایگاه داده وصل بشه! و این عمل انتقال و انجام بده ! آخه من نمیفهمم به خودی خود این دستور از کجا پایگاه داده و پیدا میکنه !
ضمن اینکه گفتم خط اول اون دستور Error میده ! شما هم هرچی التماس میکنم که یک نمونه کار با این دستور نشون من بدید ! ظاهرا اصلا این یک خط کامنت من و نمیخونید ! به هر حال ممنون از کمکتون. اما مشکل من یک ریال حل نشده !
-
نقل قول: کات شدن رکورد های Data Grid
نقل قول:
نوشته شده توسط
iliaoofice1
شما مبتدی هستین؟
من 3 سال پیش یا بیشتر کد نویسی میکردم ! بعدا دیگه بیخیالش شدم و الآن کارم بهش گیر کرده ! خیلی چیزا درست یادم نمیاد ! روی سورس برنامه ها که نگاه میکنم میفهمم چی به چی بوده ! این بخش و رد بکنم دیگه برنامم ردیف میشه ! البته تا حالا هم اصلا vb با پایگاه داده SQL به این صورت Join نکرده بودم و سابق با پایگاه داده access کار میکردم ! الان تنها امیدم این انجمن این تاپیک که دوستان ببینم راهنمایی میکنند یا خیر !
-
نقل قول: Cut شدن رکورد های Data Grid
سلام
به پايگاه داده به دو شكل ميشه وصل شد يكي با كامپوننت مثل Adodc و Data و روش ديگه با كدنويسي
در پاسخي كه دوستمون دادن از روش كد نويسي استفاده شده بنابراين نياز به شيء جداگانه روي فرم نيست، در حقيقت شيء مورد نظر (در اينجا شيء DB از نوع Database) داخل خود برنامه با كد ساخته ميشه، برنامه به خودي خود نميفهمه ديتابيس كجاست، مسير فايل ديتابيس تو خط دوم بهش داده شده (App.path & "\db1.mdb")
فقط اينكه ميگين از خط اول اشكال ميگيره چون رفرنس كامپوننت به برنامه اضافه نشده، براي راحتي كار شما يك شيء Data (نه Adodc) از نوار ابزار روي فرم بزاريد و بعد حذفش كنيد، اينكار باعث ميشه رفرنس مورد نظر اضافه بشه و ديگه ايراد نگيره
كد زير هم كمي تكميل تر هستش كه ابتدا داده ها رو در جدول دوم درج ميكنه و سپس از جدول اول پاك ميكنه، ساختار Table1, Table2 هم بايد كاملا شبيه هم باشه
Private Sub Form_Load()
Dim db As Database
Set db = OpenDatabase(App.Path & "\db1.mdb", True)
db.Execute "INSERT INTO Table2 Select * From Table1"
db.Execute "Delete * From Table1"
db.Close
End Sub
فرم اولتون رو به Table1 و فرم دوم رو به Table2 متصل كنيد
فقط يه نكته اي تو پست آخر اشاره كردين كه دقيقا متوجه نشدم از بانك اكسس الان داريد استفاده ميكنيد يا Sql Server
در صورت استفاده از Sql Server كد بايد تغييراتي كنه
-
نقل قول: Cut شدن رکورد های Data Grid
در حال حاضر از SQL استفاده میکنم و برای این پایگاه داده میخواهم. اگر میشه کد های مربوط به SQL برام بگذارید.
ضمن اینکه من این و روی یک برنامه با پایگاه داده Access تست کردم اون شی data که گفتید اوردم بعد پاکش کردم ولی حالا به خط دوم گیر میده ! با اینکه هم نام پایگاه داده درسته هم اون data base اکسس درون همون پوشه بغل فایل پروژه است ولی بازم بهش گیر میده ! من مسیر و هم برای تعریف کردم بازم گیر میده !
-
نقل قول: Cut شدن رکورد های Data Grid
سلام
ممكنه بانك اطلاعاتيتون از ورژنهاي بالاي اكسس باشه كه توسط Data پشتيباني نشه، خود Data هم ورژنهاي مختلف داره كه بايد از بالاترين ورژن استفاده بشه ولي معمولا با Ado مشكلي نداريد و نمونه اتصال با كد توسط ADODB (نه ADODC) هم تو اينترنت زياده كه باهاش به Sql هم ميتونيد متصل بشيد، بقيش هم كه ميشه دستورات Sql كه مشابه هم هستن، اينم يك نمونه، البته در اينجا هم براي اضافه شدن رفرنس مربوطه يك عدد شيء Adodc روي فرم بزاريد و بعد حذفش كنيد
Dim cn As New ADODB.Connection
cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DatabaseName;Data Source=ARMINA-PC\MSSqlServer"
cn.Open , "user", "pass"
cn.Execute "INSERT INTO Table2 Select * From Table1"
cn.Execute "Delete * From Table1"
cn.Close
-
نقل قول: Cut شدن رکورد های Data Grid
آره دقیقا من از Microsoft Access 2007 استفاده میکنم برای همین پایگاه داده پیدا نمیکنه ! حالا کاری هم به Access ندارم !
این کدهای SQL به کار من میاد ، الآن همه چیز ردیف فقط الآن به خط 5 گیره میده اونجا که نوشتید => "cn.Execute "Delete * From Table1
و پیغام خطایی هم که میده تصویره زیر :
http://www.shiaupload.ir/images/4696...7319236169.jpg
که اونم یعنی نمیتونه رکوردها رو پاک بکنه ولی جالبی کار اینکه رکوردها به جدول دوم منتقل میشه ولی خب پاک نمیشه و در جدول اول باقی میمونه !
-
نقل قول: Cut شدن رکورد های Data Grid
سلام
* رو از عبارت حذف كنيد، تو Sql server بعضا نبايد * داشته باشه
Delete From Table1
-
1 ضمیمه
نقل قول: Cut شدن رکورد های Data Grid
این نمونه اکسس هستش که دوتا فرم داره :
-
نقل قول: Cut شدن رکورد های Data Grid
نقل قول:
نوشته شده توسط
vbhamed
سلام
* رو از عبارت حذف كنيد، تو Sql server بعضا نبايد * داشته باشه
Delete From Table1
در این جالت اصلا عمل حذف انجام نمیشه ! مثل اینکه اصلا VB این دستور و نمیخونه !
بعد یک سوال دیگه جدول 1 من جوری هستند که 5 تا پارامتر داره (code,name,number,buy,total) بعد من Code در هر این جدول کلید اصلی قرار دادم حالا در مواردی code های بعضی اجناس یکی میشه ! مثلا کارت گرافیک کدش 30 یک بار که وارد میکنیم خب مشکلی نیست ولی وقتی بار دوم کد 30 وارد میکنیم چون کد یک پارامتر منحصر به فرد vb پیغام خطا میده !
موردی نیست اصلا من کلید اصلی و مشخص نکنم !؟
نقل قول:
نوشته شده توسط
iliaoffice1
این نمونه اکسس هستش که دوتا فرم داره :
خیلی ممنونم دوست من ! سپاسگذارم.
-
نقل قول: Cut شدن رکورد های Data Grid
سلام و درود علت اینکه vb6 موقع ثبت کد در فیلد code خطا میده اینه که شما کلید primary key رو روی اون فیلد گذاشتید و این باعث میشه داده های تکراری ثبت نشه اگه این کلید رو از روش بردارید مشکل حل میشه.
-
نقل قول: Cut شدن رکورد های Data Grid
میشه برای پاک کردن رکوردها از دستور زیر استفاده کرد ؟
On Error Resume Next
Adodc1.Recordset.MoveFirst
Adodc1.Recordset.Delete adAffectCurrent
DataGrid1.Refresh
منتها در این دستور در خط 4 که مربوط به Delete میشه VB پیغام خطا میده ! ولی فکر میکنم دستور همین باشه با اینکه پیغام خطا میده ولی فرمان پاک شدن اعمال میشه ولی اون Error چیه !
-
نقل قول: Cut شدن رکورد های Data Grid
شاید کد زیر کارکنه :
On Error Resume Next
Adodc1.Recordset.MoveFirst
Adodc1.Recordset.Delete
adodc1.recordset.movelast
adodc1.refresh
DataGrid1.Refresh
-
نقل قول: Cut شدن رکورد های Data Grid
حالا به خط چهارم گیر میده ! و عمل Delete اصلا انجام نمیشه !
-
نقل قول: Cut شدن رکورد های Data Grid
خط دوم رو حذف کنید ببیند میشه؟
-
نقل قول: Cut شدن رکورد های Data Grid
ببخشید آقای iliaoffice1 این کدی که نوشتید:
adodc1.recordset.movelast
چه فرقی با کد دوست عزیزمون که نوشتند داره ؟
Adodc1.Recordset.MoveFirst
-
نقل قول: Cut شدن رکورد های Data Grid
نقل قول:
نوشته شده توسط
Juventus FC
حالا به خط چهارم گیر میده ! و عمل Delete اصلا انجام نمیشه !
سلام و درود
شما یک دیتاگرید بیارید به فرم و خاصیت نمایش اون غیرفعال کنید. و فقط روی جدولی تنظیمش کنید که قراره عمل حذف انجام بشه ببینید بازم خطا میده؟
-
نقل قول: Cut شدن رکورد های Data Grid
نقل قول:
نوشته شده توسط
Juventus FC
در این جالت اصلا عمل حذف انجام نمیشه ! مثل اینکه اصلا VB این دستور و نمیخونه !
منظور داخل همون عبارت بود، اين عبارت توسط موتور Sql استفاده ميشه نه VB و حتما هم بايد بانك Sql server باشه
cn.Execute "Delete From Table1"
-
نقل قول:
نوشته شده توسط
aliwer
ببخشید آقای iliaoffice1 این کدی که نوشتید:
adodc1.recordset.movelast
چه فرقی با کد دوست عزیزمون که نوشتند داره ؟
Adodc1.Recordset.MoveFirst
سلام
دستور اول به آخرين ركورد و دستور دوم به اولين ركورد حركت ميكنه
-
1 ضمیمه
نقل قول: Cut شدن رکورد های Data Grid
اینم انتقال اطلاعات از جدول 1 به جدول 2 و پاک کردن اطلاعات از جدول 1
یادآوری: قبل از تست برنامه اطلاعات Table2 رو حذف کنید و از ابتدا اطلاعات رو از طریق دکمه Start وارد جدول 1 بکنید سپس دکمه Run رو بزنید . ممنون