הודעה נשלחת לשורת הסטטוס בכל שלב, למען ידע המשתמש מה מתרחש.
Option Compare Database
Option Explicit
#If Win64 And VBA7 Then
Public Declare PtrSafe Function InternetGetConnectedState Lib "wininet.dll" (lpdwFlags As LongPtr, ByVal dwReserved As Long) As Boolean
#Else
Public Declare Function InternetGetConnectedState Lib "wininet.dll" (lpdwFlags As Long, ByVal dwReserved As Long) As Boolean
#End If
Sub DownloadFile(myURL As String, FileNameSave As String)
'myURL = "http://www.bankisrael.gov.il/he/BankingSupervision/BanksAndBranchLocations/Lists/BoiBankBranchesDocs/snifim.xls"
Dim WinHttpReq As Object
Dim oStream As Object
' בדיקה אם קיים חיבור לאינטרמת
If InternetGetConnectedState(0, 0) Then
Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
WinHttpReq.Open "GET", myURL, False, "", ""
WinHttpReq.send
myURL = WinHttpReq.responseBody
If WinHttpReq.Status = 200 Then
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
oStream.Write WinHttpReq.responseBody
oStream.SaveToFile FileNameSave, 2 ' 1 = no overwrite, 2 = overwrite
oStream.Close
End If
Set WinHttpReq = Nothing
Set oStream = Nothing
Else
MsgBox "לא זוהה חיבור לאינטרמת!" & "לא ניתן לעדכן את רשימת הסניפים.", vbCritical + vbMsgBoxRight + vbMsgBoxRtlReading, "מנותק!"
End If
End Sub
Public Function ImportBranchXml()
On Error Resume Next
Dim sFile As String
SysCmd acSysCmdSetStatus, "מוחק טבלה זמנית..."
DoCmd.DeleteObject acTable, "Branch"
sFile = CurrentProject.Path & "" & Format(Now, "ddmmyyyynnss") & ".xml"
SysCmd acSysCmdSetStatus, "מוריד קובץ מאתר בנק ישראל..."
DownloadFile "http://www.bankisrael.gov.il/he/BankingSupervision/BanksAndBranchLocations/Lists/BoiBankBranchesDocs/snifim_he.xml", sFile
SysCmd acSysCmdSetStatus, "מייבא רשימת סניפים מהקובץ הזמני..."
ImportXML sFile
SysCmd acSysCmdSetStatus, "מוחק קובץ זמני..."
Kill sFile
SysCmd acSysCmdSetStatus, "מוחק את הסניפים מהטבלה"
CurrentDb.Execute "DELETE * FROM TblBanks"
SysCmd acSysCmdSetStatus, "מייבא רשימת סניפים מהטבלה הזמנית..."
CurrentDb.Execute "INSERT INTO tblBanks ( [קוד בנק], [שם בנק], [מס סניף], [שם סניף], [כתובת סניף], יישוב, מיקוד, טלפון, פקס ) SELECT BRANCH.Bank_Code, BRANCH.Bank_Name, BRANCH.Branch_Code, BRANCH.Branch_Name, BRANCH.Branch_Address, BRANCH.City, BRANCH.Zip_Code, BRANCH.Telephone, BRANCH.Fax FROM BRANCH;"
SysCmd acSysCmdSetStatus, "מוחק טבלה זמנית..."
DoCmd.DeleteObject acTable, "Branch"
SysCmd acSysCmdClearStatus
End Function