פורסם 2005 בספטמבר 420 שנים מחבר אני חשבתי על משהו קצת שונה, כל אחד יבחר 3 וילחץ על פקד הצבעהבתוך הפקד חשבתי להפעיל מקרו שבודק איזה תיבות מסומנות בעזרת פקודת iif, ומעלה את הערך של המועמדים שנבחרו.הידע שחסר לי הוא: 1. איזה פקודת מקרו לשים בשביל לבצע את התנאי הזה ?2. איך בעזרת if אני בודק אם תיבה מסומנת או לא ?3. איך מעלים ערך בטבלה של מועמדים ?
פורסם 2005 בספטמבר 420 שנים OK אחרי מעט רענון ה VB שלי (תוך עזרה מגוגל) בניתי לך טופס להצבעה שעושה את מה שרצית. צירפתי מסד שמדגים את הפעולה.בעיקרון בטופס יש שלוש תיבות משולבות, שערכיהן לקוחים מטבלה (candidates במסד שצירפתי).כל רשומה בטבלת המועמדים מורכבת משם המועמד ומספר ההצבעות שהוא קיבל.תחילה נגדיר שני משתנים: אחד עבור הרשומה של המועמד שנבחר ואחד עבור שאילתת ה sql שבוחרת את המועמד הרצוי על פי הבחירה בתיבה המשולבת.Dim cands As ADODB.RecordsetDim Sqlq As Stringלאחר מכן יצרתי sub שמקבל כפרמטר את שם המועמד ומעלה את שדה ה votes ברשומה שלו ב 1.Private Sub UpdateVote(cname As String) 'Create the quary and get the needed candidate's record using it Sqlq = "SELECT * FROM candidates WHERE cand_name = " & Chr(34) & cname & Chr(34) Set cands = New ADODB.Recordset cands.Open Sqlq, CurrentProject.Connection, adOpenStatic, adLockOptimistic 'Update cands.Fields("votes") = cands.Fields("votes") + 1 cands.Update 'Clean up cands.Close Set cands = Nothing Set datc = NothingEnd Subלבסוף יצרתי אירוע בניה לכפתור הצבעה שנמצא בטופס. באירוע אני בודק עבור כל תיבה משולבת האם נבחר בה מועמד (הטקסט שלה לא ריק). אם כן, נקרא ל UpdateVote עם הטקסט הנבחר כפרמטר ולאחר מכן נאפס את הטקסט.Private Sub btnDoVote_Click() 'We must set the focus on a control before accessing it Form_Vote_Form.cmbVote1.SetFocus 'If the the selection text is not empty, call the UpdateVote with the 'selected text as the parameter If Form_Vote_Form.cmbVote1.SelText <> "" Then UpdateVote (Form_Vote_Form.cmbVote1.SelText) Form_Vote_Form.cmbVote1.SelText = "" End If 'Again here with the two other ComboBoxes Form_Vote_Form.cmbVote2.SetFocus If Form_Vote_Form.cmbVote2.SelText <> "" Then UpdateVote (Form_Vote_Form.cmbVote2.SelText) Form_Vote_Form.cmbVote2.SelText = "" End If Form_Vote_Form.cmbVote3.SetFocus If Form_Vote_Form.cmbVote3.SelText <> "" Then UpdateVote (v.cmbVote3.SelText) Form_Vote_Form.cmbVote3.SelText = "" End IfEnd Subזה הכל. פשוט מאוד.מקווה שעזרתי[attachment deleted by admin]
פורסם 2005 בספטמבר 920 שנים למה בדיוק אתה מתכוון "תוכנה עצמאית"? אתה מתכוון תוכנה שתאפשר לך להצביע ולעדכן את המסד נתונים בלי האקסס?
פורסם 2005 בספטמבר 1020 שנים מחבר שמע אחי, המטרה של הפרויקט זה לערוך בחירות במועצת תלמידים בביה"ס של אמא שלי, היא אמרה לי שאין לה כח לספור פתקים אז אמרתי לה שאולי אני יוכל לעזור לה, בעזרתכם כמובן, כי הידע שלי כבר מזמן נשכח, בכל מקרה עכשיו היא אמרה לי שאין אצלהם בביה"ס אקסס במחשבים אז רציתי לדעת מה אפשר לעשות ? תודה.
פורסם 2005 בספטמבר 1120 שנים אה הבנתי...אז מה שאתה צריך בעצם זה לבנות תוכנה שדרכה אפשר יהיה להצביע, ואח"כ להציג את מספר הקולות עבור כל מועמד.השאלה היא איך תוכל להבטיח שכל תלמיד הצביע רק פעם אחת הצביע 10 פעמים כשהוא היה מול התוכנה?הרי אין לך בסיס נתונים המכיל את כל תלמידי ביה"ס (במקרה והיה לך היית יכול לבקש מהתלמיד שמצביע שיכניס גם את השם שלו כשהוא מצביע, ככה היית יכול לעקוב אחרי מי שכבר הצביע ע"י שמירת ערך בשדה מסויים של התלמיד בבסיס נתונים שיציין שהוא כבר הצביע).
פורסם 2005 בספטמבר 1120 שנים תתן לו אפשרות להצביע רק פעם אחת, ואחר כך אתה צריך להכניס סיסמה כדי לשחרר את התוכנה.אחרי כל הצבעה תצטרך להיכנס ולהכניס את הסיסמה.אלא אם כן אתה מכניס לשם את כל תעודות הזהות של התלמידים ואז אתה פשוט מבקש ממנו להכניס את זה.
פורסם 2005 בספטמבר 1120 שנים מחבר שמע זה לא קריטי אחי, המורים ישגיחו ומי שיצביע פעמיים יחטוף כאפה, אז הבעיה הזאת נפתרה
פורסם 2005 בספטמבר 1220 שנים אני יכול לעשות לך משהו פשוט בVB אם אתה רוצה. תדאג לעלות את זה עד 3 ואני יעשה את זה בשיעור(יש לי היום VB במקרה ).
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.