ייצוא תוצאת פונקציה אל קובץ טקסט

לוי א

משתמש צעיר
שלום וברכה
יש לי פונקציה של לולאת For שעוברת על טבלה ויוצרת ממנה מחרוזת טקסט
אני מעונין לייצא את המחרוזת שהוחזרה כך שתשמר כקובץ טקסט (פנקס רשימות) במחשב
ניסיתי דרך
קוד:
    DoCmd.OutputTo acOutputFunction, "שם הפונקציה" , "MS-DOSText(*.txt)", "", False, "", , acExportQualityPrint
והוא מחזיר לי שגיאה ('אין רשומה נוכחית')
האם מישהו יכול להדריך אותי איך לבצע את זה?

אני מדגיש שהפונקציה עצמה תקינה (כשאני מבקש שיציג את המחרוזת בMsgBox הוא מציג אותה כראוי)
בתודה מראש
 

לוי א

משתמש צעיר
אני מצרף בזאת את הפונקציה שאני רוצה לייצא (כי לפי השגיאה - 'אין רשומה נוכחית' זה נראה שגיאה בלולאה - אם כי כמו שציינתי הפנקציה עובדת בפני עצמה)

קוד:
Public Function Tlist()
Set Rs = CurrentDb.OpenRecordset("Names")
Rs.MoveFirst
For i = 1 To DCount("First_Name", "Names")
Phone = Rs!Phone
Name1 = Rs!First_Name
Name2 = Rs!Last_Name
Yeshiva = Rs!Yeshiva
vaad = Rs!Vaad
Tlist = Tlist & Name1 & "," & Name2 & "," & Yeshiva & "," & vaad & "," & Phone & Chr(13)
Rs.MoveNext
Next i

End Function

תודה רבה
 
נערך לאחרונה ב:

moishy

משתמש סופר מקצוען
מנוי פרימיום
כדי שTlist תהיה פונקציה עליה להחזיר ערך, כעת הוא רק מבצע פעולה אבל לא מחזיר ערך.
להפוך אותו לפונקציה בשורה הראשונה של הפונקציה יש להצהיר על סוג הערך שהפונקציה מחזירה, במקרה שלך הוא אמור להחזיר טקסט, ולכן יש להצהיר עליו כString.
קוד:
Public Function Tlist() As String
    Set Rs = CurrentDb.OpenRecordset("Names")
    Rs.MoveFirst
    For i = 1 To DCount("First_Name", "Names")
        Phone = Rs!Phone
        Name1 = Rs!First_Name
        Name2 = Rs!Last_Name
        Yeshiva = Rs!Yeshiva
        vaad = Rs!vaad
        Tlist = Tlist & Name1 & "," & Name2 & "," & Yeshiva & "," & vaad & "," & Phone & Chr(13)
        Rs.MoveNext
    Next i
End Function

ישנם שני דרכים פשוטות לכתוב מחרוזת טקסט לקובץ, כאן יצרתי פונקציה נפרדת לכל אחד מהם.
קוד:
Sub WriteTextToFileFso(strFilePath As String, strText As String)
    Dim fso As Object
    Dim Fileout As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set Fileout = fso.CreateTextFile(strFilePath, True, True)
    Fileout.Write strText
    Fileout.Close
End Sub

Sub WriteTextToFileFileStream(strFilePath As String, strText As String)
    Open strFilePath For Output As #1
    Print #1, strText
    Close #1
End Sub

השימוש בשתי הפונקציות זהה, יש לקרוא לפונקציה לאחר שנקבע מהו הטקסט שברצונך לכתוב בקובץ, כלומר שורה אחת לפני End Function
שם הפונקציה נתיב הקובץ, הטקסט לכתוב בקובץ

קוד:
WriteTextToFileFso "c:\users\user\desktop\file.txt", Tlist
או
קוד:
WriteTextToFileFileStream "c:\users\user\desktop\file.txt", Tlist
 

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

הפרק היומי

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


תהילים פרק קלא

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

אתגר AI

ממה זה עשוי...? • אתגר 16

לוח מודעות

למעלה