עבור לתוכן

אובייקט OLE ב Access

Featured Replies

פורסם

באקסס ניתן להגדיר תא בטבלה שיכיל אובייקט OLE שיכל להיות תמונה (bmp, gif, jpg וכו') ואפילו pdf.

השאלה שלי היא כיצד ניתן לייצא את כל המידע מהשדה הזה לקבצים עצמאיים.

יש כיוון למישהו ?

מצאתי כמה דוגמאות אבל הוא מתאימים לשליפה של BMP ומסמכי אופיס.

כל הנסיונות עד לרגע זה כשלו עם קבצי gif, jpg ו pdf

פורסם

זה מוזר שאתה אומר שזה עבד לך רק עם bmp, זה אמור לעבוד עם כל סוגי הקבצים באשר הם, בסופו של דבר כל הקבצים הם סדרה של בתים, stream

אתה כמי שכותב את הקוד רק צריך לדעת באיזו סיומת נקראו הקבצים כדי לדעת לאיזו סיומת לשמור.


Private Sub PutBinaryData()

Dim rs1 As ADODB.Recordset
Dim fs1 As Scripting.FileSystemObject
Dim strm1 As Scripting.TextStream

Set rs1 = New ADODB.Recordset
rs1.Open "TProducts", Access.CurrentProject.Connection, adOpenDynamic, adLockOptimistic
rs1.AddNew
Set fs1 = New Scripting.FileSystemObject
Set strm1 = fs1.OpenTextFile("c:\image1.jpg", ForReading, False, TristateUseDefault)
Do While strm1.AtEndOfStream = False
rs1.Fields("Media1").AppendChunk (strm1.Read(1))
Loop
strm1.Close
rs1.Update
rs1.Close

End Sub

Private Sub ReadBinaryData()
Dim rs1 As ADODB.Recordset
Dim fs1 As Scripting.FileSystemObject
Dim strm1 As Scripting.TextStream

Set rs1 = New ADODB.Recordset
rs1.Open "TProducts", Access.CurrentProject.Connection, adOpenDynamic, adLockOptimistic
rs1.Find ("ID = 4")
Set fs1 = New Scripting.FileSystemObject
Set strm1 = fs1.OpenTextFile("C:\image1B.jpg", ForWriting, True, TristateUseDefault)
strm1.Write rs1.Fields("Media1").GetChunk(rs1.Fields("Media1").ActualSize)
strm1.Close
rs1.Close
End Sub

פורסם
  • מחבר

אני מקבל הודעת שגיאה בשורה:

strm1.Write (rs.Fields("bb").GetChunk(rs.Fields("bb").ActualSize))

Invalid procedure call or argument

עשיתי לביטוי סתם הדפסה למסך ואני רואה שהוא מחזיר ערך.

אני חושב שזה לא יעבוד מכיוון שלאובייקט OLE חוץ מהמידע עצמו יש Header לפני שאומר לו איזה אובייקט OLE זה.

לכן הקובץ עצמו הוא כל המידע פחות ה Header הזה.

*** עריכה ***

שיניתי את הפרמטר האופציונלי של OpenTextFile ל TristateTrue ועכשיו זה עובד.

אבל זה כמו שחשבתי, אני לא יכל לראות את הקובץ הזה.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים