User defined type not defined



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-access/200804/1

.



Relevant Pages

  • RE: Add Record with combo box
    ... Private Sub JCTARSectionLayer1ID_NotInList(NewData As String, ... Response As Integer) ... Dim strMsg As String ... Dim rst As DAO.Recordset ...
    (microsoft.public.access.formscoding)
  • RE: Add Record with combo box
    ... Private Sub JCTARSectionLayer1ID_NotInList(NewData As String, ... Response As Integer) ... Dim strMsg As String ... Dim rst As DAO.Recordset ...
    (microsoft.public.access.formscoding)
  • RE: Add Record with combo box
    ... Private Sub JCTARSectionLayer1ID_NotInList(NewData As String, Response As ... Dim strSQL As String ...
    (microsoft.public.access.formscoding)
  • RE: Add Record with combo box
    ... Private Sub JCTARSectionLayer1ID_NotInList(NewData As String, Response As ... Dim strSQL As String ...
    (microsoft.public.access.formscoding)
  • RE: Add Record with combo box
    ... The flagged line is the very first one (Private Sub ... JCTARSectionLayer1ID_NotInList(NewData As String, Response As Integer)). ... Dim strSQL As String ...
    (microsoft.public.access.formscoding)

Loading