Jag blir tokig snart.
Jag kollar mina "Visa"-strängar och kör dem direkt som frågor inne i Access. Då fungerar de!
Men på ASP-sidan fungerar inte en av dem.
Denna funkar :
SELECT * FROM Members WHERE Epost<>'' AND Status=20 AND Land IN ('Austria', 'Sweden')
Denna funkar inte :
SELECT * FROM Members WHERE Epost<>'' AND Status=20 AND Language IN ('English', 'German')
Den ger felmeddelande :
Technical Information (for support personnel)
Error Type:
(0x80004005)
Unspecified error
/aldea/sendmessage.asp, line 38
Browser Type:
Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
Page:
POST 119 bytes to /aldea/sendmessage.asp
POST Data:
action=send&Rubrik=&Meddelande=&urval=language&checkbox2=%27English%27&checkbox2=%27German%27&Submit=Skicka+Meddelandet
Rad 38 : RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic
Här är hela koden :
<%Option Explicit%>
<!-- #include file="adovbs.inc" -->
<%
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
' Kontroll av rättigheter för sidan.
If Session("username") = "" Then Response.Redirect "default.asp"
If Session("access") <> "A" Then Response.Redirect "noaccess.asp"
%>
<html>
<head>
<title>Skicka meddelande</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="#FFFFFF" text="#000000" class="vanlig">
<div align="center"> <span class="Rubrik">Send mail to selected members</span> <br><br>
<%
Server.ScriptTimeout = 600
Dim JMail, Connect, RecSet, Visa, meddelande, rubrik, RecSet2, Visa2
Dim i
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("..\db\aldeadata.mdb")&" "
meddelande=Request.Form("Meddelande")
'Replace(RecSet("Text"), vbCrLf, "<BR>")
rubrik=Request.Form("Rubrik")
'Funktion som mailar uppgifter till registrerad epostadress-----------------------------------------------------------------------------
If Request.Form("action")="send" Then
Visa = "SELECT * FROM Members WHERE Epost<>'' AND Status=20"
If Request.form("urval")="all" Then Visa = "SELECT * FROM Members WHERE Epost<>'' AND Status=20"
If Request.form("urval")="blocks" Then Visa = "SELECT * FROM Members WHERE Epost<>'' AND Status=20 AND Block IN (" & Request.Form("checkbox3") & ")"
If Request.form("urval")="national" Then Visa = "SELECT * FROM Members WHERE Epost<>'' AND Status=20 AND Land IN (" & Request.Form("checkbox1") & ")"
If Request.form("urval")="language" Then Visa = "SELECT * FROM Members WHERE Epost<>'' AND Status=20 AND Language IN (" & Request.Form("checkbox2") & ")"
Set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic
Do Until RecSet.EOF
' Set JMail = Server.CreateObject("JMail.SMTPMail")
' Jmail.LazySend = True
' JMail.ServerAddress = "smtp.sepawa.org"
' JMail.Sender = "info@sepawa.org"
' JMail.Subject = Rubrik
' JMail.AddRecipient RecSet("Epost")
' JMail.Body = meddelande&" "&VbCrLf&"Dina inloggningsuppgifter till Sepawa Norden : [url]www.sepawa.org[/url]"&VbCrLf&"Användarnamn : "&RecSet("Username")&VbCrLf&"Lösenord : "&RecSet("Password")&""
' JMail.Priority = 3
' JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
' JMail.Execute
' Set JMail=Nothing
Response.write "Skickar meddelande till "&RecSet("Epost")&"<BR>"
RecSet.MoveNext
Loop
RecSet.Close
Else
%>
<form name="form1" method="post" action="sendmessage.asp">
<p>
<input type="hidden" name="action" value="send">
<b>Header:</b><br>
<input type="text" name="Rubrik" size="40">
<br>
<br>
<br>
<b class="Rubrik">Message body:</b><br>
<textarea NAME="Meddelande" ROWS="30" COLS="60"></textarea>
</p>
<p>
<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2" class="Rubrik"> Select to which this message will be sent
to</td>
</tr>
<tr>
<td>
<input type="radio" name="urval" value="all" checked>
</td>
<td class="vanlig"> Send to all members.</td>
</tr>
<tr>
<td>
<input type="radio" name="urval" value="national">
</td>
<td class="vanlig">Send to all members in following countries :<br>
<%
Set RecSet2 = Server.CreateObject("ADODB.Recordset")
Visa2 = "SELECT * FROM Lander ORDER BY Land ASC"
RecSet2.Open Visa2, Connect, adOpenStatic, adLockOptimistic
While (NOT RecSet2.EOF)
%><input type="checkbox" name="checkbox1" value="'<%=RecSet2("Land")%>'"><%=RecSet2("Land")%><%
RecSet2.MoveNext()
Wend
RecSet2.Close %>
</td>
</tr>
<tr>
<td>
<input type="radio" name="urval" value="language">
</td>
<td class="vanlig">Send to all members who prefers the following language :<br>
<input type="checkbox" name="checkbox2" value="'English'">English
<input type="checkbox" name="checkbox2" value="'German'">German
<input type="checkbox" name="checkbox2" value="'French'">French
<input type="checkbox" name="checkbox2" value="'Scandinavian'">Scandinavian
</td>
</tr>
<tr>
<td>
<input type="radio" name="urval" value="blocks">
</td>
<td class="vanlig">Send message to members in following blocks :<br>
<% For i = 1 to 17 %>
<input type="checkbox" name="checkbox3" value="<%=i%>">
<%=i%>
<% Next %>
</td>
</tr>
</table>
<br> <br> <br>
Press button ONCE to send the message. It may take many minutes!<BR>
<input type="submit" name="Submit" value="Skicka Meddelandet">
</form>
<%
End If
Connect.Close
%>
</div>
</body>
</html>
Både Land och Language är av typen Text.