ورود

View Full Version : سوال: جستجو



maskan_1361
یک شنبه 08 مرداد 1391, 01:29 صبح
سلام
می خواهیم یه کد جدید در دیتابیس ذخیره کنیم ولی بشرط اینکه تا کاربر کد را وارد کرد برنامه در دیتابیس جستجو
بکنه و اگر کد تکراری بود پیغام بده ! از چه دستوری باید استفاده کنیم ؟

mohammadriano
یک شنبه 08 مرداد 1391, 02:28 صبح
Private Sub Command1_Click()
Dataname.Refresh
Dataname.RecordSource = "select * from table1 where fildname ='" + Text1.Text + "'"
Dataname.Refresh
If Dataname.Recordset.RecordCount < 1 Then
Dataname.RecordSource = "select * from table1"
Dataname.Refresh
Dataname.Recordset.AddNew
Dataname.Recordset.Fields("fildname").Value = Text1.Text
else
MsgBox ("Your code is repeated")
End If
Dataname.RecordSource = "select * from table1"
Dataname.Refresh
End Sub

maskan_1361
یک شنبه 08 مرداد 1391, 12:06 عصر
سلام دوست عزیز و ممنون
ولی کد کار نمی کنه!
من از data استفاده کردم
این هم کد

Private Sub Command1_Click()



Data1.RecordSource = "select * from customer where custnum ='" + Text1.Text + "'"



aa = Data1.Recordset.RecordCount
MsgBox aa

If Data1.Recordset.RecordCount = 1 Then

MsgBox ("Your code is repeated")

Else


Dim cn As ADODB.Connection
Dim stat As String


Set cn = New ADODB.Connection

cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\jafari\jafari.mdb;Persist Security Info=False"
cn.Open

stat = "INSERT INTO customer (cust_num,name,fam,gaba,labade,shalvar,jelig,tel,a dress) VALUES ('" & Text1.Text & "','" & Text2.Text & "','" & Text3.Text & "','" & Text6.Text & "','" & Text7.Text & "','" & Text8.Text & "','" & Text9.Text & "','" & Text4.Text & "','" & Text5.Text & "')"


cn.Execute stat, adCmdText
cn.Close
Adodc1.Refresh


End If

mohammadriano
یک شنبه 08 مرداد 1391, 13:36 عصر
کد ها مشکلی ندارن
مشکل از جای دیگه هستش
دوباره چک کنید

mohammadriano
شنبه 14 مرداد 1391, 10:22 صبح
Private Sub Command_Click()
Dim m As Boolean
m = False
Dataname.Refresh
While (Dataname.Recordset.EOF <> True)
If Dataname.Recordset.Fields("FildName").Value = Text1.Text Then
m = True
Dataname.Recordset.Movelast
Dataname.Recordset.MovePrevious
End If
Dataname.Recordset.MoveNext
Wend
If m = False Then
Dataname.Refresh
Dataname.Recordset.AddNew
Dataname.Recordset.Fields("FildName").Value = Text1.Text
Else
MsgBox ("Your code is repeated")
End If
Dataname.Refresh
End Sub

maskan_1361
شنبه 14 مرداد 1391, 14:47 عصر
Private Sub Command_Click()
Dim m As Boolean
m = False
Dataname.Refresh
While (Dataname.Recordset.EOF <> True)
If Dataname.Recordset.Fields("FildName").Value = Text1.Text Then
m = True
Wend
End If
Dataname.Recordset.MoveNext
Wend
If m = False Then

Dataname.Refresh
Dataname.Recordset.AddNew
Dataname.Recordset.Fields("FildName").Value = Text1.Text
Else
MsgBox ("Your code is repeated")
End If
Dataname.Refresh
End Sub


دوست عزیز کد شما خطای زیر را می دهد
compile error
wend without while
که احتمالا به خاطر وجود if در بین دستورات است!!

SlowCode
شنبه 14 مرداد 1391, 14:57 عصر
دوست عزیز کد شما خطای زیر را می دهد
compile error
wend without while
که احتمالا به خاطر وجود if در بین دستورات است!!
نخیر، پیغام خطا خودش میگه که شما یه wend اضافه نوشتین، یعنی شما باید یکی از wend های خط 8 یا 11 رو حذف کنی.

mohammadriano
شنبه 14 مرداد 1391, 20:46 عصر
دوست عزیز کد شما خطای زیر را می دهد
compile error
wend without while
که احتمالا به خاطر وجود if در بین دستورات است!!
پست اصلاح شد

maskan_1361
شنبه 14 مرداد 1391, 21:20 عصر
نخیر، پیغام خطا خودش میگه که شما یه wend اضافه نوشتین، یعنی شما باید یکی از wend های خط 8 یا 11 رو حذف کنی.

خیر با حذف انها هم مشکل حل نمیشه

mohammadriano
شنبه 14 مرداد 1391, 21:31 عصر
کد نهایی برای جستجوی دستی
100 % تست شده

Private Sub Command_Click()
Dim m As Boolean
m = False
Dataname.Refresh
While (Dataname.Recordset.EOF <> True)
If Dataname.Recordset.Fields("FildName").Value = Text1.Text Then
m = True
Dataname.Recordset.Movelast
Dataname.Recordset.MovePrevious
End If
Dataname.Recordset.MoveNext
Wend
If m = False Then
Dataname.Refresh
Dataname.Recordset.AddNew
Dataname.Recordset.Fields("FildName").Value = Text1.Text
Dataname.Recordset.Update
Else
MsgBox ("Your code is repeated")
End If
Dataname.Refresh
End Sub

mohammadriano
شنبه 14 مرداد 1391, 21:37 عصر
کد نهایی برای جستجوی(پیشرفته) کوئری
100 % تست شده

Private Sub Command_Click()
Dataname.Refresh
Dataname.RecordSource = "select * from tablename where name ='" + Text1.Text + "'"
Dataname.Refresh
If Dataname.Recordset.RecordCount < 1 Then
Dataname.RecordSource = "select * from tablename"
Dataname.Refresh
Dataname.Recordset.AddNew
Dataname.Recordset.Fields("name").Value = Text1.Text
Dataname.Recordset.Update
Else
MsgBox ("Your code is repeated")
End If
Dataname.RecordSource = "select * from tablename"
Dataname.Refresh
End Sub

maskan_1361
شنبه 14 مرداد 1391, 23:13 عصر
کد نهایی برای جستجوی دستی
100 % تست شده

Private Sub Command_Click()
Dim m As Boolean
m = False
Dataname.Refresh
While (Dataname.Recordset.EOF <> True)
If Dataname.Recordset.Fields("FildName").Value = Text1.Text Then
m = True
Dataname.Recordset.Movelast
Dataname.Recordset.MovePrevious
End If
Dataname.Recordset.MoveNext
Wend
If m = False Then
Dataname.Refresh
Dataname.Recordset.AddNew
Dataname.Recordset.Fields("FildName").Value = Text1.Text
Dataname.Recordset.Update
Else
MsgBox ("Your code is repeated")
End If
Dataname.Refresh
End Sub


سلام دوست عزیز و ممنون از حوصله و وقتی که گذاشتید بالاخره با این کد شما مشکل حل شد ! واقعا ممنون و سپاسگزارم