کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

به اشتراک گذاری اطلاعات کسب شده در اکسس از سایت آفیس و سایت های تخصصی خارجی
کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

به اشتراک گذاری اطلاعات کسب شده در اکسس از سایت آفیس و سایت های تخصصی خارجی

تابع API دانلود فایل از آدرس اینترنتی و یافتن فایل در پوشه خاص




Downloads bits from the Internet and saves them to a file.


Library : Urlmon.lib

DLL        : Urlmon.Dll



HRESULT URLDownloadToFile(

             LPUNKNOWN            pCaller,

             LPCTSTR              szURL,

             LPCTSTR              szFileName,

  _Reserved_ DWORD                dwReserved,

             LPBINDSTATUSCALLBACK lpfnCB

);

برای نوشتن تابع بالا برای ویندوز ۶۴ بیت باید PtrSafe را در  نیز در آن بکار ببرید


-Pcaller : را Null یا Zero انتخاب کنید

-szURL : به یک مقدار رشته ای که حاوی URL برای دانلود است اشاره می کند ( منظور آدرس سایت و پیج مربوطه ) اگر معتبر نباشد INET_E_DOWNLOAD_FAILURE را بر می گرداند البته ایندکسش را

-szFileName  : یک مقدار رشته ای حاوی نام یا مسیر کامل ، اگر حاوی مسیر باشد دایرکتوری مقصد یا هدف می بایست از قبل موجود باشد

-dwReserved : رزورشده است و بایستی صفر باشد.

-lpfnCb : عملیات دانلود می تواند کنسل شود توسط برگشت E_ABORT از هر تابع فراخوانی.این پارامتر می تواند به NULL تنظیم شود 





Windows Internet Explorer 8. URLDownloadToFile does not support IBindStatusCallbackEx and cannot be used to download files over 4 gigabytes (GB) in size. Refer instead to IBindStatusCallbackEx::GetBindInfoEx for a code example.



Sub download_multiple_photos()
dlpath = "C:\DownloadedPics\"
For i = 2 To 7
imgsrc = Cells(i, 2)
imgname = Cells(i, 1)
URLDownloadToFile 0, imgsrc, dlpath & imgname & ".jpg", 0, 0
Next i
End Sub



result = URLDownloadToFile(0, url, filePath, 0, 0)
If result = 0 Then
MsgBox ("Succeeded")
Else
MsgBox ("failed ")
End If



برای چک کردن فایل در مسیر خاص 

Syntax   

نوشتاری تابع

Dir[(pathname [, attributes)]

Dir("         " ,VbDirectory)



If Len(Dir("c:\example.mdb")) = 0 Then 

Msgbox "This file does NOT exist." 

Else 

Msgbox "This file does exist." 

End If


از مِتُد FileExists از شی FileSystemObject هم می توان استفاده کرد 


True را بر می گرداند اگر فایل مشخص شده موجود باشد و False را در زمان نبودن موضوع این است بودن یا نبودن !

Returns True if a specified file exists; False if it does not.

Syntax

نوشتاری متد به شرح ذیل است 

object.FileExists (filespec)

این متد از ۳ بخش تشکیل شده

The FileExists method syntax has these parts:

PartDescription
objectRequired. Always the name of a FileSystemObject
filespecRequired. The name of the file whose existence is to be determined. A complete path specification (either absolute or relative) must be provided if the file isn't expected to exist in the current folder.


نوشتاری موجودیت یک پوشه : 

object.FolderExists (folderspec)



  استفاده از  CreateObject و Set برای استفاده از متدهای این شئ : 



Scripting.FileSystemObject


از Set اگر استفاده نشود،  به آن مجموعه که این متدها و ویژگیها را داراست نمی توان دست یافت و با خطا مواجه خواهید شد یادتان نرود عزیزان شما در اکسس و هر زبانی با یکسری Dll سر وکار دارید و برای دسترسی به آنها باید اقداماتی نمود یا تیک آنها را در کتابخانه زد یا ...

-object.GetFile (filespec)
-object.GetFolder (folderspec)

Methods: 
Add
Copy
CreateTextFile
Delete
Move
-Properties:
DateCreated
DateLastAccessed
DateLastModified
Drive
Files
IsRootFolder
Name
ParentFolder
ShortPath
Size
SubFolders
Type





لطفاً در نظر سنجی شرکت کنید مطالب بالا قطعا برای هر اکسس کاری مفید خواهد بود و از داکیومنت خود آفیس بهره بردیم برای یادگیری شما عزیزان ، حتی نظر خیلی کم هم بدهید برای بنده باارزش خواهد بود

























تابع URLDownloadToFile جهت دانلود فایل



دانلود فایل بصورت بیت از اینترنت و ذخیره آنها در یک فایل 







Sub timeout_for_bad_starts()
dlpath = "C:\DownloadedPics\"
For i = 2 To 7
imgsrc = Cells(i, 2)
imgname = Cells(i, 1)
result = URLDownloadToFile(0, imgsrc, dlpath & imgname & ".jpg", 0, 0)
If result <> 0 Then
Application.Wait (Now + TimeValue("00:00:03"))
result = URLDownloadToFile(0, imgsrc, dlpath & imgname & ".jpg", 0, 0)
End If
'if the result is still zero, mark the failure somehow and move on
Next i
End Sub