View Full Version : سوال: انتخاب رکود و ثبت برای آن
akbarg64
یک شنبه 10 مرداد 1389, 14:51 عصر
سلام.خسته نباشید.دوستان من دو تا سوال داشتم سوال اولم اینکه دوتا دیتا گرید دارم یکیش اطلاعات کاربران هست و یکیش اطلاعتی مثل جنس خریداری شده مبلغ تاریخ و..... با دیتا گرید اول مشکلی ندارم اما میخوام بدونم چطوری وقتی یک رکورد رو انتخاب کنم بشه واسش اون رکورد اطلاعات دیتا گرید دوم رو وارد کرد؟؟؟یعنی وقتی روی یک رکورد در دیتا گرید 1 کلیک کنم بتونم دیتا گرید 2 رو تکمیل کنم .سوال دوم اینکه میخوام یه خلاصه ای از تعداد مشتریان. تعداد کالا های موجود در انبار.و مانده حساب های دریافتنی و حساب های پرداختنی رو توی صفحه اول به صورت یک لیبل نشون بدم.باید چیکار کنم.امیدوارم منظورم رو تونسته باشم برسونم.ممنون:قلب:
M.T.P
یک شنبه 10 مرداد 1389, 17:13 عصر
اگه منظورتون از سوال اول این هست که وقتی روی یک کاربر یا مشتری کلیک کردی خرید و فروش های اون مشتری رو در دیتاگرید2 ببینی ،،، باید جدول 2 رو به شماره حساب کاربر انتخاب شده فیلتر کنی.
در مورد سوال دوم هم باید یک تابع بنویسی و این تابع تعداد رکوردهای کاربران رو به عنوان تعداد کل مشتریان یا کاربران تو یه لیبل نشون بده. درمورد تعداد کالاها و دریافت و پرداخت هم بستگی به ساختار برنامه تون و جدول ها و فیلدها داره که ما ازشون بی خبریم. :لبخندساده:
akbarg64
یک شنبه 10 مرداد 1389, 18:34 عصر
اگه منظورتون از سوال اول این هست که وقتی روی یک کاربر یا مشتری کلیک کردی خرید و فروش های اون مشتری رو در دیتاگرید2 ببینی ،،، باید جدول 2 رو به شماره حساب کاربر انتخاب شده فیلتر کنی.
در مورد سوال دوم هم باید یک تابع بنویسی و این تابع تعداد رکوردهای کاربران رو به عنوان تعداد کل مشتریان یا کاربران تو یه لیبل نشون بده. درمورد تعداد کالاها و دریافت و پرداخت هم بستگی به ساختار برنامه تون و جدول ها و فیلدها داره که ما ازشون بی خبریم. :لبخندساده:
ممنون.اره دقیقا منظورم همین بود.میتونم ازتون بخوام که یه مثال بزنید تا هم مشکل من حل بشه هم اگه بعدا کسی مشکل منو داشت دیگه اللاف نشه؟؟؟ممنون.
M.T.P
یک شنبه 10 مرداد 1389, 19:05 عصر
اگه شما برای کاربران کدشناسه یا شماره حساب تعریف کرده باشین ، باید برای هر کدوم از رکوردهای خرید و فروش هم یک فیلد تعریف کرده باشین که شماره حساب فرد رو توش ذخیره کنید.
با این حال فرض رو بر این میگیریم که یک رکورد از جدول کاربران انتخاب شده و شماره ID یا حساب کاربر در فیلد دوم هست.
اگه Rs رکوردست شما باشه.
اختصاص یک متغیر به عنوان شماره ID کاربر و مقدار دهی آن از جدول کاربران
Dim ID As String
ID = Rs(2).Value
انتخاب رکوردهای جدول خرید و فروش که شماره کاربر آنها با ID برابر است.
If Rs.State = 1 Then Rs.Close
Rs.Open "Select * From KharidoForush Where UserID = " + ID
و در پایان رفرش DataGrid2
Set DG2.DataSource = Rs
DG2.Refresh
akbarg64
سه شنبه 12 مرداد 1389, 13:01 عصر
اگه شما برای کاربران کدشناسه یا شماره حساب تعریف کرده باشین ، باید برای هر کدوم از رکوردهای خرید و فروش هم یک فیلد تعریف کرده باشین که شماره حساب فرد رو توش ذخیره کنید.
با این حال فرض رو بر این میگیریم که یک رکورد از جدول کاربران انتخاب شده و شماره ID یا حساب کاربر در فیلد دوم هست.
اگه Rs رکوردست شما باشه.
اختصاص یک متغیر به عنوان شماره ID کاربر و مقدار دهی آن از جدول کاربران
Dim ID As String
ID = Rs(2).Value
انتخاب رکوردهای جدول خرید و فروش که شماره کاربر آنها با ID برابر است.
If Rs.State = 1 Then Rs.Close
Rs.Open "Select * From KharidoForush Where UserID = " + ID
و در پایان رفرش DataGrid2
Set DG2.DataSource = Rs
DG2.Refresh
سلام.نمیدونم کجاش رو اشتباه میکنم.چون اونجوری نمیشه.میدونم انتظار بی جایی میکنم.اما میشه روی این فایل توضیح بدین.ممنون میشم.در مورد اون مانده حساب ها هم یه چیز هایی گرفتم و متوجه شدم که چیکار کنم.ممنون میشم
M.T.P
سه شنبه 12 مرداد 1389, 13:38 عصر
سلام.
برنامه تون رو دیدم.
چند تا ایراد داره...
1. اینکه ConnectionString رو بصورت ویزارد ساختی و درنتیجه مسیر دیتابیست یک مسیر پیش فرض هست و اگه برنامه رو از مسیر دیگه ای باز کنی دیتابیس رو پیدا نمیکنه(باید ConnectionString رو تو Form_Load بنویسی و مسیر بانک رو با app.path مشخص کنی.)
2. وقتی کلید ثبت مشتری رو میزنی باید شماره حساب مشتری رو تو جدول مشتری ها فیلتر کنی ، اگه موردی یافت شد نتیجه اینکه یک مشتری با همون شماره حساب وجود داره و کاربر باید شماره حساب دیگه ای وارد کند.
3.در برنامه تون ورودی های کاربر رو کنترل نکردید. اگه کاربر یکی از فیلدهای خواسته شده رو پر نکرد باید بهش هشدار بدین.
و... خیلی های دیگه :متفکر:
akbarg64
سه شنبه 12 مرداد 1389, 14:13 عصر
سلام.
برنامه تون رو دیدم.
چند تا ایراد داره...
1. اینکه ConnectionString رو بصورت ویزارد ساختی و درنتیجه مسیر دیتابیست یک مسیر پیش فرض هست و اگه برنامه رو از مسیر دیگه ای باز کنی دیتابیس رو پیدا نمیکنه(باید ConnectionString رو تو Form_Load بنویسی و مسیر بانک رو با app.path مشخص کنی.)
2. وقتی کلید ثبت مشتری رو میزنی باید شماره حساب مشتری رو تو جدول مشتری ها فیلتر کنی ، اگه موردی یافت شد نتیجه اینکه یک مشتری با همون شماره حساب وجود داره و کاربر باید شماره حساب دیگه ای وارد کند.
3.در برنامه تون ورودی های کاربر رو کنترل نکردید. اگه کاربر یکی از فیلدهای خواسته شده رو پر نکرد باید بهش هشدار بدین.
و... خیلی های دیگه :متفکر:
ممنون از توضیحاتتون.اما این برنامه اصلی نیست.فقط خواست که اگه مشکلی نیست توی همین برنامه بزارین.اینو همینجوری درست کردم. حالا میشه همونو واسم تکمیل کنید که وقتی روی یه مشتری کلیک کنم بتونم اطلاعات مربوط به اون مشتری رو ببینم؟؟؟؟مشکل اصلی من همینه.:عصبانی++:البته میدونم توقع زیادیه.اما :ناراحت::افسرده::افسرده:ممنو ن میشم.
M.T.P
سه شنبه 12 مرداد 1389, 15:24 عصر
دوست عزیز من پیشنهاد میکنم از همین الان به جای استفاده از کنترل Adodc از کتابخانه ADODB استفاده کنی که از شر اون همه کنترل ADODC رو فرم هات خلاص بشی.(تنها فرقش نوشتن دو خط کد تو یه ماژوله تمام.)
این برنامه رو ببین. مشتری رو ثبت میکنه و لیست هم میگیره.
از ثبت مشتری با شماره حساب مشابه هم جلوگیری میکنه.
akbarg64
یک شنبه 17 مرداد 1389, 15:32 عصر
سلام.من هنوز مشکلم پا برجاست.هیشکی دیگه نمیخواد کمک کنه؟؟؟؟؟؟:عصبانی++::عصبانی++: :گریه::گریه::گریه::گریه:.این همه اساتید.اگه علتی داره جواب ندادن بگین شاید بتونم برطرف کنم؟؟؟:عصبانی++::عصبانی++::عص انی++:.
akbarg64
چهارشنبه 03 شهریور 1389, 16:14 عصر
عاقبت جوینده یابنده بود.گفتم اینجا بنویسم شاید یکی دیگه هم همین مشکل رو داشته باشه.
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
On Error Resume Next
If Adodc1.Recordset.RecordCount > 0 Then
Adodc2.RecordSource = "SELECT * FROM Forosh WHERE ID=" & Adodc1.Recordset.Fields("ID")
Adodc2.Refresh
End If
End Sub
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.