ورود

View Full Version : مبتدی: select count



sldvhlds
شنبه 06 آذر 1395, 17:10 عصر
سلام دوستان توی یه دیتا بیس با دستور زیر رکوردهای مورد نظرمو پیدا میکنم
" ' "+ Adodc1.RecordSource = "select * from table1 where Book=' " + Text12.Text
و مثلا nرکورد رو پیدا میکنه حالا اگه بخوام تعداد رکوردهای پیدا شده با شرط بالا رو بریزم توی یه متغیر باید چکار کنم
ممنون از توجه دوستان ضمنا دیتا بیس اکسسه

isaac23
یک شنبه 07 آذر 1395, 08:18 صبح
خب دقیق میخای چه کاری انجام بدی که بریزی تو متغیر....

بگو واسه چی میخای و میخای چیکار کنی شاید راه حل بهتری بود ... تا حالا من که نیازم نشده اطلاعاتش رو بریزم توی متغییر .!

sldvhlds
یک شنبه 07 آذر 1395, 10:37 صبح
سلام تعداد رکوردهایی رو که با شرط من میخونه رو پیدامیکنم بعدتعدادش رو اختصاصش میدم تویه حلقه بعد حلقه به ترتیب اطلاهات رو واکشی میکنه و میریزه توی سلولهای متناظر یه فایل اکسل یا اگه کامل تر بخوام بگم برنامه من یه سری اطلاعات رو از کاربر میگیره توسط تکست باکس وکومبو باکس بعد اون اطلاعات رو میریزه توی دیتا بیس اکسس بعد اون رکوردهایی رو که کاربر بخواد(نه همه رکوردها رو) از دیتابیس میخونه ومیریزه توی یه فایل اکسل البته این فایل اکسل یه فایل از پیش طراحی شده است یعنی یه سری از سلولهاش فرمت خاصی دارن چه از لحاظ فونت چه از لحاظ محتوا

isaac23
یک شنبه 07 آذر 1395, 11:11 صبح
خوب دوست عزیز با یه حلقه for بیاد تعداد رکورد ها رو بشمار و بعد هر فیلدی از بانک که خاستی بریز توی متغیر و ازش استفاده کن در صورتی که نام بانک ما این باشه و دستور سلکت ما این باشه .
Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\mydbase.mdb;"
Adodc2.RecordSource = "SELECT * FROM Table1 where old='" & 22 & "'"
Adodc2.Refresh



با این دستور میاد تمام فیلد های رو که جستجو کردی رو می ریزه توی متغیر txt و با حلقه for بهم نشون میده .

Dim txt As String
For i = 1 To Adodc2.Recordset.RecordCount
txt = Adodc2.Recordset.Fields!Old
MsgBox txt
Next



حالا اگه خاستی اضافه کنی به دیتا بیس هم دیگه دستور اضافه کردن رو خودت بنویس بین حلقه for.

موفق باشی....

sldvhlds
یک شنبه 07 آذر 1395, 12:43 عصر
سلام دوست عزیز به نظرم دستوری که کارمو راه بندازه دستور SELECT COUNT هست فقط نمیدونم چجوری با دستور
Adodc1.RecordSource = "select * from table1 where Book=' " + Text12.Text ترکیبشون کنم دستوری هم که داده بودید میاد کل رکوردهای تیبل رو نشون میده

isaac23
یک شنبه 07 آذر 1395, 15:54 عصر
سلام دوست عزیز به نظرم دستوری که کارمو راه بندازه دستور SELECT COUNT هست فقط نمیدونم چجوری با دستور
Adodc1.RecordSource = "select * from table1 where Book=' " + Text12.Text ترکیبشون کنم دستوری هم که داده بودید میاد کل رکوردهای تیبل رو نشون میده

اولاً یه نگاه به دستورات که نوشتم بنداز. میاد نتیجه سلکتی که انجام شده رو در نظر میگیره و بعد می ریزه توی متغیر.

Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\mydbase.mdb;"
Adodc2.RecordSource = "SELECT * FROM Table1 where old='" & 22 & "'"
Adodc2.Refresh

به این تیکه کد نگاه کن .

For i = 1 To Adodc2.Recordset.RecordCount



-------------------------------------------------------
Dim txt As String

For i = 1 To Adodc2.Recordset.RecordCount

txt = Adodc2.Recordset.Fields!Old
MsgBox txt
Next






شما اینا رو . ازش استفاده کن متوجه میشی.
در اصل این کد میاد تعداد افرادی که سن آنها 22 هست رو بهت نشون میده و نمیاد کل دیتا بیس رو نشون بده

sldvhlds
یک شنبه 07 آذر 1395, 18:21 عصر
سلام احتمالا من نتونستم خوب مشکلمو مطرح کنم
فرض کنید یه دیتا بیس داریم که توی اون یک فیلد اسم کتابها وتوی فیلد دیگه اسم نویسنده هست (مثلا گفتم جدول من فرق میکنه:قهقهه:)
حالا ما اگه بخواهیم بفهمیم توی این بانک نویسنده x چه تعداد از کتابهاش (مثلا 5 -6 -7) توی جدول هست باید از چه کدی استفاده کنیم تعداد مهمه میخوام برنامه توی یک تکست باکس اسم نویسنده رو بگیره وتوی تکست دیگه تعداد کتابهاشو بزنه اسم کتابهاش اصلا مهم نیست فقط تعداد
ممنون میشم دوستان عنایتی بفرمایند

isaac23
دوشنبه 08 آذر 1395, 15:52 عصر
باید بانکت رو طوری طراحی کنی که به مشکل بر نخوری...

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

باید بر اساس همون پارامتر . از طریق نام نویسنده و نام نام کتاب جستجو انجام بشه برای جستجو بین دو فیلد از دستور And بین دستور شرط ها استفاده کن...


"SELECT * FROM T1 Where Nameb='" & Trim(Form10.Combo3.text) & "' And Vaz='" & Trim(Form10.Combo4.text) & "' Order by Tch"

اگه جوابت این نیست یه سورس تمرینی بذار بهتر متوجه بشم

sldvhlds
دوشنبه 08 آذر 1395, 18:59 عصر
سلام وممنون از وقتی که میگذارید یه پروژه تمرینی فرستادم
میخوام کاربر توی تکست اولی نام نویسنده رو وارد کنه وبرنامه تعدادکتابهای اون نویسنده رو توی تکست 2نشون بده و یا به عبارت بهتر توی این برنامه تمرینی تعداد دفعاتی که که اسم اون نویسنده توی بانک اومده
تاپیک زیر تقریبا اون چیزیه که من می خوام ولی از کد نویسیش سر در نیاوردم
http://barnamenevis.org/showthread.php?280772-%D9%85%D8%AD%D8%A7%D8%B3%D8%A8%D9%87-%D8%AA%D8%B9%D8%AF%D8%A7%D8%AF-%D9%81%DB%8C%D9%84%D8%AF-%D9%87%D8%A7%DB%8C-%D8%AF%DB%8C%D8%AA%D8%A7-%DA%AF%D8%B1%DB%8C%D8%AF

isaac23
سه شنبه 09 آذر 1395, 08:54 صبح
تمام دستوراتی که من برات نوشتم همین منظور رو رسونده برات اصلاحش کردم و برات پیوست کردم ..

مثلا توی تکس اول نام ali رو بنویس بهت میگه چند تا کتاب بنام ایشون ثبت شده و بقیه ماجرا....