ورود

View Full Version : تعداد رکوردهای یک Query



hadi2345
سه شنبه 24 دی 1387, 11:20 صبح
با سلام ،

بعد از کلی جستجو این تاپیک رو ایجاد میکنم .

مشکل من اینه که میخوام یک دستور SQL رو اجرا کنم و تعداد رکوردهای بدست آمده رو در کد برنامه استفاده کنم.

فرض کنید مشکلات کارمندان رو در یک فرم ثبت میکنیم . من میخوام اگه مشکلات ثبت شده یک کارمند بیشتر از 50 بود به کاربر پیغام بدم که قبلا برای اون کارمند 50 مشکل ثبت شده و روند ثبت مشکل جدید رو قطع کنم .

اون دستور SQL هم برای پیدا کردن مشکلات اون کارمنده . حالا من موندم از چه ابزاری استفاده کنم ؟

از QueryDef استفاده کردم نشد !

قبلا از همه تشکر میکنم .

araelectronic@ymail.com
سه شنبه 24 دی 1387, 11:35 صبح
با سلام
در هر بار وارد كردن اطلاعت تعداد ركوردهاي مربوط به ان شماره كارمند را چك كنيد
select count (* ) as x from tablename where empno=no

empno نام فيلد شماره كارمند
no شماره كارمند مورد نظر

hadi2345
سه شنبه 24 دی 1387, 12:00 عصر
سلام ،

ممنون دوست عزیز . من تو دستور SQL مشکل نداشتم و مشکل من نحوه اجرای دستور Select بود .

من از DoCmd.RunSQL استفاده کردم نشد. علتش هم این بود که ظاهرا DoCmd دستورات Select رو اجرا نمیکنه ! و فقط برای Delete , Update مناسبه .

QueryDef هم که برای ایجاد و نمایش Query هستش و روش اشتباه بوده !

تا اینکه همین چند لحظه پیش تو MCSE روشش رو پیدا کردم که البته خیلی هم ساده بوده ::





On Error GoTo Err_C_Click



Dim Rst As ADODB.Recordset

Set Rst = New ADODB.Recordset

Dim StrSQL As String

StrSQL = "SELECT count(*) FROM Correction Where C_UserId='" & C_UserId.Text & "'"

Rst.Open StrSQL, CurrentProject.Connection

Rst.MoveFirst

If Rst.EOF Then MsgBox "No data matches your criteria"

If Rst.Fields(0).Value >= 50 Then

MsgBox ("ÈÑÇí Çíä ÑÓäá 50 ãæÑÏ ËÈÊ ÑÏíÏå ÇÓÊ")

Cancel = 1

End If

Rst.Close

Set Rst = Nothing

Err_C_Click:

Exit Sub