@ארי כתב בהדפסת דוחות ממספר עד מספר | אקסס:
ובדוח אתה עושה קיבוץ לפי מספר איזור עם כותרת תחתונה. ובכותרת תחתונה של המספר איזור אתה מגדיר 'כפה עמוד חדש' לאחר מקטע.
@אוריי ניסית את זה?
@ארי כתב בהדפסת דוחות ממספר עד מספר | אקסס:
ובדוח אתה עושה קיבוץ לפי מספר איזור עם כותרת תחתונה. ובכותרת תחתונה של המספר איזור אתה מגדיר 'כפה עמוד חדש' לאחר מקטע.
@אוריי ניסית את זה?
DoCmd.OpenReport "דוח", acViewPreview, , (([מספר איזור] >= 1 And [מספר איזור] <= 5))
עריכה: עכשיו אני רואה שכתבת שכבר בשאילתה מסוננים המספרי איזור, אז איפה הבעיה נמצאת?
@אוריי איך אתה מדפיס? בקוד VBA?
אתה פשוט צריך להכניס פרמטר של סינון בקוד.
ובדוח אה עושה קיבוץ לפי מספר איזור עם כותרת תחתונה. ובכותרת תחתונה של המספר איזור אתה מגדיר 'כפה עמוד חדש' לאחר מקטע.
@חייםיודלביץ כתב בקיצורי מקלדת באקסס:
ניתן גם להוסיף קיצורי מקשים שיפעלו בכל חלון האקסס ללא שיוך הקיצור לטופס.
אתה יודע האם יש אפשרות ללכוד דרך המאקרו הזה כל לחיצה על קונטרול לדוג'?
אני יסביר, אני הייתי רוצה להשתמש במאקרו הזה בשביל למנוע מהמשתמש בתוכנה ללחוץ על צירופי מקשים עם קונטול או שיפט וכדו' כדי למנוע ממנו לצאת מהתוכנה.
האם יש אפשרות לעשות איזה קיצור מקשים כללי לכל מה שמכיל קונטרול?
תודה.
@dovid האמת שזה לא כ"כ נצרך.
יותר סקרנות, ומחשבה שאולי יש איזה שגיאה באתר שיכולה להתנקם בי בהמשך גם באקסס.
Function SendRequest()
Dim URL As String
Dim objXmlHttp As Object
Dim strRet As String
Set objXmlHttp = CreateObject("MSXML2.XMLHTTP")
URL = "https://kesherhk.info/ConnectToKesher/ConnectToKesher?userName=XXXXXXX&password=XXXXXXXXXXX&func=GetTrans&fromDate=02/18/2023&toDate=02/20/2023&format=json"
objXmlHttp.Open "GET", URL, False
objXmlHttp.send
Debug.Print objXmlHttp.ResponseText
objXmlHttp.abort
Set objXmlHttp = Nothing
End Function
הקוד הזה עובד מצוין.
@ivrtikshoret זה הקישור שלי
https://kesherhk.info/ConnectToKesher/ConnectToKesher?userName=XXXXXXXX&password=XXXXXXXXXXXX&func=GetTrans&fromDate=02/15/2023&toDate=02/15/2023&format=json
בדפדפן אני אכן מכניס את הכתובת url למעלה בשורת החיפוש.
גם בpostman (ובקוד VBA) אני שולח דרך GET.
זה מה שנשלח בדפדפן:

וזה מה שאני מקבל חזרה
<Error>
<Message>An error has occurred.</Message>
</Error>
ניסיתי לשחק בpostman עם הנתונים, ורק כשהכנסתי גם את הערך של Accept חזרה שגיאה.
תודה.
שכחתי לציין ואולי זה רלוונטי, שאני מצפה לקבל חזרה מחרוזת json מהשרת.
@ivrtikshoret פשוט מכניס כתובת url
שלום וברכה.
יש לי שגיאה משונה במחשב....
יש לי כתובת לשליחת בקשת API - GET, וכשאני שולח אותה בדפדפן חוזרת שגיאה 500 Internal Server Error.
אבל אם אני שולח את אותה בקשה בדיוק דרך VBA באקסס או דרך postman זה עובד מצוין.
חפרתי קצת בpostman וגיליתי שכשאני שולח דרך הדפדפן נשלח גם Headers בשם Accept עם הערך הזה:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
אבל בpostman הוא לא נשלח, ואם אני מוסיף אותו ידנית לpostman חוזרת שגיאה כנ"ל.
א. מה אומר הפרמטר הזה? וב. איך אני דואג שהוא לא יישלח גם בדפדפן?
ניסיתי לנקות מטמון או עוגיות וזה לא עזר.
תודה רבה!
@clickone כתב בשגיאה בשליחת API - אקסס:
בדיקה פשוטה שאפשר לעשות זה התקנת מחשב נקי ובדיקה, או בדיקה של הרצת הקוד במחשב אחר
כמו שכתבתי למעלה הקוד עובד בכל מחשב אחר.
אני יועד בבירור שהAPI הזה בטוח ותקין, ואין לי שום סיבה לחשוב שמשהו שם לא מאובטח.
להמשיך עם התיקון שנעשה וזהו? או להמשיך לחפור על הנושא?
תודה לכולם!
@dovid אין לי נטפרי או רימון, אבל כן יש לי סינון של הספק שלי שיש לו white list, אבל אם בדפדפן זה עובד אז לא אמרוה להיות בעיה של תעודות אבטחה.
@OdedDvir כתב בשגיאה בשליחת API - אקסס:
@ארי נסה להוסיף גם את הכותרת הבאה:
oHttp.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"
לא עזר
@dovid כתב בשגיאה בשליחת API - אקסס:
objHTTP.SetOption 2, objHTTP.GetOption(2)
עזר!!!
תודה!
עכשין רק בשביל הידע של אחד שממש לא מבין ברשתות וSSL.... מה עשיתי שם?
תודה.
Dim oHttp As MSXML2.ServerXMLHTTP60
Dim sURL As String
Dim Body As String
Body = "{ ""Details"":{""ExternalIdentifier"":null,""NoVAT"":null,""SearchMode"":null,"""
Body = Body & "Name"":""" & name & """,""Phone"":" & Phone & ",""EmailAddress"":" & Mail & ","""
Body = Body & "City"":" & City & ",""Address"":" & Add & ",""ZipCode"":null,"""
Body = Body & "CompanyNumber"":" & tz & ",""ID"":null,""Folder"":null},"""
Body = Body & "Credentials"":{""CompanyID"":12345678,""APIKey"":""XXXXXXXXXXXXXXX""},""ResponseLanguage"":null}"""
Set oHttp = New ServerXMLHTTP60
sURL = "https://www.myofficeguy.com/api/accounting/customers/create/"
oHttp.Open "POST", sURL, False
oHttp.setRequestHeader "Accept", "text/plain"
oHttp.setRequestHeader "Content-type", "application/json-patch+json"
oHttp.send (Body)
Customers = oHttp.responseText
@mekev לא נשלח פרמטר של תאריך.
זה הפרמטרים שנשלחים (מתוך הדוגמא באתר).
{
"Details": {
"ExternalIdentifier": null,
"NoVAT": null,
"SearchMode": null,
"Name": "Danny Dean",
"Phone": "050-1234567",
"EmailAddress": "danny@dean.com",
"City": null,
"Address": null,
"ZipCode": null,
"CompanyNumber": "514000123",
"ID": null,
"Folder": null
},
"Credentials": {
"CompanyID": 12345678,
"APIKey": "AsOUq8u8Mk80G4IZ7AZEYhKccOEzHy9HQBNuf41jBGN6mekFIN"
},
"ResponseLanguage": null
}
זה בקשה להוספת לקוח במערכת (לא של הנפקת קבלה בפועל)
תודה!
@mekev אכן התובנות נכונות.
סתם בשביל הרחבת הידע, יש קשר בין התאריך של המחשב לפעולות שהוא מבצע ברשת?
@mekev זה תמונה מאתמול.....
למה התאריך אמור להשפיע?
@mekev כן.

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

יצויין שאם אני שולח את הבקשה דרך הדוגמא באתר אני רואה בcontrol (F12) את הפרטים של הבקשה והם בדיוק כמו שאני שולח.
יותר מזה קשה, שבכל מחשב אחר הקוד באקסס עובד מצוין, יש רק מחשב אחד שבו דרך האתר זה עובד ודרך הקוד לא.
מה יכולה להיות הבעיה?
תודה רבה!
@hp079 לפי הדוגמא שלך זה הקוד שאתה צריך
Private Sub פקודה16_Click()
Dim DynamicCondition As New Collection
If Not IsNull(ts_active) Then DynamicCondition.Add "פעיל=" & ts_active
If Not IsNull(ts_conected) Then DynamicCondition.Add "מחובר=" & ts_active
If Len(txt_sug) > 0 Then DynamicCondition.Add "סוג='" & CStr(txt_sug) & "'"
If Len(txt_name) > 0 Then DynamicCondition.Add "שם='" & CStr(txt_name) & "'"
DoCmd.OpenReport "דוח1", acViewPreview, WhereCondition:=JoinCollection(DynamicCondition, " AND ")
End Sub
Function JoinCollection(col As Collection, operator As String)
Dim result As String
For i = 1 To col.Count
If i <> 1 Then result = result & operator & " "
result = result & "(" & col(i) & ") "
Next
JoinCollection = result
End Function