Hi There
I just wanna find out how I can save some data to a text file or access database (doesn't matter - the one that's the quickest).
What my form does is it has a list box with ID's in it. I can select them. Then I have a button that calculates what ID's are 2 days behind the current date (those who are checked). When calculated it shows a messagebox with those who are indeed behind and then open outlook to send an email.
All I want to do now is take the ID's that are behind, the days behind and also the current date to be saved in the way mentioned above.
Can somebody help me?
Here is my code:
Dim xList As String
Private Sub ShowMail()
On Error Resume Next
Dim intX As Integer
With List1
.ListIndex = 0
For intX = 0 To .ListCount - 1
If .Selected(intX) Then
personel.ListIndex = .ListIndex
xList = xList & personel.Text & ";"
End If
.ListIndex = .ListIndex + 1
Next intX
End With
End Sub
Private Sub Form_Load()
folder = Dir("Z:\ACS\Admin\ServU\JobBook\LogBook\*.txt") 'variable folder conatins names of files in folder c:\LogBook\ with extension *.txt
While Len(folder) <> 0 'loop while length of folder is 0 which means no file found...
List1.AddItem Left(folder, InStr(folder, ".txt") - 1) 'add file to list, but trim .txt extension..
folder = Dir() 'read again
Wend
End Sub
Private Sub Picture2_Click()
Dim IDs As String
For i = 0 To List1.ListCount - 1 'do loop within all od list1 indexes
If List1.Selected(i) Then 'If checked index is selected then ...
filename = "Z:\ACS\Admin\ServU\JobBook\LogBook\" + List1.List(i) + ".txt" 'Construct filename, add folder and extension
Open filename For Input As #1 'Open file for reading
While Not EOF(1)
Line Input #1, LineA 'Since all dates are same i will read only 1st row
Wend
Close #1 'Close file
If DateDiff("d", CDate(Left(LineA, 10)), Now()) > 2 Then 'If difference between now and readed date is more than 2 days ("d")
IDs = IDs & "ID " & List1.List(i) & " Days behind = " & DateDiff("d", CDate(Left(LineA, 10)), Now()) & Chr(13)
End If
End If
Next
MsgBox IDs 'Display ID's
Call ShowMail
Dim objOL As Outlook.Application
Dim msg As Outlook.MailItem
Set objOL = New Outlook.Application
Set msg = objOL.CreateItem(olMailItem)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Get a free file number
nFileNum = FreeFile
' Open a text file for input. inputbox returns the path to read the file
Open "C:\Template.txt" For Input As nFileNum
lLineCount = 1
' Read the contents of the file
Do While Not EOF(nFileNum)
Line Input #nFileNum, sNextLine
'do something with it
'add line numbers to it, in this case!
sNextLine = sNextLine & vbCrLf
sText = sText & sNextLine
Loop
' Close the file
Close nFileNum
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
With msg
.To = xList
.Subject = sText
.Body = sText
.Display
End With
Exit_Email:
Set objOL = Nothing
Exit Sub
End Sub