Hejsan, Hej Jag kanske missförstod frågan, men var inte tanken att programmet skulle köras den första varje månad? Tack för de snabba svaren!Automatisering samt email
Jag vill skapa en automatisering i VB 6.0 för att skicka rapporter den 1:a varje månad, har provat lite olika lösningar men inget blir bra.
Jag vill även skicka emails när vissa vilkor är uppfylda automatiskt.
Snabbt svar skulle uppskattas mycket! (Har deadline att hålla)Sv: Automatisering samt email
Ett förslag på hur den första delen skulle kunna lösas.
Jag har tillverkat en txtFil RptMonth.txt som skall ligga
i samma mapp som ditt projekt.Dess enda uppgift är
att hålla reda på vilken månad som är klar.
När du får True från Functionen IsFirstDayOfMonth()
så skall du sätta igång att lämna rapport.
Option Explicit
Private Function IsFirstDayOfMonth() As Boolean
Dim ddmm As String, testMonth As String, FileNum As Long
ddmm = Format$(Date, "dd")
If ddmm = "01" Then
ddmm = Format$(Date, "mm")
FileNum = FreeFile
On Error Resume Next ' Om filen ej finns,tillverkas den
'Kontrollera om det skett månadsskifte
Open App.Path & "\RptMonth.txt" For Input As #FileNum
Line Input #FileNum, testMonth
Close #FileNum
If testMonth <> ddmm Then
FileNum = FreeFile
On Error GoTo 0 ' Nollställ eventuell Error
'Ny månad , skriver denna till RptMonth.txt
Open App.Path & "\RptMonth.txt" For Output As #FileNum
Print #FileNum, ddmm
Close #FileNum
IsFirstDayOfMonth = True
End If 'testMonth
End If 'ddmm
End Function
Private Sub Command1_Click()
Dim ret As Boolean
ret = IsFirstDayOfMonth()
If ret = True Then
MsgBox "Här skall du starta en rutin som skickar rapport"
'-----------------------------------
'-----------------------------------
End If 'ret
End Sub
mvh
SvenSv: Automatisering samt email
I så fall är ju det första alternativet att du antingen lägger in programmet i Autostart eller i en nyckel i registret (om du vill veta vilken så kan jag leta upp den åt dig). Sedan kollar du i uppstarten av programmet om det är den första dagen i månaden.
<code>
Public Sub Form_Load()
If Format(Date, "dd")<>"01" Then Unload Me
'...
End Sub
</code>
Det andra alternativet är att använda Windows inbyggda funktion "Schemalagda Aktiviteter", och lägga in ditt program där.
/Niklas JanssonSv: Automatisering samt email
Det handlar om en databas för ett företag. Som kommer användas dagligen, varje månad ska rapporter skickas automatiskt.
Grejen med att skicka på form_load eller dyligt är ju att detta skulle ske varje gång formuläret öppnas om datumet är den 1:a. Men jag inser nu att det är ju bara att skapa en flaga som stänger av funktionen efter att den körts. Sedan kan man ju nollställa flagan några dagar senare den månaden så att den kan köras igen nästa månad.
Tack för hjälpen!