PDA

View Full Version : وجود یا عدم وجود یک مقدار در جدول



vb_nima
چهارشنبه 29 فروردین 1386, 14:36 عصر
با کدامیک از دستورات sql می توانم چک کنم ببینم آیا مقداری که می خواهم وارد کنم در جدول وجود دارد یا نه؟

CodeMasterX
چهارشنبه 29 فروردین 1386, 15:18 عصر
این تابع رو در یک ماژول بنویس:



Public Function rec_exist(ByVal Table As String,ByVal Field As String,ByVal Value As String,Optional ByVal isNum As Boolean=False) As Boolean

Dim rs As New ADODB.Recordset
Dim SQL As String

Select Case isNum
Case True
SQL = "SELECT * FROM [" & Table & "] WHERE [" & Field & "] =" & Value
Case False
SQL = "SELECT * FROM [" & Table & "] WHERE [" & Field & "] ='" & Value & "'"
End Select

rs.Open CN , SQL , adOpenStatic, adLockOptimistic
If rs.RecordCount <> 0 Then
rec_exist = True
Else
rec_exist = False
End If

rs.Close
Set rs = Nothing

این تابع نام جدول و نام فیلد و مقدار رو می گیره که مقدار می تونه رشته یا عدد باشه و چک می کنه که رکوردی وجود داره یا نه.برا استفاده این تابع برای مقادیر Date هم دیگه خودتون باید یه تغییر ساده انجام بدین.روش استفاده هم ساده هست فقط دقت داشته باشید که آبجکت اتصال به بانک داده CN باید از قبل باز شده باشه:



If rec_exist ("tbl_Customers" , "CustomerID" , txtCustID.Text , True) = True Then
MsgBox "Customer: " & txtCustID.Text & " already exist in database." , vbCritical
End If

vb_nima
چهارشنبه 29 فروردین 1386, 15:29 عصر
ممنون.
من هم خودم از recordcount استفاده کردم .میخواستم ببینم تابعی مخصوص این کار وجود داره یا نه.

CodeMasterX
چهارشنبه 29 فروردین 1386, 15:48 عصر
منظورت چیه ؟ یعنی میخوایی از دستورات SQL استفاده کنی ؟!
شما در هر صورت برای بازیابی رکوری از بانک باید از دستور SELECT در SQL استفاده کنی.
حالا بعد برگشتی های این توابع باید یا یه آبجکت رکوردست بازیابی بشن یا نه ؟!

vb_nima
چهارشنبه 29 فروردین 1386, 17:32 عصر
درسته .خق با شماست.

CodeMasterX
چهارشنبه 29 فروردین 1386, 18:49 عصر
دیدی گفتم ؟ :D