שאילתת עריכה בקוד vba אקסס
-
אני רוצה לכתוב שאילתת עריכה בקוד vba באקסס
הסבתי קוד שהיה לי של שאילתת הוספה באקסס
מה שחסר לי זה הסינון לפי קוד תורם שאני לא יודע איך לרשום אותו וגם לא מצאתי תיעוד דומה לזה בחיפוש בגוגל
זה הקוד שרשמתיDim EditAbsent As Recordset Set EditAbsent = CurrentDb.OpenRecordset("רשימת תורמים") EditAbsent.Edit EditAbsent!נפקד = True EditAbsent.Update
השדה של הסינון הוא קוד_תורם = XXXX
אשמח לעזרהגילוי נאות: למי שיש לו בעיה עם העברית, אני מודע לבעיה אבל לצערי אני עובד על קובץ קיים מ- 2005 .
-
@אוריי כתב בשאילתת עריכה בקוד vba אקסס:
שאילתת עריכה
המינוח הנכון זה שאילתת עדכון.
@אוריי כתב בשאילתת עריכה בקוד vba אקסס:
מה שחסר לי זה הסינון לפי קוד תורם שאני לא יודע איך לרשום אותו
אתה מתכוון להעביר לשאילתה פרמטר.
אני לא מספיק מכיר אבל זה נראה באינטרנט שמשתמשים עם CreateQueryDef (ובמקרה של שאילתת עדכון אז אח"כ Execute):https://stackoverflow.com/a/12528868/1271037
במקרה הזה השתמשו בקוד ולא בשם שאילתה קיימת, אבל נראה לי אפשר להשתמש בשאילתה קיימת על ידי ציון שמה בפרמטר הראשון של CreateQueryDef, והשמטת השני.
-
@dovid לא כזה הצלחתי להבין איך אני אמור לכתוב, ויתירה מזו איך זה עובד...
מצד שני את הקוד השני אני מבין טוב מאוד מה כתבתי (עד כה בכל אופן) כך שאני מאמין שגם אתה מסכים איתי שעדיף לי תיעוד של הגישה הזו.
דבר חשוב נוסף מבדיקה שלי הקוד הנ"ל שהבאתי הוא קוד מעולה הוא עורך לי את השורה הראשונה של הטבלה כך זה אומר שאם אני יודע איך לסנן את הטבלה לפי קוד תורם הקוד אמור לעבוד..
אני ינסה בכל זאת לעבור שוב על הקוד אולי (מתישהוא..) יפול לי האסימון ואני יבין מה כתוב שם.. -
@אוריי לכאו' יש שתי אפשרויות.
- כמו שיש לך, רק עם סינון כך:
Dim EditAbsent As Recordset Set EditAbsent = CurrentDb.OpenRecordset("select * from [רשימת תורמים] where קוד_תורם = 1") EditAbsent.Edit EditAbsent!נפקד = True EditAbsent.Update
- לעשות פשוט שאילתת עדכון בלי צורך בRecordSet, כך:
Currentdb.Execute "update [רשימת תורמים] set [רשימת תורמים].נפקד = true where קוד_תורם = 1"
בעיקרון האפשרות השניה היא דרך המלך, וכך לא צריך משתנים וכו', שורה אחת וזהו.