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

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

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

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

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

لیست فیلدها در فیلد Attachment



بعلت حجیم شدن دیتابیس از بکار بردن فیلد Attachment پرهیز کنید.


برای باز شدن فایلی چه اکسل چه اکسس چه عکس از FollowHyperLink استفاده کنید


Application.FollowHyperLink  "مسیرو نام فایل"


Fields List :



کالمن FileData  در فیلدی با دیتا تایپ Attachment  (  مثل  تصویر زیر فیلد با نام image  که Child است و Parent ، جدول ) - داده ها باینری هستند ! نه تکست چندین بار عنوان کردم 


به قول شخصی خودم فیلدی است ( FileData ) در فیلد دیگر ( Image )



شئ ADO STREAM برای خواندن ، نوشتن و مدیریت یک جریانی از داده های باینری یا تکست استفاده می شود.یک Stream Object از سه طریق می تواند حاصل شود : از یک URL که به سندی اشاره می کند ، یک فولدر ، یا یک شئ رکورد (  Record Object )


لینک زیر ویژگیها ، متدها و رویدادهای Stream Object ذکر شده


از Charset مثل تنظیم روی "UTF-8"  زمانی استفاده می شود که بخواهید متنی رو از فرضا Ansi به کاراکترهای  یونیکد UTF-8 تبدیل کنید.



Set stream = CreateObject("ADODB.Stream")
stream.Open stream.Type = 2 'text
stream.Charset = "utf-8"
stream.Position = 0 stream.WriteText str stream.Flush
stream.Read(3) 'skip BOM
stream.Position = 0 stream.Type = 1 'binary utfStr = stream.Read
stream.Close




ado-api/stream-object-properties-methods-and-events


Set Rs=CreateObject("ADODB.Recordset")

Rs.Edit

Set StreamObj=CreateObject("ADODB.Stream")

StreamObj=adTypeBinary

StreamObj.Open

Stream.LoadFromFile FileName

Rs.Fields("FieldName").Value=StreamObj.Read

Rs.Update

Rs.Close



SaveToFile   اضافه کردن فایل به دیسک

LoafFromFile بارگزای فایل مشخص شده از دیسک









آبجکت Adodb.Stream برای لود کردن فایل در فیلد باینری


راه های زیادی برای لود کردن فایل به bytearray وجود دارد .که میتوان از آبجکت ADODB.Stream استفاده نمود.



Dim db As DAO.Database
Dim rst As DAO.Recordset

Set db = CurrentDb
Set rst = db.OpenRecordset("dbo_WATER_FILES", dbOpenDynaset, dbSeeChanges)
rst.Edit
Dim strm As Object
Set strm = CreateObject("ADODB.Stream")
strm.Type = 1 'adTypeBinary
strm.Open
strm.LoadFromFile "C:\test.jpg"
rst.Fields("Binary_File").Value = strm.Read 'FileData
strm.Close
rst.Update
برای برگشت باینری به یک فایل : 
With CreateObject("ADODB.Stream")
    .Type = 1 'adTypeBinary
    .Open
    .Write  rst.Fields("Binary_File").Value
    .SaveToFile "C:\testcopy.jpg", 2 'adSaveCreateOverWrite
    .Close
End With

تبدیل باینری به تکست یا تکست به باینری هم از همین آبجکت
می توان بهره برد.

Field NameDescription
FileDataThe file itself is stored in this field.
FileFlagsReserved for future use.
FileNameThe name of the file in the attachment field.
FileTimeStampReserved for future use.
FileTypeThe file extension of the file in the attachment field.
FileURLThe URL for the file for a linked SharePoint list. Will be Null for local Access tables.