User defined type not defined

User defined type not defined

am 08.04.2008 13:20:54 von u24149

Hello,
I have been working with visual basic for a while but this is something I
have never understood.
I have some code in a VB6 application that sends email using Winsock and
works great.
I am trying to incorporate the code in Access 2000 . I inserted the
activex control "Microsoft Winsock control (SP6) and it shows up on the form.
When I ran the form I get "object variable with block not set" on the line
"Winsock1.LocalPort = 0", I added the "Set winsock1 = ActiveXCtl5.Object".
Now I get "User defined type not defined." I don't get any errors when I
compile . The code is below. Can anyone enlighten me ?

Dim winsock1 As Winsock

Sub SendEmail(MailServerName As String, _
FromName As String, _
FromEmailAddress As String, _
ToName As String, _
ToEmailAddress As String, _
EmailSubject As String, _
EmailBodyOfMessage As String)
'added next line stops object variable with block not set
' but then get "user defined type not defined
Set winsock1 = ActiveXCtl5.Object

Winsock1.LocalPort = 0 ' Must set local port to 0 (Zero) or you can only
send 1 e-mail pre program start

If Winsock1.State = sckClosed Then ' Check to see if socket is closed
DateNow = Format(Date, "dd Mmm YYYY")
first = "mail from:" & Chr(32) & FromEmailAddress & vbCrLf ' Get who's
sending E-Mail address
Second = "rcpt to:" & Chr(32) & "<" & ToEmailAddress & ">" & vbCrLf ' Get
who mail is going to
Third = "Date:" & Chr(32) & DateNow & vbCrLf ' Date when being sent
Fourth = "From:" & Chr(32) & FromName & vbCrLf ' Who's Sending
Fifth = "To:" & Chr(32) & ToName & vbCrLf ' Who it going to
Sixth = "Subject:" & Chr(32) & EmailSubject & vbCrLf ' Subject of E-
Mail
Seventh = EmailBodyOfMessage + vbCrLf ' E-mail message body
Ninth = "dans emailer" & vbCrLf ' What program sent the e-mail,
customize this
Eighth = Fourth + Third + Ninth + Fifth + Sixth ' Combine for proper
SMTP sending

Winsock1.Protocol = sckTCPProtocol ' Set protocol for sending
Winsock1.RemoteHost = MailServerName ' Set the server address
Winsock1.RemotePort = 25 ' Set the SMTP Port
Winsock1.Connect ' Start connection

WaitFor ("220")
Winsock1.SendData ("HELO dsperry.dayton-phoenix.com" + vbCrLf)

WaitFor ("250")
Winsock1.SendData (first)

WaitFor ("250")
Winsock1.SendData (Second)

WaitFor ("250")
Winsock1.SendData ("data" + vbCrLf)

WaitFor ("354")
Winsock1.SendData (Eighth + vbCrLf)
Winsock1.SendData (Seventh + vbCrLf)
Winsock1.SendData ("." + vbCrLf)

WaitFor ("250")
Winsock1.SendData ("quit" + vbCrLf)

WaitFor ("221")
Winsock1.Close
Else
MsgBox (Str(Winsock1.State))
End If
End Sub

Sub WaitFor(ResponseCode As String)
Start = Timer ' Time event so won't get stuck in loop
While Len(Response) = 0
Tmr = Start - Timer
DoEvents ' Let System keep checking for incoming response
**IMPORTANT**
If Tmr > 50 Then ' Time in seconds to wait
MsgBox "SMTP service error, timed out while waiting for response"
Exit Sub
End If
Wend
While Left(Response, 3) <> ResponseCode
DoEvents
If Tmr > 50 Then
MsgBox "SMTP service error, impromper response code. Code should
have been: " + ResponseCode + " Code recieved: " + Response
Exit Sub
End If
Wend
Response = "" ' Sent response code to blank **IMPORTANT**
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Winsock1.GetData Response ' Check for incoming response *IMPORTANT*
End Sub

--
Danny C. Sperry

Message posted via AccessMonster.com
http://www.accessmonster.com/Uwe/Forums.aspx/databases-ms-ac cess/200804/1

Re: User defined type not defined

am 08.04.2008 17:21:40 von Rich P

Greetings,

I have never had much luck with winsock, wininet controls (I can't even
remember what they are called). But I did write a few apps using the
wininet dll for ftp stuff. That sort of worked - for ftp stuff. For
emaiing, you could use the Outlook client, but the problem with that is
the Outlook security. You get security prompts for everything when
accessing Outlook externally (like from Access). I used to have a
LotusNotes client, and that worked OK - but that was several years ago.
If you want to interface directly with the email server - you may try
some low level api code (which I don't know the api functions off hand -
try googling email api). But I am just finishing up an email client in
VB.Net which is working well with the .Net framework. My advice for
email apps is to do it in .Net. Much easier and more reliable. .Net
has all the api's built in, and you get the dropdown intellisense for
all the required methods/properties - that is why .Net is so much easier
that VBA for this kind of stuff - it is all built in - plus - way more
extensive help files.

Rich

*** Sent via Developersdex http://www.developersdex.com ***

Re: User defined type not defined

am 08.04.2008 18:01:28 von Salad

Rich P wrote:

> Greetings,
>
> I have never had much luck with winsock, wininet controls (I can't even
> remember what they are called). But I did write a few apps using the
> wininet dll for ftp stuff. That sort of worked - for ftp stuff. For
> emaiing, you could use the Outlook client, but the problem with that is
> the Outlook security. You get security prompts for everything when
> accessing Outlook externally (like from Access).

I recommend ClickYes.
http://www.contextmagic.com/express-clickyes/