Suppose you need to make a program to send emails. However, you need the emails to contain attachments, the names of which will be generated when the attachment file has been saved, and which will contain the date and time the file was saved.
Private Sub cmd_submit_Click()
'Dim the strings for use later on
Dim confirm As String
Dim Tijd As String
Dim Datum As String
Dim saveFile As String
'Set the tijd(time) and datum(date) string when its going to be saved.
Tijd = Format$(Time, "hh-nn-ss")
Datum = Format$(Date, "dd-mm-yy")
'Set the path where the file needs to be saved
saveFile = App.Path & "/offerten/Kasten_Time" & Tijd & _
"_Date" & Datum & ".txt"
On Error GoTo mailerr:
'Ask if they are sure to send it
confirm = MsgBox("Are you sure that you want to do this?", vbYesNo + vbInformation)
If confirm = vbYes Then
'If they say Yes
'Save the file(check the function below)
SaveGrid saveFile, MSFlexGrid1
MAPISession1.SignOn
If MAPISession1.SessionID <> 0 Then
With MAPIMessages1
.SessionID = MAPISession1.SessionID
.Compose
'Set the attachmentname, this is the one that will be
' displayed on the attachment textbox in outlook
.AttachmentName = "Kasten_Time" & Tijd & "_Date" & Datum & ".txt"
'This is the path to the actual file
.AttachmentPathName = App.Path & "/offerten/Kasten_Time" & Tijd & _
"_Date" & Datum & ".txt"
'This is the email adress of the one who is supposed to get the mail
.RecipAddress = "email@adress.here"
'This is the name that will be shown in the To: textbox
.RecipDisplayName = "Kris Kleykens"
'This is the subject of the email
.MsgSubject = "Time: " & Tijd & " Date: " & Datum
'This is the body of the email
.MsgNoteText = Note.txt
'.Send true shows the email before it's sent.
' False doesn't show this
.Send True
End With
End If
mailerr:
'If they say no
Else
End If
DoEvents
MAPISession1.SignOff
End Sub
Function SaveGrid(sFileName As String, myFG As String)
Dim sLine As String
Dim fID As Integer
Dim lCol As Long, lRow As Long
Dim sFirstLine As String
sFirstLine = "O," & main.txt_refferte.Text & ",,,,," & _
login.KlantNaam & ",,," & main.Combo1.Text & "," & _
main.Combo2.Text & "," & main.Combo3.Text & "," & _
main.Combo4.Text & ",," & main.Combo5.Text & "," & _
main.Combo6.Text & ",," & main.Combo8.Text & "," & _
main.Combo9.Text & "," & main.Combo10.Text & "," & main.Combo7.Text
fID = FreeFile
Open sFileName For Output As #fID
Print #fID, sFirstLine
' Dump the grid
With MSFlexGrid1
For lRow = 1 To .Rows - 1
sLine = ""
For lCol = 0 To .Cols - 1
sLine = sLine & "," & .TextMatrix(lRow, lCol)
Next lCol
' All kind of prefixes possible
' 1:
Print #fID, "A," & Mid$(sLine, 2)
' Or:
' Print #fID, "row:" & lRow & "=" & Mid$(sLine, 2)
Next lRow
End With
Close #fID
End Function