Can someone please explain to me what value or object is needed in this code MS Access VBA.

I have been looking for a way to parse a MIME. I found this site that has a reference library for Access just for what I am looking for. It costs but if it works I may take it.

MIME being Parsed:
Content-Type: multipart/mixed;
 boundary="------------080707010302060306060800";

This is a multi-part message in MIME format.

--------------080707010302060306060800
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

This is the plain-text body.
--------------080707010302060306060800
Content-Disposition: attachment; filename="starfish.gif";
Content-Transfer-Encoding: base64
Content-Type: image/gif; name="starfish.gif";

R0lGODlhIAAgAPcAAP///+/v7/f39+/n5/fv7//39/fn597OzufW1tbGxs69vffe3u/W1salpZQQ
EIQYEJwQCJQYCJwYCM6clL2Ee5wpGIwhEK0YANatpdalnHMYCKUhCJQYAKUYAM6Ec5QhCJwhCPfW
zu/Oxta1rb17a6UhAK0hAPe9rb2Ec7V7a71rUpwpCL0xCJwhAOfOxta9tcatpdallM6cjMaUhK1C
IZwxELU5EK0xCLUxCN61pcacjK1rUrVaOaVKKZxCIZwxCKUxCL05CLUxAM6llO+1nMZzUr1rSrVS
KaVCGK1CGLVCEJQxCK05CLU5CIwpAKUxAK0xAM69tffWxrVrSrVaMbVKGMZKEL1CCLU5AP/v597O
xufGtcallNaljLWEa96ce9aUc717Wq1aMcZjMbVaKbVSIa1KGL1SGJw5CK1CCLVCCMZKCM5KCMZC
APfn3tbGvc57Ss5aGMZSENZaEL1KCM5SCLVCAMZKAPfezvfOte/GrdatlN6cc9aEUr1rOc5jIdZj
GL1SEM5aELVKCMZSCNZaCL1KAOfOvc57Qs5jGNZjEM5aCMZSAN5aAO/OtefGrcZjGM5jEN5rELVS
CMZaCN5jCOdrCM5aAO/Gpc5rGMZjENZrEN5jAOdrAOfe1t6MQtZ7Kd57IdZzGM5rEMZjCNZrCM5j
ANbOxu/Wve+9jPe9hO+1e+etc85zGO+EGMZrENZzEM5rCN5zCO97COdzAO/n3u+1c+ecSt6UQs57
Ie+MIdZ7GOeEGM5zEO+EELVjCOd7CO+ECOd7AO/Ope+tWuelUu+UKeeMGOeEEO+MEOeECO+EAO/G
jO+cKfeUEO+MCO+tSuecMeeUGN6MEOeMCO+UCO+tQuelOe+lMe+lKe+cGOeUEO+cEOeUCN6MAO+U
AOe9c/e1Oe+lId6UEO+cCPe9Qve1Me+lEOecCO+lCOe1Su+1OeelGO+tGPetCPetAO+9Qve1GO+1
EPe9CPe9APf37+fv5/f//+/v9/fv9+fe5+/e5869xufW3t7GzgAAACwAAAAAIAAgAAAI/wABCBxI
sKDBgwgTFgCwMKHDhwyHYWoIsWIBZsdyHaoIcaGbaNQ0ZeBYEROvV0pmCCDp8B4rZaOUcGHpcIEx
aqPMYLjHMcsCAwgxkRv3q8wLnhAdfWpmDRwqAgQFEEvHLlCZNxwfpVmkDJ04dczc3LsXQtq4XWh8
aGH48F49FDUC9UInT941W6luCUOWyQmSLST3eUnChNS4c9SooQuGDNkrIIrA1MqXr0A+AyFC4Kln
kMAQKljotJJGDZklS9PkyEHGLZu1ctbCmWvXThurfAbvHSii5kegxpYqtRpEKFnid/TSneu2LRYh
P/0Q1tJRgYOZV71UL5LEK1KiV68yVf+xgaOKmAZICd5bmA8FEyZQlMjRRAhQGQv4QQSJL8ZLFHwP
6aFIJXNIEkggcgQhwYIlKEFFGDKcEgBCBVCkByC0IAMJGnSAYsUNEmzAgw4HBJBeQisZcAswjqGh
wQeBKGIFFD0ocCJE9diyjTKRLPHBAx/cEAcdgxgx4Vg3HnSPKs4E00sNEYDwgQksQDLJIohMSJIj
ugSTCRA/ILFDCjTckUkrpYiCAEluYCMLJCsoMQUM9gjQRSSL7CLJJjmQxMw3kQChxA78IFULHIK0
MgonXyR5UAHWVBKIEmEcUJAIYxgSSSF94AZRPrgsQgUF0RmUgWpy/LFmRYdMkACAANwrWA8cbAhi
RZ8cjRWro0QEEsQVGTiKkLAM5QNGFWrAQFNLBIzABQPLRktQQAA7

--------------080707010302060306060800--

Open in new window



The Actual Code:
Dim mime As New ChilkatMime

Dim success As Long
success = mime.UnlockComponent("Anything for 30-day trial.")
If (success = 0) Then
    Text1.Text = Text1.Text & mime.LastErrorText & vbCrLf
    Exit Sub
End If

'  Load the sampleMime2.txt file into the MIME object.
'  (This file is available at http://www.chilkatsoft.com/testData/sampleMime2.txt )

success = mime.LoadMimeFile("sampleMime2.txt")
If (success = 0) Then
    Text1.Text = Text1.Text & mime.LastErrorText & vbCrLf
    Exit Sub
End If

'  The GIF image is the 2nd sub-part located directly under the
'  top-level MIME node.  Indexing begins at 0, therefore the 2nd
'  sub-part is at index 1.
Dim part2 As ChilkatMime
Set part2 = mime.GetPart(1)

Dim binaryData() As Byte

'  The GetBodyBinary method returns the binary bytes
'  of the part's body, automatically decoded from whatever
'  content-transfer-encoding might be used (such as base64).
binaryData = part2.GetBodyBinary()

'  We now have the binary bytes of the GIF image in binaryData.
'  Save it to a file.
Dim fac As New CkFileAccess
success = fac.WriteEntireFile("out1.gif",binaryData)
If (success <> 1) Then
    Text1.Text = Text1.Text & fac.LastErrorText & vbCrLf
    Exit Sub
End If

'  An easier way to save the body content to a file,
'  assuming your application does not need to access
'  the binary data in-memory, is to call SaveBody
success = part2.SaveBody("out2.gif")
If (success = 0) Then
    Text1.Text = Text1.Text & part2.LastErrorText & vbCrLf
    Exit Sub
End If

Text1.Text = Text1.Text & "Finished." & vbCrLf

Open in new window



What are they looking for with "Text1.Text = Text1.Text"?????


What is "Text1.Text"???


When I send for the API I use "reader.responseText" or "reader.responseXML"
Dim reader As New MSXML2.XMLHTTP40


Is this what it needs "reader.responseText"?

If so it says Compile Error: Can't assign to read-only property.

This is the website the code came from:
https://www.example-code.com/vb/mime_extractBinaryData_a.asp


Here is my complete code I am using:

Public Function EbayDownloadFile()
    Dim reader As New MSXML2.XMLHTTP40
    Dim Doc As New MSXML2.DOMDocument
    Dim TokenValue As String
    Dim APICALL As String
    Dim DevName As String
    Dim AppName As String
    Dim CertName As String
    On Error GoTo ErrorHandler1
    
    TokenValue = Forms!frmEbayTokenCode!txtTokenCode ' This is used for the Token Code insert manually on the Form Ebay Add Fixed Price Item.
    DevName = Forms!frmEbayTokenCode!txtDevName 'Supplied by ebay.
    AppName = Forms!frmEbayTokenCode!txtAppName 'Supplied by ebay.
    CertName = Forms!frmEbayTokenCode!txtCertName 'Supplied by ebay.
    
    
    APICALL = "downloadFile"
    
    Doc.Load "C:\Users\Station\Documents\Access XML Save Files\New Testing\downloadFile.xml" 'Document Location of the XML File With Items Being Added

    
    reader.Open "POST", "https://storage.sandbox.ebay.com/FileTransferService", False
    reader.setRequestHeader "X-EBAY-SOA-OPERATION-NAME", APICALL
    reader.setRequestHeader "X-EBAY-SOA-SECURITY-TOKEN", TokenValue
    reader.setRequestHeader "X-EBAY-API-DETAIL-LEVEL", "0"
    reader.setRequestHeader "X-EBAY-API-COMPATIBILITY-LEVEL", "967"
    reader.setRequestHeader "X-EBAY-API-SITEID", "0"
    reader.setRequestHeader "X-EBAY-API-DEV-NAME", DevName
    reader.setRequestHeader "X-EBAY-API-APP-NAME", AppName
    reader.setRequestHeader "X-EBAY-API-CERT-NAME", CertName
    
    
    reader.send Doc 'This sends the XML document from above.
    Do Until reader.ReadyState = 4
        DoEvents
    Loop
    
    'Get the server's response
    sResponse = reader.responseText
    
     SaveStringAsTextFile "C:\Users\Station\Documents\Access XML Save Files\New Testing\ebay_StartJobRequest_response_File.txt", sResponse
    
'**********************************************************************************************************************************************************
'ChilKat Code Start
'**********************************************************************************************************************************************************

Dim mime As New ChilkatMime
Dim success As Long
success = mime.UnlockComponent("Anything for 30-day trial.")
If (success = 0) Then
    reader.responseText = reader.responseText & mime.LastErrorText & vbCrLf
    Exit Function
End If

'  Load the sampleMime2.txt file into the MIME object.
'  (This file is available at http://www.chilkatsoft.com/testData/sampleMime2.txt )

success = mime.LoadMimeFile("C:\Users\Station\Documents\Access XML Save Files\New Testing\ebay_StartJobRequest_response_File.txt")
If (success = 0) Then
    reader.responseText = reader.responseText & mime.LastErrorText & vbCrLf
    Exit Function
End If

'  The GIF image is the 2nd sub-part located directly under the
'  top-level MIME node.  Indexing begins at 0, therefore the 2nd
'  sub-part is at index 1.
Dim part2 As ChilkatMime
Set part2 = mime.GetPart(1)

Dim binaryData() As Byte

'  The GetBodyBinary method returns the binary bytes
'  of the part's body, automatically decoded from whatever
'  content-transfer-encoding might be used (such as base64).
binaryData = part2.GetBodyBinary()

'  We now have the binary bytes of the GIF image in binaryData.
'  Save it to a file.
Dim fac As New CkFileAccess
success = fac.WriteEntireFile("C:\Users\Station\Documents\Access XML Save Files\New Testing\ChilKat1.gz", binaryData)
If (success <> 1) Then
    reader.responseText = reader.responseText & fac.LastErrorText & vbCrLf
    Exit Function
End If

'  An easier way to save the body content to a file,
'  assuming your application does not need to access
'  the binary data in-memory, is to call SaveBody
success = part2.SaveBody("C:\Users\Station\Documents\Access XML Save Files\New Testing\ChilKat2.gz")
If (success = 0) Then
    reader.responseText = reader.responseText & part2.LastErrorText & vbCrLf
    Exit Function
End If

reader.responseText = reader.responseText & "Finished." & vbCrLf
    
    Exit Function
    
ErrorHandler1:
        MsgBox "Error " & Err.Number & ": " & Err.Description & " in " & _
   VBE.ActiveCodePane.CodeModule, vbOKOnly, "ErrorHandler1"
    Set reader = Nothing
End Function



Public Sub SaveStringAsTextFile(psPathFile As String, psFileContents)
'160730 strive4peace
   Dim iFile As Integer
   On Error GoTo ErrorHandler4
   
   iFile = FreeFile
   Open psPathFile For Output As iFile
   Print #iFile, psFileContents
   Close iFile
   
   Exit Sub
    
ErrorHandler4:
        MsgBox "Error " & Err.Number & ": " & Err.Description & " in " & _
   VBE.ActiveCodePane.CodeModule, vbOKOnly, "ErrorHandler4"
    Set reader = Nothing
    Set strmImage = Nothing
    Set objNode = Nothing
    Set objXML = Nothing

End Sub

Open in new window



Thanks for the help!
LVL 1
Dustin StanleyEntrepreneurAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Gustav BrockCIOCommented:
As the code is for VB, not for VBA, Text1.Text is a textbox.

In Access and VBA you would use a form and a textbox, named for example txtMime, but the property to address will be Value. Thus:

    txtMime.Value

/gustav
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Dustin StanleyEntrepreneurAuthor Commented:
I thank you Gustav for the help and that makes complete sense. But this code is being used for a HTTP response.

So how would I use it for (I believe this is the correct way to say it) content that is in memory?

Thanks.
0
Gustav BrockCIOCommented:
Can't tell, I've never used that control. But it should be nothing but a straight unbound textbox and a button to call the code.

/gustav
0
IT Pros Agree: AI and Machine Learning Key

We’d all like to think our company’s data is well protected, but when you ask IT professionals they admit the data probably is not as safe as it could be.

Dustin StanleyEntrepreneurAuthor Commented:
reader.responsetext is in memory after the response is sent back to me from the original call I sent.

So what do you think about when access tells me  "Compile Error: Can't assign to read-only property"?

Any input????

Thanks
0
Gustav BrockCIOCommented:
Well, VBA is not exactly as VB. You could address Chilkat support. They used to be quite responsive years back when I used another control of theirs.

/gustav
0
Dustin StanleyEntrepreneurAuthor Commented:
Thanks Gustav. I posted in their support forum. I hope to hear back from them soon.
0
Dustin StanleyEntrepreneurAuthor Commented:
Thank you Gustav!
0
Gustav BrockCIOCommented:
You are welcome!

/gustav
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Access

From novice to tech pro — start learning today.