נתונים לאקסס מאנדרואיד
-
שבוע טוב.
אני צריך לבנות תוכנה באקסס, שיהי אפשרות להזין נתונים אליה גם מאנדרואיד.
אני יודע שאין איך להריץ אקסס באנדרואיד, אבל אני מחפש אפשרות רק להזין נתונים לתוכנה אפי' בלי הטפסים שלה.
חשבתי על אופציה (לא בדקתי עדיין בפועל) לבנות את התוכנה באקסס, ולעשות טופס גוגל עם השדות כמו בתוכנה, ולהגדיר שישמור את הנתונים בגוגל שיטס (אני חושב שיש אפשרות כזו), ואז באקסס לכתוב איזה קוד שייבא את הנתונים מהשיטס לתוכנה.
נראה לכם משהו שיכול לעבוד? או שיש למישהו רעיון אחר?
תודה!עריכה: התחלתי לבדוק את הדברים, וכרגע די נתקעתי בקטע שאני לא מצליח למצוא אפשרות לייבא נתונים מטופס גוגל או מטופס של מיקרוסופט לאקסס, האם יש אפשרות כזו בכלל?
שוב תודה. -
@ארי כתב בנתונים לאקסס מאנדרואיד:
עריכה: התחלתי לבדוק את הדברים, וכרגע די נתקעתי בקטע שאני לא מצליח למצוא אפשרות לייבא נתונים מטופס גוגל או מטופס של מיקרוסופט לאקסס, האם יש אפשרות כזו בכלל?
אתה יכול לבנות endpoint בגוגל סקריפט שיגיש את המידע
או אם זה רלוונטי באקסס, לשלוח ישירות וובהוק לאקסס מגוגל סקריפט עם המידע שנשלח בטופס -
לגבי Google Forms הייתי ממליץ על AppSheet שהוא יכול לייצר לך טפסים אם פעולות מגוונות (אוטומציות)- חשוב לציין גם בחינמי זה מספק מאוד ומרשים.
במאמר מוסגר (אם כבר מדברים על AppSheet הייתי ממליץ לך לעבור לגמרי לזה. אממה יכול להיות שאתה מפיק הרבה דוחות עם מגוון שאילתות ופעולות מורכבות - א"כ מובן מאליו להישאר בקונספציה - בנימה אישית אני גם סובל מזה)
תכלס': הייתי ממליץ לך לבדוק את הקוד של Google Script אני חושב שתוכל לייצר לינק שמביא לך נתונים מ Google Sheets - א"כ תוכל לייצר קוד כזה של כמה שורות בקלות, ותוכל אפי' להיעזר ב ChatGPT
בהצלחה. -
תודה לכולם.
@צדיק-תמים אני לא חושב ששייך באקסס לקבל וובהוק בלי קוד שירוץ כל הזמן בפועל.
@avi-rz אני צריך טופס די מינימלי של קבלת כמה נתונים, לא משהו מורכב מדי@dovid אתה חושב שקוד נוד יהיה יעיל יותר מVBA? איפה לכתוב אותו - בגוגל סקריפט?
אפשר בבקשה מראי מקומות שאני אתחיל לבדוק מה אני מבין לבד.שוב תודה!
-
@ארי קוד של כל סביבה שאיננה אקסס, יכול:
א. להאזין לוובהוק
ב. לבדוק כל X זמן את השיטס ולמלא את האקסס בנתוניםאת ב' די ברור לי שאפשר לעשות גם באקסס,
אבל זה גם יהיה טוב וקל פי כמה וגם אני מנצל הזדמנות כדי להוציא ממישהו ממעגל האקסס (לא להוציא לגמרי, סך הכל שיהיה לו עוד כלי בארגז).
אני לא יכול לתת לך מראי מקומות, תיצור איתי קשר באישי. -
@dovid ברור לי שאתה צודק בגישה הזו שצריך להתקדם מאקסס לתכנות אמיתי. רק שאני עדיין לא נמצא במקום כזה...
כרגע מצאתי פתרון כזה: אני מגדיר בטופס גוגל למלא את הנתונים בגוגל שיטס, עשיתי במחשב קובץ אקסל עם חיבור נתונים לשיטס, ואז קוד VBA שמרענן את הנתונים באקסל ומייבא אותם לאקסס.
זה הקוד:Public Function GetNewData() Dim XL As Excel.Application, WB As Excel.Workbook Dim WKS As Excel.Worksheet Dim path As String 'קובץ האקסל עם חיבור לגוגל שיטס path = "C:\Users\1\Downloads\חוברת1.xlsm" 'פתח את קובץ האקסל כדי לרענן את הנתונים Set XL = New Excel.Application XL.Visible = False Set WB = XL.Workbooks.Open(path) Set WKS = WB.Worksheets(1) WKS.QueryTables.Item(1).Refresh 'המתן לסיום הריענון Sleep (2000) 'יבא את הנתונים לטבלה חדשה זמנית DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, "חדשים", path, True 'סגור את הקובץ ונקה את המשתנים WB.Close False Set XL = Nothing Set WB = Nothing Set WKS = Nothing 'יבא נתונים חדשים מהטבלה הזמנית לטבלת הנתונים CurrentDb.Execute "INSERT INTO נתונים SELECT חדשים.* FROM חדשים LEFT JOIN נתונים ON (חדשים.תאריך = נתונים.תאריך) AND (חדשים.טלפון = נתונים.טלפון) AND (חדשים.[שם פרטי] = נתונים.[שם פרטי]) AND (חדשים.[שם משפחה] = נתונים.[שם משפחה]) AND (חדשים.[חותמת זמן] = נתונים.[חותמת זמן]) WHERE (((נתונים.[חותמת זמן]) Is Null))" 'מחק את הטבלה הזמנית DoCmd.DeleteObject acTable, "חדשים" End Function
כמו שאמרתי, ברור שזה לא דרך המלך, אבל כרגע זה מה שאני יודע.
מה דעתכם על זה?
תודה. -
@ארי זכרתי שכבר היו דברים מעולם,
מצאתי את זה https://tchumim.com/topic/5853
https://tchumim.com/topic/12436
הפעם באמת נזהרת ופתחת נושא בקטגוריה תוכנות ולא בתכנות
אגב הAppSheet שהביא @avi-rz אכן שווה בדיקה. -
@ארי כתב בנתונים לאקסס מאנדרואיד:
עשיתי במחשב קובץ אקסל עם חיבור נתונים לשיטס
איך? ע"י פרסום באינטרנט? להוי ידוע שזה פתוח לכל מאן דבעי - בלי הרשאות גישה.
אגב, ("הצעה רעיונית - ללא נסיון") אם מדובר במחשב יחיד שמשתמש אפשר לנסות להתקין את הGoggleDrive על המחשב ולנסות לייבא את הקובץ (אם הוא יצליח למרות שהוא לא בפורמט xlsx כנראה - אולי בפורמט txt או html)
-
@avi-rz כתב בנתונים לאקסס מאנדרואיד:
איך? ע"י פרסום באינטרנט?
אכן
@avi-rz כתב בנתונים לאקסס מאנדרואיד:
להוי ידוע שזה פתוח לכל מאן דבעי - בלי הרשאות גישה.
אני יודע. אבל בשביל להכנס לקובץ צריך לדעת את הURL שלו. לא? ולמה שמישהו ינחש אותו?
@avi-rz כתב בנתונים לאקסס מאנדרואיד:
צעה רעיונית - ללא נסיון"
מעניין. ננסה.
-
מצורף קוד שמוריד את הנתונים מגוגל שיטס שפורסם באינטרנט כקובץ CSV
שימו לב לשנות את הדברים הבאים
- כתובת הקובץ כמובן
- שם הטבלה
- לייצר את הטבלה
Option Compare Database Public Function CorrectHebrew(gibberish As String) As String Dim inStream As ADODB.Stream Set inStream = New ADODB.Stream inStream.Open inStream.Charset = "ISO-8859-1" inStream.WriteText gibberish inStream.Position = 0 ' bring it back to start preparing for the ReadText inStream.Charset = "UTF-8" CorrectHebrew = inStream.ReadText ' return the corrected text inStream.Close End Function Private Function GetFileFromWeb2(ByVal sURL As String) As String '* Requires Tools->References->Microsoft WinHTTP Services, version 5.1 Dim oWinHttp As WinHttp.WinHttpRequest Set oWinHttp = New WinHttp.WinHttpRequest oWinHttp.Open "GET", sURL, False oWinHttp.SetRequestHeader "Accept-Language", "he-IL,he;q=0.9,en-US;q=0.8,en;q=0.7" oWinHttp.SetRequestHeader "Content-Type", "text/csv" oWinHttp.Send GetFileFromWeb2 = CorrectHebrew(oWinHttp.ResponseText) End Function Private Sub פקודה38_Click() Dim db As DAO.Database Dim rs As DAO.Recordset Dim strSQL As String Dim strURL As String Dim strTableName As String Dim objStream As Object Dim strData As String Dim arrData() As String Dim arrFields() As String Dim arrRow() As String Dim i As Long ' Set the URL of the CSV file strURL = "https://docs.google.com/spreadsheets/d/e/2PACX-1vSrdzm22JIw1yW-D00DEtB_IrbujA6VHujfhV82BSkrGF-Oo2roVgnxSDWPrvo7QdXVWpfLhHDK4xDO/pub?gid=0&single=true&output=csv" ' Set the name for the new table strTableName = "NewTable" ' Set up a new database object Set db = CurrentDb strData = GetFileFromWeb2(strURL) ' Split the CSV data into rows and fields arrData = Split(strData, vbCrLf) arrFields = Split(arrData(0), ",") ' Assumes the first row contains field names ' Import the CSV data into the new table Set rs = db.OpenRecordset(strTableName) For i = 1 To UBound(arrData) arrRow = Split(arrData(i), ",") rs.AddNew For j = 0 To UBound(arrFields) rs.Fields(j).Value = arrRow(j) Next j rs.Update Next i rs.Close ' Close the recordset and database objects Set rs = Nothing Set db = Nothing MsgBox "Table created and data imported successfully!" End Sub
-
@A0533057932 כתב בנתונים לאקסס מאנדרואיד:
אופיס פורמס
אם אני זוכר טוב, לא ניתן להגדיר שהנתונים יישמרו באקסל אלא ניתן לייצא לקובץ אקסל שיימשר במחשב או בוואן דרייב, כך שזה לא יתאים לסנכרון אוטומטי אונליין.