הדפסת דוחות דרך RecordSet

ארי4791

משתמש צעיר
יש לי טופס שבו ממלאים כמה שדות ובלחיצה על אישור הוא מוסיף כמה שורות לטבלה.
אני רוצה שכשהוא מוסיף אותם לטבלה הוא ידפיס דוח לכל רשומה.
ואני יפרט: יש לי טבלה עם תלושים שאני מוכר, יש טופס אחד שבו מוכרים תלוש בודד כל פעם ואז הוא מדפיס אותו, אבל יש לי גם טופס שדרכו אני רוצה להדפיס כמה תלושים בכל פעם, כל אחד עם נתונים שונים שאותם הקוד VB מוסיף (קודים שונים לכל תלוש), זה קוד של for שעובר לפי מספר התלושים שכתבתי לו, ודרך RecordSet הוא מוסיף אותם לטבלה.
איך כותבים בקוד שאחרי שהוא מוסיף לטבלה הוא ידפיס את התלושים האלו?
תודה רבה מאוד
 

לוי א

משתמש צעיר
אתה יכול להכניס בתוך לולאת ה FOR לפני שורת NEXT - פקודה שיפתח את הדוח הרצוי, והגדרה נוספת שהנתונים שלו יהיו מתוך הרשומה הנוכחית ב RecordSet
 

לוי א

משתמש צעיר
אולי תשלח את קוד הFOR שלך ואני יוסיף לתוכו את ההגדרה
 

ארי4791

משתמש צעיר
קוד:
Private Sub אישור_Click()
'On Error GoTo ביהמז_err

Dim rs As DAO.Recordset
Dim mo As DAO.Recordset
Dim code As DAO.Recordset

Dim kod As String
Dim nul As String
Dim sum As String
Dim store As String
Dim item As String
Dim nm As String
Dim barcode As String

'מילוי פרטי חנות פריט ומוכר
    store = [Form_בין הזמנים הדפסה].חנות
    item = [Form_בין הזמנים הדפסה].פריט
    nm = [Form_בין הזמנים הדפסה].מוכר
    sum = [Form_בין הזמנים הדפסה].כמות
    
'מילוי ברקוד מטבלת ברקודים
Set mo = CurrentDb.OpenRecordset("SELECT * FROM מוצרים WHERE ([קוד מוצר] = " & מזהה & ")")

Set code = CurrentDb.OpenRecordset("SELECT * FROM ברקודים WHERE ([קוד מוצר] = " & מזהה & " )")

'מילוי ברקוד אקראי
nul = DMax("[קוד]", "[תלושים]") + 1

Dim i, num

Set rs = CurrentDb.OpenRecordset("SELECT * FROM [בין הזמנים]")

For i = 1 To sum

'קבלת ברקוד מטבלת ברקודים
If mo![ברקוד חנות] = True Then
    If code.RecordCount <> 0 Then
        Me.ברקוד = DMin("[קוד]", "[ברקודים]", "[קוד מוצר] = " & Me.מזהה)
    Else
        MsgBox "לא נמצאו שוברים למכירה בחנות זו" & Chr(13) & "אנא פנה לחנות לקבלת ברקודים חדשים", vbCritical + vbMsgBoxRight + vbOKOnly, "שוברים 4000"
    End If
End If

'מילוי ברקוד מטבלת מוצרים
If mo![ברקוד קבוע] = True Then
    Me.ברקוד = mo!ברקוד
End If

    rs.AddNew
        rs!קוד = nul
        rs!חנות = store
        rs!פריט = item
        rs![סכום לתשלום] = mo!מחיר
        rs!הערות = nm
        rs![ברקוד לחנות] = Me.ברקוד
    rs.Update

If mo![ברקוד חנות] = True Then
    DoCmd.SetWarnings False
        DoCmd.RunSQL ("delete * from ברקודים WHERE (קוד = " & ברקוד & ") ")
    DoCmd.SetWarnings False
End If
    
    kod = DMax("[קוד]", "[בין הזמנים]") + 1
    
    nul = kod
    num = num + 1
Next
    
    MsgBox "ההדפסה הושלמה בהצלחה", vbInformation + vbOKOnly + vbMsgBoxRight, "שוברים 4000"
    Me.בחירה = Null
    Me.מוכר = Null
    Me.חנות = Null
    Me.פריט = Null
    Me.כמות = Null
    Me.מזהה = Null
    Me.ברקוד = Null
    
    DoCmd.GoToControl "בחירה"
    
GoTo 2

ביהמז_err:
    MsgBox Error$
    
2:
End Sub

זה כל הקוד של ההדפסה וההוספה לטבלה
תודה רבה מאוד!
 

ארי4791

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

קבצים מצורפים

  • שוברים.accdb.txt
    KB 692 · צפיות: 10

FullTime

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

כדי לקבל את הרשומות הרצויות,
תקח dmax של טבלה מוצרים, לפני הוספת הרשומות.
ותכתוב ב whereCondition גדול מה dmax שלקחת.
 

FullTime

משתמש מקצוען
קוד:
DoCmd.OpenReport "שובר בין הזמנים" , acViewPreview , , "[קוד מוצר] > " & dmax
אני רואה שהדוח מסונן [במקור הנתונים] לפי מזהה שבטופס שובר בין הזמנים... לא טוב לך.
תעשה אותו דבר בטופס השני, רק במקום הסימון > תשים = לפקד שבטופס...
 

ארי4791

משתמש צעיר
הצלחתי!
יש לך מושג למה כשאני מדפיס את השובר לPDF אז את הברקוד הוא מדפיס בג'יבריש?
זה גופן Free 3 of 9.
תודה רבה מאוד
 

אולי מעניין אותך גם...

הפרק היומי

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


תהילים פרק קכב

א שִׁיר הַמַּעֲלוֹת לְדָוִד שָׂמַחְתִּי בְּאֹמְרִים לִי בֵּית יְהוָה נֵלֵךְ:ב עֹמְדוֹת הָיוּ רַגְלֵינוּ בִּשְׁעָרַיִךְ יְרוּשָׁלִָם:ג יְרוּשָׁלִַם הַבְּנוּיָה כְּעִיר שֶׁחֻבְּרָה לָּהּ יַחְדָּו:ד שֶׁשָּׁם עָלוּ שְׁבָטִים שִׁבְטֵי יָהּ עֵדוּת לְיִשְׂרָאֵל לְהֹדוֹת לְשֵׁם יְהוָה:ה כִּי שָׁמָּה יָשְׁבוּ כִסְאוֹת לְמִשְׁפָּט כִּסְאוֹת לְבֵית דָּוִיד:ו שַׁאֲלוּ שְׁלוֹם יְרוּשָׁלִָם יִשְׁלָיוּ אֹהֲבָיִךְ:ז יְהִי שָׁלוֹם בְּחֵילֵךְ שַׁלְוָה בְּאַרְמְנוֹתָיִךְ:ח לְמַעַן אַחַי וְרֵעָי אֲדַבְּרָה נָּא שָׁלוֹם בָּךְ:ט לְמַעַן בֵּית יְהוָה אֱלֹהֵינוּ אֲבַקְשָׁה טוֹב לָךְ:
נקרא  18  פעמים

לוח מודעות

למעלה