עזרה בבניית פרויקט פשוט באקסס - עמוד 2 - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

עזרה בבניית פרויקט פשוט באקסס


Cyron

Recommended Posts

אני חשבתי על משהו קצת שונה, כל אחד יבחר 3 וילחץ על פקד הצבעה

בתוך הפקד חשבתי להפעיל מקרו שבודק איזה תיבות מסומנות בעזרת פקודת iif, ומעלה את הערך של המועמדים שנבחרו.

הידע שחסר לי הוא:

1. איזה פקודת מקרו לשים בשביל לבצע את התנאי הזה ?

2. איך בעזרת if אני בודק אם תיבה מסומנת או לא ?

3. איך מעלים ערך בטבלה של מועמדים ?

קישור לתוכן
שתף באתרים אחרים

OK אחרי מעט רענון ה VB שלי (תוך עזרה מגוגל) בניתי לך טופס להצבעה שעושה את מה שרצית. צירפתי מסד שמדגים את הפעולה.

בעיקרון בטופס יש שלוש תיבות משולבות, שערכיהן לקוחים מטבלה (candidates במסד שצירפתי).

כל רשומה בטבלת המועמדים מורכבת משם המועמד ומספר ההצבעות שהוא קיבל.

תחילה נגדיר שני משתנים: אחד עבור הרשומה של המועמד שנבחר ואחד עבור שאילתת ה sql שבוחרת את המועמד הרצוי על פי הבחירה בתיבה המשולבת.

Dim cands As ADODB.Recordset
Dim 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 = Nothing
End 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 If
End Sub

זה הכל. פשוט מאוד.

מקווה שעזרתי

[attachment deleted by admin]

קישור לתוכן
שתף באתרים אחרים

שמע אחי, המטרה של הפרויקט זה לערוך בחירות במועצת תלמידים בביה"ס של אמא שלי, היא אמרה לי שאין לה כח לספור פתקים אז אמרתי לה שאולי אני יוכל לעזור לה, בעזרתכם כמובן, כי הידע שלי כבר מזמן נשכח, בכל מקרה עכשיו היא אמרה לי שאין אצלהם בביה"ס אקסס במחשבים אז רציתי לדעת מה אפשר לעשות ?

תודה. :yelclap:

קישור לתוכן
שתף באתרים אחרים

אה הבנתי...

אז מה שאתה צריך בעצם זה לבנות תוכנה שדרכה אפשר יהיה להצביע, ואח"כ להציג את מספר הקולות עבור כל מועמד.

השאלה היא איך תוכל להבטיח שכל תלמיד הצביע רק פעם אחת הצביע 10 פעמים כשהוא היה מול התוכנה?

הרי אין לך בסיס נתונים המכיל את כל תלמידי ביה"ס (במקרה והיה לך היית יכול לבקש מהתלמיד שמצביע שיכניס גם את השם שלו כשהוא מצביע, ככה היית יכול לעקוב אחרי מי שכבר הצביע ע"י שמירת ערך בשדה מסויים של התלמיד בבסיס נתונים שיציין שהוא כבר הצביע).

קישור לתוכן
שתף באתרים אחרים

תתן לו אפשרות להצביע רק פעם אחת, ואחר כך אתה צריך להכניס סיסמה כדי לשחרר את התוכנה.

אחרי כל הצבעה תצטרך להיכנס ולהכניס את הסיסמה.

אלא אם כן אתה מכניס לשם את כל תעודות הזהות של התלמידים ואז אתה פשוט מבקש ממנו להכניס את זה.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...