Rapportage tool

Status
Niet open voor verdere reacties.

sabthal

Gebruiker
Lid geworden
13 sep 2011
Berichten
81
Beste Helpmij'ers

Ik vraag me af als ik een leuke interface bouw in visual studio of ik er dan voor kan zorgen dat rapportage in een mailbox (emailadres) of in een access database terecht kunnen komen.

Kon zoiets niet vinden. Kan iemand mij helpen met een beginnetje/suggesties of andere manieren?

Ik wil het gebruiken om voorbeelden te verzamelen. Meerdere gebruikers krijgen dan mijn programma en moeten dit gelijktijdig kunnen gebruiken.

Alvast bedankt voor de reacties!
 
Dus je wilt dat jouw programma input naar een mail-adres stuurt of in een database zet?

Beide zijn in principe goed mogelijk. Van de database moet je je wel afvragen of je wel een Acces database wil...

Als eerste over de mail:
Je kan het programma laten inloggen op een mail-server en dan een mail versturen (http://www.9lives.be/forum/programming-gamedesign/832871-vb-net-mail-sturen.html, http://www.helpmij.nl/forum/showthread.php/673307-E-mail-versturen-vanuit-Visual-Basic-2010-EXPRESS-edition).

Dan over de database:
Als je alles in 1 database bij elkaar wil hebben staan, zal je een server nodig hebben die non-stop aan staat. Dat kan op meerdere manieren: 1. Een thuis server; 2. Een (gratis) server 'huren'.
Als je een thuis server wilt, dan moet je die goed instellen etc, maar dat kan je altijd vragen, daar ga ik nu niet verder op in.
Als je een (gratis) server wilt 'huren', dan zit je vaak met het probleem dat het geen Acces databases ondersteund (vaak wel MySQL databases) en dat de database vaak niet te benaderen is vanuit plaatsen anders dan de codes die op de server zelf staan. (Remote acces staat dan uit.) Daarvoor is een work-around die wel inhoud dat iedereen de database vol zou kunnen spammen als je het niet goed beveiligd. De work-around is om een code op de server te zetten die je dan aanroept vanuit het programma op de computer van de user. (Kan je het nog volgen? :p)

Jij moet dan nu gaan kiezen welke manier je wilt gebruiken, en als het dan niet lukt, kunnen we je ermee proberen te helpen! Als je het niet kon volgen, mag je er altijd naar vragen :thumb:

MartinJM
 
Hoi MartinJM, je hebt me vaker geholpen :)

Form in visual basic + code die jij me aangegeven hebt, ik kies ervoor geen database te doen.

Ik heb al een basic form gemaakt waarin alles staat verwerkt alleen snap ik het achterliggende niet.

Ik heb het onderstaande stuk code in mijn verzend knop verwerkt:

Code:
Imports System.Net.Mail


Dim mail As New MailMessage
        mail.Subject = "test"
        mail.To.Add("aan@gmail.com")
        mail.From = New MailAddress("mijnadres@gmail.com")
        mail.Body = "body"

        Dim smtp As New SmtpClient("smtp.gmail.com")
        smtp.EnableSsl = True
        smtp.Credentials = New System.Net.NetworkCredential("gebruikersnaam", "wachtwoord")
        smtp.Port = "587"
        MsgBox("klaar voor verzenden")
        smtp.Send(mail)
        MsgBox("verzonden")

Hierbij lijkt het me noodzakelijk dat er nog wat meer bij komt kijken want als ik de Handles Click_Button erin laat staan dan geeft hij iets aan van WithEvents.
 
Ik heb al een basic form gemaakt waarin alles staat verwerkt alleen snap ik het achterliggende niet.
Wat snap je niet? De code waarmee je een mail verzend? Dan kan je hier wat uitleg vinden: http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx. Als dat het niet is, zal je iets specifieker moeten zijn

Code:
Imports System.Net.Mail
De import moet buiten de class (ik weet niet of je dat had gedaan, dus ik zet het er maar bij)

Hierbij lijkt het me noodzakelijk dat er nog wat meer bij komt kijken want als ik de Handles Click_Button erin laat staan dan geeft hij iets aan van WithEvents.
Wat wordt er precies aangegeven? En wat werkt er niet? Het is niet echt makkelijk om met deze informatie te kunnen vaststellen wat er mis is....


Nog even een opmerking: Als er nu geen verbinding gemaakt kan worden met de server, zal het programma volgens mij een error geven en niet meer werken. Misschien is het handig om een check erin te zetten of er wel verbinding is met de server/of er überhaupt wel internet verbinding is/of de verbinding met de server wel goed is gegaan (try-catch blok).

MartinJM
 
Het lijkt me wel handig om outlook eerst ook te installeren. Dit zal ik eerst even doen :).
Ik plak het stukje code wat ik nu heb z.s.m. even op het forum, ben nu niet thuis.
 
Code:
Option Explicit On
Imports System.Net
Imports System.Net.Mail

Module SENDERRORMAIL
    Public Class Form1

        Dim Label11 As Object
        Dim TextBox1 As Object
        Dim TextBox2 As Object
        Dim TextBox3 As Object
        Dim TextBox4 As Object
        Dim TextBox5 As Object
        Dim TextBox6 As Object
        Dim TextBox7 As Object
        Dim TextBox8 As Object
        Dim TextBox9 As Object
        Dim TextBox10 As Object
        Dim RichTextBox1 As Object

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 'Handles Button1.Click

            Dim oLapp As Object
            Dim oItem As Object

            oLapp = CreateObject("Outlook.application")
            oItem = oLapp.createitem(0)

            With oItem
                .Subject = ("mail van" & Label11.Text)
                .To = "email@gmail.com"
                .body = ("Naam:" & TextBox1.Text & vbCrLf &
                         "Straat:" & TextBox2.Text & TextBox3.Text & TextBox4.Text & vbCrLf &
                         "Postcode:" & TextBox5.Text & TextBox6.Text & vbCrLf &
                         "Plaats:" & TextBox7.Text & vbCrLf &
                         "Telefoon:" & TextBox8.Text & vbCrLf &
                         "Mobiel:" & TextBox9.Text & vbCrLf &
                         "Email:" & TextBox10.Text & vbCrLf &
                         "Opmerking:" & RichTextBox1.Text)
                .Send()
            End With

            oLapp = Nothing
            oItem = Nothing
        End Sub


    End Class
End Module

dat is hem met deze:
applicatie.jpg
 
Hoi,

Persoonlijk zou ik dit gebruiken:
[CPP] Dim str1 As String = "Hallo!"

Dim mail As New MailMessage
mail.Subject = "test"
mail.To.Add("EMAIL@gmail.com")
mail.From = New MailAddress("EMAIL@gmail.com")
mail.Body = _
<t>
<%= str1 %>

Dit is een 'tekstvlak'...

Verreweg het makkelijkst om meerdere lijntjes in een string te krijgen :)
</t>

Dim smtp As New SmtpClient("smtp.gmail.com")
smtp.EnableSsl = True
smtp.Credentials = New System.Net.NetworkCredential("USERNAME", "Password")
smtp.Port = "587"
MsgBox("klaar voor verzenden")
smtp.Send(mail)
MsgBox("verzonden")[/CPP]

Dan heeft ook de gebruiker geen outlook nodig...

MartinJM
 
Prima, bedankt!
Zal dit even veranderen. Ik dacht ook al, er moet een makkelijkere manier zijn :P
Zal het z.s.m. even laten weten of deze manier werkt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan