[ASP/ACCESS] automatisch mail versturen bij bepaalde waarde

Pagina: 1
Acties:
  • 1.320 views

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Adelbert
  • Registratie: Januari 2007
  • Laatst online: 27-01-2021
Hallo,

Ik ben bezig met het maken van een webapplicatie gekoppeld met een access DB. In deze DB wordt de voorraad van goederen bijgehouden. Het is me echter na een hoop research niet gelukt om bij een bepaald minimum automatisch een mail te versturen.

Het mail verstuur gedeelte is geen probleem, maar het laten kijken naar het bepaalde minimum wel.

Ik hoop dat iemand hier mij de goede richting in kan schoppen :D.

Acties:
  • 0 Henk 'm!

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Welke query's heb je al geprobeerd en waarom gaven ze niet 't gewenste resultaat ?

Acties:
  • 0 Henk 'm!

  • Adelbert
  • Registratie: Januari 2007
  • Laatst online: 27-01-2021
Als query heb ik dit:

SELECT drukwerk.Artikel, drukwerk.Aantal
FROM drukwerk
WHERE (((drukwerk.Aantal)<100));

Dit werkt correct, alleen nu nog het deel om automatisch een mail te versturen.

Of ASP:

"SELECT Artikel, Aantal FROM drukwerk WHERE Aantal<100"

[ Voor 15% gewijzigd door Adelbert op 31-03-2008 09:13 ]


Acties:
  • 0 Henk 'm!

  • Boss
  • Registratie: September 1999
  • Laatst online: 11:47

Boss

+1 Overgewaardeerd

Je zal moeten bepalen wanneer er hierop wordt gecontroleerd. Je kan een timer zetten en iedere x minuten dit laten controleren, bijvoorbeeld. Of iedere keer als de voorraad aangepast wordt doordat er een bestelling wordt geplaatst.

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 08:50

Creepy

Tactical Espionage Splatterer

Eeh.. dus je hebt een query die de juiste zaken ophoest? Wat is dan nog het probleem met het versturen van de mail?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • Adelbert
  • Registratie: Januari 2007
  • Laatst online: 27-01-2021
Het werkt niet zoals ik verwacht had, normaal haal ik altijd de gegevens voor mijn mail uit velden dus door <%=request("naam")%>, maar als de gegevens uit een access DB komen dan werkt dit niet.

En als het wel zou werken dan moet het nog automatisch gaan verlopen.

Acties:
  • 0 Henk 'm!

  • lier
  • Registratie: Januari 2004
  • Laatst online: 08:53

lier

MikroTik nerd

Wat je kan overwegen is om gebruik te gaan maken van SQL server (hier is ook een "gratis" versie van verkrijgbaar).

Binnen een product als SQL server is het mogelijk om triggers te maken (bijvoorbeeld bij voorraad mutaties automatisch een mail versturen).

Waarom heb je voor ASP en Access gekozen ?
Wat voor programmeer ervaring heb je / welke talen zijn bekend ? Je kan ook eenvoudig (bijvoorbeeld) een windows service kunnen schrijven die elk gedefinieerd tijdsinterval een controle op de voorraad doet.

Eerst het probleem, dan de oplossing


Acties:
  • 0 Henk 'm!

  • Adelbert
  • Registratie: Januari 2007
  • Laatst online: 27-01-2021
Aan de laatste optie zat ik zelf ook al te denken, maar ik denk dat het uiteinderlijk beter is om deze controle na welke update uit te voeren en we willen graag alles webbased houden.

Er wordt nog niet gewerkt met SQL server, daarom doen we dit nog met access. Mijn kennis is nog niet optimaal dat weet ik (ASP in opleiding laten we het maar noemen).

Acties:
  • 0 Henk 'm!

  • lier
  • Registratie: Januari 2004
  • Laatst online: 08:53

lier

MikroTik nerd

Adelbert schreef op maandag 31 maart 2008 @ 11:01:
Er wordt nog niet gewerkt met SQL server, daarom doen we dit nog met access. Mijn kennis is nog niet optimaal dat weet ik (ASP in opleiding laten we het maar noemen).
ASP of ASP.NET in opleiding ?

Eerst het probleem, dan de oplossing


Acties:
  • 0 Henk 'm!

  • lier
  • Registratie: Januari 2004
  • Laatst online: 08:53

lier

MikroTik nerd

Adelbert schreef op maandag 31 maart 2008 @ 11:01:
Aan de laatste optie zat ik zelf ook al te denken, maar ik denk dat het uiteinderlijk beter is om deze controle na welke update uit te voeren en we willen graag alles webbased houden.
Je kan tijdens je update een select doen op je voorraad, op basis hiervan kan je een vervolgactie uit voeren. Ik neem aan dat je ook een controle doet of de update uberhaupt uitgevoerd kan worden ?

Eerst het probleem, dan de oplossing


Acties:
  • 0 Henk 'm!

  • Adelbert
  • Registratie: Januari 2007
  • Laatst online: 27-01-2021
Alleen ASP

Een update kan altijd uitgevoerd worden. Dit gebeurt namelijk alleen als een bestelling binnen is of bij de inventarisatie.

Acties:
  • 0 Henk 'm!

  • lier
  • Registratie: Januari 2004
  • Laatst online: 08:53

lier

MikroTik nerd

Mag ik vragen welke opleiding nog gebruik maakt van ASP ?
Een update kan altijd uitgevoerd worden. Dit gebeurt namelijk alleen als een bestelling binnen is of bij de inventarisatie.
8)7
Houdt dus in dat je een negatieve voorraad kan hebben ?

Eerst het probleem, dan de oplossing


Acties:
  • 0 Henk 'm!

  • Adelbert
  • Registratie: Januari 2007
  • Laatst online: 27-01-2021
Als je kan inventariseren (dozen tellen) kan het toch nooit negatief zijn ;).

Ik zat te denken aan iets in de stijl van dit: if Aantal = "<100" then blabla

Als dit mogelijk is iig.

Acties:
  • 0 Henk 'm!

  • lier
  • Registratie: Januari 2004
  • Laatst online: 08:53

lier

MikroTik nerd

Adelbert schreef op maandag 31 maart 2008 @ 11:18:
Als je kan inventariseren (dozen tellen) kan het toch nooit negatief zijn ;).
Ik leef in een wereld waar gebruikers (wel) fouten maken.
Ik zat te denken aan iets in de stijl van dit: if Aantal = "<100" then blabla
Dus...?
Als dit mogelijk is iig.
Lijkt mij wel... ;)

Eerst het probleem, dan de oplossing


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 14:52

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Laat ik maar eens wat constructiefs posten dan...

Wat je misschien nog wel het beste / makkelijkste kunt doen is gewoon een .VBS maken en die schedulen. Een VBScript file is behoorlijk vergelijkbaar met (classic) ASP. Haal in die VBS uit je DB de benodigde gegevens en stuur emails wanneer nodig (je geeft aan te weten hoe dat moet). Schedule die VBS met behulp van de Windows "geplande taken" en je bent er.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 08:50

Creepy

Tactical Espionage Splatterer

Adelbert schreef op maandag 31 maart 2008 @ 10:38:
Het werkt niet zoals ik verwacht had, normaal haal ik altijd de gegevens voor mijn mail uit velden dus door <%=request("naam")%>, maar als de gegevens uit een access DB komen dan werkt dit niet.

En als het wel zou werken dan moet het nog automatisch gaan verlopen.
Enw at heb je dan precies geprobeerd? Wat "werkt er niet"? etc. etc. etc. Je geeft steeds heel erg weinig informatie. We hebben geen idee wat voor code je nu hebt geprobeerd om de data uit je database in je e-mail te krijgen dus wij moeten hier maar een heel eind gokken wat er nu niet werkt (en mijn glazen bol is weer eens stuk :/ ). Pas als dat werkt zou je moeten gaan nadenken over het schedulen van dit geheel.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • Adelbert
  • Registratie: Januari 2007
  • Laatst online: 27-01-2021
Met schedulen heb ik me nog niet bezig gehouden. Op dit moment vind ik het belangrijker dat het geheel werkt.

Wat ik tot nu toe heb (iig het deel dat relevant is) is onderstaande.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<% 
strDbPath = Server.MapPath(".") & "\inventaris.mdb"
ConnectStr = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & strDbPath

Set rs = Server.CreateObject("adodb.recordset") 
rs.Open "SELECT Artikel, Aantal FROM drukwerk", ConnectStr, 3, 3

'response.End()
'' email sturen in dien aangegeven
if aantal = 100 then
    'strHost = "smtp.concepts.nl"
    
    Set Mail = Server.CreateObject("Persits.MailSender")
        ' enter valid SMTP host
        'Mail.Host = strHost
        ''Mail.From  =  request("ingevoerd")
        Mail.From  =  "email.nl"
        Mail.FromName = "Bestelling"
        ''Mail.AddAddress  "bla"
        ''Mail.AddCC  "bla"
        ' message subject
        Mail.Subject  = "Bestelling"
        ' message body
        
        Mail.Body  = "TEST"

        Mail.CharSet = "UTF-8"
        Mail.ContentTransferEncoding = "Quoted-Printable"

        Mail.IsHTML = True 
        strErr = ""
        bSuccess = False
        On Error Resume Next ' catch errors
        Mail.SendToQueue  'Mail.send    ' send message
        If Err <> 0 Then ' error occurred
            strErr = Err.Description
            verstuurd = "nee"
        else
            bSuccess = True
            verstuurd = "ja"
            session.Abandon()
        End If


Alleen nu wordt de e-mail nog niet verzonden.

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 06-05 21:00

TeeDee

CQB 241

- Krijg je errors?
- Wordt de mail niet tegengehouden door SPAM filters?
- email.nl is, neem ik aan, niet het echte from adres?
- Kan je bij Persits geen debugging aanzetten?
- Vul je de Mail.Host nog ergens?
- Waar wordt Mail.To / AddAddress geset?

[ Voor 9% gewijzigd door TeeDee op 31-03-2008 13:45 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • Adelbert
  • Registratie: Januari 2007
  • Laatst online: 27-01-2021
- Geen errors
- spam filters zijn het probleem niet
- e-mail adres is een bestaand adres
- ?
- de host wordt op de server zelf gevuld

[ Voor 3% gewijzigd door Adelbert op 31-03-2008 13:47 ]


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 14:51

gorgi_19

Kruimeltjes zijn weer op :9

Waar wordt uberhaupt de variabele aantal gevuld?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 06-05 21:00

TeeDee

CQB 241

Overigens, als ik de Object Reference er bij pak, is Mail.SendToQueue alleen handig als je ook daadwerkelijk aan Queuing doet. Controleer dat ook nog even.

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • Adelbert
  • Registratie: Januari 2007
  • Laatst online: 27-01-2021
Hier:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    <% 
while not rs.eof
%>
    <tr>
      <td><%response.Write rs("artikel")%>
        <span class="style65 style68">
        <input name="aantal2" id="aantal2" type="hidden" value="<%response.Write rs("artikel")%>" />
      </span></td>
      <td><%response.Write rs("aantal")%>
        <span class="style65 style68">
        <input name="aantal" id="aantal" type="hidden" value="<%response.Write rs("aantal")%>" />
      </span></td>
    </tr>
    <%
rs.movenext() 
wend
%>

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 14:51

gorgi_19

Kruimeltjes zijn weer op :9

Dan nog zie ik niet in waar "aantal" in regel 10 (if aantal = 100 then) wordt gevuld.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 08:50

Creepy

Tactical Espionage Splatterer

Een variabele aantal in je code is heel iets anders dan een INPUT veld met de naam "aantal" in de gegenereerde HTML code. Niet om lullig te zijn maar een beetje ASP tutorial legt je dit verschil uit. Met een klein beetje basiskennnis zou je moeten weten dat deze twee dingen niet hetzelfde zijn.

Dit had je overigens ook snel gezien met een klein beetje debuggen. Druk die variabele aantal eens af en je ziet dat daar heel iets anders in staat dan dat jij verwacht.

[ Voor 22% gewijzigd door Creepy op 31-03-2008 14:15 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 14:51

gorgi_19

Kruimeltjes zijn weer op :9

Tipje: Code altijd met Option Explicit On

Zo zie je precies wat je wel en niet goed gebruikt.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • Adelbert
  • Registratie: Januari 2007
  • Laatst online: 27-01-2021
Als test heb ik dit gemaakt:

code:
1
2
3
4
5
6
7
8
9
<%
dim versturen
versturen = rs("aantal")
if versturen=>1 then
    response.write("JAAAAAAAAAA")    
else
    response.write("NEE")
end if
%>


Echter verwijs ik naar een veldnaam die in iedere regel van de tabel voorkomt en dus ook zoveel antwoorden krijg.

Is het ook mogelijk om 1 antwoord te krijgen?

edit: response.write ga ik dan op den duur vervangen door het mail verhaal.

[ Voor 9% gewijzigd door Adelbert op 01-04-2008 16:26 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 14:52

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Geen idee wat je bedoelt, maar ik verwacht dat je eens naar SUM moet kijken en GROUP BY ofzo. Maar wees nou please eens een keer duidelijk; op de post die je nu doet kunnen we enkel speculeren wat je nou bedoelt.

Ik krijg behoorlijk het idee dat je geen benul hebt van waar je mee bezig bent. Don't get me wrong, dat is helemaal niet erg en zo zijn we allemaal ooit min of meer begonnen. Maar verdiep je dan eerst eens in de basics voordat je hier komt vragen; we verwachten hier nou eenmaal wel een bepaald 'minimum' niveau.

[ Voor 56% gewijzigd door RobIII op 01-04-2008 16:31 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 06-05 21:00

TeeDee

CQB 241

Eigenlijk bedoel je dus:

Ik heb een recordset met n-aantal records. Daar wil ik 1 variabel als constante uit pikken om iets te doen.

Als je 1 antwoord wil kan je voordat je je recordset maakt een query doen met DISTINCT of iets als
SQL:
1
select blaat from tabel where melp=1

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • Adelbert
  • Registratie: Januari 2007
  • Laatst online: 27-01-2021
Oke misschien dat het wel duidelijk wordt als ik de code van mijn tabel plaats:\

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  <table width="100%" border="1">
    <% 
while not rs.eof
%>
    <tr>
      <td><%response.Write rs("artikel")%></td>
      <td><%response.Write rs("aantal")%>
</td>
    </tr>
<%
rs.movenext() 
wend
%>
  </table>


Op deze manier worden alle records in mijn tabel ieder op een nieuwe regel geplaatst.

Als ik nu mijn bovenvernoemde if else verhaal plaats, (en die kijkt naar: rs("aantal")) wordt er per regel de if-else functie uitgevoerd.

Het DISTINCT verhaal is mij helemaal duidelijk maar dit is niet de oplossing die ik zoek.

Er wordt per periode een selectie gemaakt van alle artikelen. Als er dan meerdere onder een bepaalde waarde (in bovenstaan voorbeeld boven 1) zijn wordt er een mailtje verstuurd.

Ik hoop dat het zo wel duidelijk is :)

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 06-05 21:00

TeeDee

CQB 241

En wat is nu dus het probleem? Je if klopt/werkt niet?
Als rs("aantal") een integer moet zijn, zou je eens kunnen kijken naar Cint(rs("aantal"). Vervolgens kan je daarop vergelijken.

Of wil je niet dat er bij elke iteratie een mailtje verzonden wordt?

[ Voor 16% gewijzigd door TeeDee op 01-04-2008 16:54 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • Adelbert
  • Registratie: Januari 2007
  • Laatst online: 27-01-2021
Juist, ik wil dat er maar 1 mailtje verstuurd wordt.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 14:52

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Adelbert schreef op dinsdag 01 april 2008 @ 17:02:
Juist, ik wil dat er maar 1 mailtje verstuurd wordt.
En ik wil dat je nu eens zélf wat moeite doet en je verdiept in de basics van programmeren. Ik heb geen zin om je een heel topic aan het handje te (laten) houden. Open gerust een nieuw topic als je een concrete vraag hebt, maar met dit soort replies schiet het voor geen meter op.

Mocht je het nog nodig hebben: Debuggen: Hoe doe ik dat?

[ Voor 18% gewijzigd door RobIII op 01-04-2008 17:06 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1

Dit topic is gesloten.