חיפוש במסד נתונים

cohea15

New member
חיפוש במסד נתונים

כיצד ניתן לעשות חיפוש בתוך טבלהאני מתכוון לדבר כזה נגיד שנרשמת לאתר מסוים ואתה מקיש את השם והסיסמא שלך כדי להכנס אז התוכנה עוברת על כל הבסיס נתונים מההתחלה ועד הסוף ועם אתה קיים נותנת לך להיכנס בניתי ב VB גם מערכת הרשמה אך אני לא מצליח לעשות את החיפוש אצלי הקוד מתייחס רק לשורה הראשונה בטבלה זאת אומרת עם בטבלה אני ממוקם בשורה 8 אז הוא מודיע שאני לא נמצא מכיוון שהוא לא עובר על כל בסיס הנתונים אלא מתייחס רק לשורה הראשונה למישהו יש עצה אשמח תודה מראש הנה הקוד Private Sub Command1_Click() Dim sConnection As String Dim num As String num = 0 num = num + 100 Set Conn = New ADODB.Connection Set RS = New ADODB.Recordset sConnection = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=userdata.mdb; DefaultDir=t:/" & ";" Conn.Open sConnection ProgressBar1.Value = num If Conn.State = adStateOpen Then RS.CursorLocation = adUseClient RS.Open "Select user,password FROM USER;", Conn, adOpenDynamic, adLockPessimistic If Text1.Text <> RS!User And Text2.Text <> RS!Password Then MsgBox "ääúçáøåú ìáñéñ äðúåðéí ìà äöìéçä." & vbCrLf & _ "àðà áéã÷å àí äå÷ìãä ñéñîà ðëåðä.", vbMsgBoxRight + vbMsgBoxRtlReading Conn.Close Else MsgBox "ääúçáøåú ìáñéñ äðúåðéí äöìéçä" ConnComplete = True Conn.Close Conn.Open sConnection RS.Open "Select user,play FROM USER where User = '" & Text1.Text & "' and Password = '" & Text2.Text & "'", Conn, adOpenDynamic, adLockPessimistic Set Form4.DataGrid1.DataSource = RS End If End If ProgressBar1.Value = 0 End Sub
 

ארזירון

New member
כמה דברים

1. יישור קוד לשמאל עושים עם הלינקים של [תחילת קוד] ו-[סיום קוד] 2. חיפוש דורש שתבצע פעולה כלשהי - במקרה שלך אתה מריץ שאילתה בלי פילטר ולא בודק כלום חוץ מהשורה הראשונה... אתה יכול לשנות את השאילתה שלך:
RS.Open "select user, password from user WHERE user='" & text1.text & "' AND password='" & text2.text & "'", conn, .....​
(שים לב שיש שם בסוף גרש (') בתוך גרשיים (") ולכן אתה מסיים את התנאי) במקרה הזה אתה בודק בבסיס הנתונים אם קיים כזה שילוב של משתמש וסיסמא, ואם ה-RS שלך לא מכיל כלום, אזי אין כזה... האופציה השניה שלך תהיה לבצע ריצה על כל מה שחזר בקוד הקיים שלך:
do while not rs.eof if rs!user = text1.text and rs!password = text2.text ' found it... exit do end if rs.movenext loop​
וזה בעצם ירוץ בלולאה על כל הרשומות עד שזה ימצא משהו, או שלא.... אם כן זה פשוט יצא באמצע מהלולאה...
 

cohea15

New member
תודה אחי אם אפשר עוד שאלה קטנה

בקוד למעלה לאחר שהמשתמש נכנס והתחבר היוזר שלו יתוסף ל DATAGRID בFORM4 אני מתכוון כאן Set Form4.DataGrid1.DataSource = RS ואז נגיד מתחבר עוד משתמש אז במקום להוסיף גם את השם שלו לDATAGRID בFORM4 הקוד מחליף בין מה שהיה לחדש זאת אומרת לא מוסיף רשומות חדשות לDATAGRID בFORM4 אלא מחליף לי כל הזמן את השם החדש של מי שיתחבר עם הרשומה הקודמת ואז נוצר מצב שיש לי רק שורה אחת בטבלה בפורום 4 השאלה כיצד ניתן להגיד ל DATAGRID להוסיף רשומה חדשה לכל יוזר ברגע שהוא מתחבר ולא להחליף עם רשומה קודמת
 
למעלה