Avatar billede ste Nybegynder
20. april 2004 - 10:39 Der er 13 kommentarer og
1 løsning

Jmail sender ikke text felt fra database.

Jeg har en Jmail der ikke sender text feltet fra databasen med.
Jeg har følgende kode.

JMail.Body = "Beskrivelse af observationen." & VbCrLf & VbCrLf
  JMail.Body = JMail.Body & rs("Obnr")& rs("Obbeskrivelse") & VbCrLf & VbCrLf
  JMail.Body = JMail.Body & "Se mere  klik her. http://xxx/" &rs("Lokation")
  JMail.Body = JMail.Body & strCv
Det er felter Obbeskrivelse der ikke returneres. Hvis jeg skifter der ud med et andet er der ingen problemer. Feltet hentes i en access database og er et notat felt. Obnr og Lokation felterne er text felter og der er ingen problemer.Hvad er der galt.
Avatar billede stoffer Nybegynder
20. april 2004 - 10:51 #1
når du bruger tekstfelt, skal du være opmærksom rækkefølgen du henter i.

derfor lav et et par variable

dim obnr
dim obbdesc


obbdesc = rs("Obbeskrivelse")
obnr = rs("Obnr")

JMail.Body = JMail.Body & obnr & obbdesc  & VbCrLf & VbCrLf
Avatar billede stoffer Nybegynder
20. april 2004 - 10:53 #2
Det er det specielle ved tekst felter, at gemme indholdet i hukkommelsen ville være for tungt. Så det kan kun hives ud én gang i korrekt rækkefølge.
Avatar billede ste Nybegynder
20. april 2004 - 10:55 #3
Den returnere stadig kun Obnr.
Avatar billede stoffer Nybegynder
20. april 2004 - 11:10 #4
Prøv lige at skrive din kode fra hvor du opretter recordsettet...
Avatar billede ste Nybegynder
20. april 2004 - 11:23 #5
Det er en del af en større udskrift formular men her får du den.
<%
' ADODB connection objektet
Set Conn = Server.CreateObject("ADODB.Connection")
' Husk at angive den rigtige sti til din database
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../fpdb/xxx.mdb")
' Åben databaseforbindelsen
Conn.Open DSN

strDato = Request("ObDato")
strDato = Year(strDato) & "-" & Month(strDato) & "-" & Day(strDato)

strSQL = "Select ObNr, Navn1, Obinitialer, Afdeling, Lokation, LokId, ObKategori, Obtype, ObDato, ObTid, Obbeskrivelse, ObAArsag, RisikoGentagelse, Navn2, HaType, Habeskrivelse, Frist, HaDato, HaTid, Navn4, OpInitialer, Tilfredsstillende, Afsluttet, Nyobservation, OpDato, OpTid from qryObservationersamlet  Where Obnr ="&Request("Obnr")
Set rs = Conn.Execute(strSQL)
   
if rs.eof then
response.write("Der er ikke fundet nogen observation med angivne kriterie")

else
   
            DO WHILE NOT RS.EOF
                ObNr = rs("ObNr")
                Navn1 = rs("Navn1")
                Obinitialer =rs("Obinitialer")
                Afdeling= rs("Afdeling")
                Lokation= rs("Lokation")
                ObKategori = rs("ObKategori")
                Obtype = rs("Obtype")
                ObDato = rs("ObDato")
                ObTId = rs("ObTid")           
                Obbeskrivelse = rs("Obbeskrivelse")
                ObAArsag = rs("ObAArsag")
                RisikoGentagelse= rs("RisikoGentagelse")
                Navn2 = rs("Navn2")
                Hatype = rs("Hatype")
                Habeskrivelse = rs("Habeskrivelse")
                Frist = rs("Frist")
                HaDato = rs("HaDato")
                HaTid = rs("HaTid")
                Navn4 = rs("Navn4")
                OpInitialer = rs("OpInitialer")
                Tilfredsstillende = rs("Tilfredsstillende")
                Afsluttet = rs("Afsluttet")
                Nyobservation = rs("Nyobservation")
                OpDato = rs("OpDato")
                OpTid = rs("OpTid")
                LokId =rs("LokId")
%>
Så kommer der en masse html kode til at lave en udskrifts side.Den virker efter hensigten. Derfor udelader jeg dette.

Her kommer Jmailen
<%
Set JMail = Server.CreateObject("JMail.SMTPMail")
Response.Expires = 0

 
  JMail.ServerAddress = "mail.xxx.com"
  JMail.sender = rs("Obinitialer")& "@elsam.com"
  JMail.subject = "Der er registreret en observation i miljøstyringssystemet."
  JMail.AddRecipientBCC rs("Obinitialer") & "@xxx.com"
 
  JMail.Body = "Beskrivelse af observationen." & VbCrLf & VbCrLf
  JMail.Body = JMail.Body & rs("Obnr") & rs("Obbeskrivelse")  & VbCrLf & VbCrLf
  JMail.Body = JMail.Body & "Se mere  klik her. http://xxx/" &rs("Lokation") & VbCrLf & VbCrLf
  JMail.Body = JMail.Body & strCv
 
  'Her bliver form-mailens prioritet bestemt
  ' 1 - højeste (Haster / Vigtigt)
  ' 3 - normal
  ' 5 - lavest
  JMail.Priority = 3

  JMail.Execute
 
 
  ' Gå til næste Record i rs
  rs.MoveNext

' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Loop

 
' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing

END IF%>
Avatar billede vbcoder Nybegynder
20. april 2004 - 12:04 #6
Nu gør du det at du sætter en masse variabler der så initieres med værdierne fra din recordset

snip
            DO WHILE NOT RS.EOF
                ObNr = rs("ObNr")
                Navn1 = rs("Navn1")
                Obinitialer =rs("Obinitialer")
                Afdeling= rs("Afdeling")
                Lokation= rs("Lokation")
snip

Hvis du genbruger din variabler i din jmail hvad sker der så?

  JMail.ServerAddress = "mail.xxx.com"
  JMail.sender = Obinitialer& "@elsam.com"
  JMail.subject = "Der er registreret en observation i miljøstyringssystemet."
  JMail.AddRecipientBCC Obinitialer & "@xxx.com"
 
  JMail.Body = "Beskrivelse af observationen." & VbCrLf & VbCrLf
  JMail.Body = JMail.Body & Obnr & Obbeskrivelse  & VbCrLf & VbCrLf
  JMail.Body = JMail.Body & "Se mere  klik her. http://xxx/" & Lokation & VbCrLf & VbCrLf
  JMail.Body = JMail.Body & strCv

Du kunne også lægge flg. i din kode - lige før du genererer din jmail

'debug
response.write (Rs("Obbeskrivelse") & "<br>")
response.write (obbeskrivelse & "<br>")
response.end ()

så kan du da se om der er noget i recordset og i variabel
Avatar billede ste Nybegynder
20. april 2004 - 15:00 #7
vbcoder.
Det virkede. Gider du lige smide et svar, så får du points.
Avatar billede stoffer Nybegynder
20. april 2004 - 15:33 #8
hehe. det var nøjagtig det jeg skrev ;)

Som sagt når du har hevet et tekstfelt ud én gang kan det ikke hives ud flere gange...
Avatar billede vbcoder Nybegynder
20. april 2004 - 17:24 #9
takker
Avatar billede ste Nybegynder
20. april 2004 - 18:58 #10
stoffer.
Undskyld. Det er ikke det jeg har forstået udfra dit svar. Jeg bruger stadig tekst feltet flere gange. Jeg har bare lave kaldet om fra rs("Obbeskrivelse") til Obbeskrivelse, lige som vbcoder foreslog. Men hvis du stadig er af anden mening, skal du også smide et svar så jeg kan fordele pointene lidt.
Avatar billede vbcoder Nybegynder
20. april 2004 - 19:35 #11
-->stoffer : Det er ikke korrekt at man kun kan tilgå et tekstfelt en gang. Du kan lave lige så mange request.form("data") som du vil.

Asp motoren skal ud og hente formens indhold hver gang og det kræver flere ressourcer end at bruge variabler og tildele dem værdierne fra formens indhold.

At tilgå en variabel kræver mindre af asp motoren end at hente en hel forms indhold og derefter finde det felt man vil have.
Avatar billede stoffer Nybegynder
21. april 2004 - 02:26 #12
--> vbcoder
Det har du ikke ret i. I dette tilfælde snakker vi jo ikke noget med request.form. Vi snakker database udtræk, og her kan du altså kun udtrække én gang pr. række når det er et notat data type i databasen (som jeg kaldte tekst felt).

Det andet ved jeg udemærket godt, og det var heller ikke diskussionen.

--> ste
Intet problem, var egentlig mere så du forstod grunden til hvorfor det ikke virkede.
Avatar billede vbcoder Nybegynder
21. april 2004 - 07:14 #13
--> stoffer
For at forstå hvad du mener skal jeg have bukket det i neon ;o)

3 variabler
dim var1
dim var2
dim var3

tilskrivning af værdier fra recordset til variabler
var1 = rs("tekst1")
var2 = rs("tekst2")

så skulle recordset være tømt således at en tilskrivning til

var3 = rs("tekst1")

ville resultere i at var3 er tom?
Avatar billede stoffer Nybegynder
21. april 2004 - 10:25 #14
vbcoder -->
Det jeg mener er blot:

var1 = rs("tekst1")
var2 = rs("tekst1")

var2 vil her være tom.

Hvis man requester det samme tekst felt (notat felt i access tror jeg) vil det være tomt (sådan er det i hvert fald i MSSQL).

vh stoffer
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Digitaliseringsstyrelsen

IT-arkitekt hos Digitaliseringsstyrelsen

JP/Politikens Hus

Digital Workplace Supporter

Riskpoint A/S (Riskpoint Solutions Limited)

Senior Developer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger Entreprise Arkitekt