---
title: "- & error & -"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/8069-error"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Nirv@na"
published: "2001-02-08T22:23:00.000Z"
updated: "2001-02-09T13:38:00.000Z"
replies: 3
views: 222
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/8069-error"
---

# - & error & -

## #1 — Nirv@na, 2001-02-08T22:23Z

Laddade ner wfscriptet "meddelanden", <http://script.webforum.nu/wf/Forum1/HTML/000005.html>  Jag håller på att konfigurera den med min andra databas och får erroret:

Microsoft OLE DB Provider for ODBC Drivers fel '80004005' 

\[Microsoft\]\[Drivrutin för ODBC Microsoft Access\] Typblandningsfel i uttryck. 

/view.asp, rad 35 

\<%	Option Explicit %\>
\<%
	Dim iUsr, oCn, oRs1, oRs2, sSQL

	'
	' Ta emot parametern user från det tidigare formuläret.
	iUsr = Request.Form("user")

	'
	' Kolla om det är en siffra vi har fått...
	If (IsNumeric(iUsr)) Then
		'
		' Konvertera till integer.
		iUsr = Cint(iUsr)
	Else
		'
		' Vi har inte fått något värde skickat, och skriver ut ett felmeddelande om detta.
		Response.Write "\<b\> Inget användar-id har skickats till det här skriptet. \</b\>"
		Response.End
	End If

	'
	' Sätt ihopp sql-frågan.
	sSQL = "SELECT Meddelanande.\*, users.usrName FROM \[users\] INNER JOIN Meddelanande ON users.usrID = Meddelanande.msgFrom "
	sSQL = sSQL & "WHERE (((Meddelanande.msgTo)=" & iUsr & "))"

	Set oCn		= Server.CreateObject("ADODB.Connection")	' Skapa en databaskoppling.
	Set oRs1	= Server.CreateObject("ADODB.Recordset")	' Skapa ett recordset.
	Set oRs2	= Server.CreateObject("ADODB.Recordset")	' Vi kommer att behöva 2 st recordset.
	'
	' Öppna databasen med connection-objektet.
	oCn.Open "driver={Microsoft Access Driver (\*.mdb)};dbq=" & Server.MapPath("databasen.mdb")
	'
	' Här hämtar vi meddelanderna från databasen, som sparas i oRs1.

Rad 35 nedan
	oRs1.Open sSQL, oCn, 3

	'
	' Här hämtar vi en lista på alla användare ur databasen, som sparas i oRs2.
	oRs2.Open "SELECT users.\* FROM \[users\]", oCn, 3

	'
	' Kolla så att vi verkligen har fått några användare i listan.
	If (oRs2.Eof) Then
		'
		' Om inte så har vi ett litet problem.
		Response.Write "\<b\> Megafel! det finns inga användare i databasen. \</b\>"
		Response.End
	End IF
%\>
\<html\>
	\<body\>
		\<table border="0" width="400"\>
\<%
			'
			' Kolla om vi fått någonting i record-setet överhuvudtaget.
			If (oRs1.Eof) Then
				'
				' Om inte, så meddelar vi det.
				Response.Write "\<tr\>\<td\> Inga meddlanden för tillfället. \</td\>\</tr\>"
			Else
				'
				' Loopa ända till slutet på recordsetet.
				While Not(oRs1.Eof)
					'
					' Visa meddelandet.
					Response.Write "\<tr\>\<td\> \<b\> Från: \</b\> " & oRs1("usrName") & "\</td\>\</tr\>"
					Response.Write "\<tr bgcolor=#E0E0E0 \>\<td\>" & oRs1("msgText") & "\</td\>\</tr\>"

					'
					' Skriv även ut ett formulär som ser till så att vi kan ta bort meddelanden.
					Response.Write "\<tr\>\<td align=right\>\<form method=post action=delete.asp \>\<input type=hidden name=usrid value=" & iUsr
					Response.Write " \>\<input type=hidden name=msgid value=" & oRs1("msgID") & " \>\<input type=submit value=kasta\>\</form\>\</td\>\</tr\>"
					
					'
					' Gå till nästa post i recordset.
					oRs1.MoveNext
				Wend

			End IF
%\>
		\<tr\>\<td\>
			\<form method="post" action="send.asp"\>
				\<input type="hidden" name="id" value="\<%= iUsr %\>"\>
				\<b\> Till: \</b\>
				\<select name="user"\>
\<%
					'
					' Loopa igenom listan med användare.
					While Not(oRs2.Eof)
						'
						' Skriv ut alla användare.
						Response.Write "\<option value=" & oRs2("usrID") & " \>" & oRs2("usrName") & vbcrlf
						'
						' Gå till nästa rad i listan.
						oRs2.MoveNext
					Wend
%\>
				\</select\> \<br\>
				\<b\> Meddelande: \</b\> \<br\>
				\<textarea cols="45" rows="5" name="msg"\>\</textarea\>
				\<input type="submit" value="Skicka..."\>
			\</form\>
		\</td\>\</tr\>\<tr\>\<td align="right"\>
			\<a href="default.asp"\> logga ut... \</a\>
		\</td\>\</tr\>\</table\>
	\</body\>
\</html\>
\<%
	oRs2.Close	' Stäng recordset 2.
	oRs1.Close	' Stäng recordset 1.
	oCn.Close	' Stäng connection.
%\>

Är det någon som förstår felet?

\[Redigerat av Nirv@na den 08 feb 2001\]

\[Redigerat av Nirv@na den 08 feb 2001\]

Permalänk: https://www.webforum.nu/p/8069

## #2 — @nders, 2001-02-09T05:52Z

nu vet jag inte vad msgTo är för datatyp i tabellen, men om den är av typen text/pm skall where-delen av select-frågan se ut så här:

sSQL = sSQL & "WHERE (((Meddelanande.msgTo)='" & iUsr & "'))"

förstår inte riktigt heller de hundra parenteserna på den raden, men de kommer väl säkerligen från rymdknarks script, så det blir väl svårt för dig att förklara. :)

Permalänk: https://www.webforum.nu/p/258852

## #3 — yohpops, 2001-02-09T06:09Z

du kan inte skriva "SELECT Meddelanande.\*", du måste skriva vilka fält du vill ha ut när du gör en join..

Permalänk: https://www.webforum.nu/p/258853

## #4 — Nirv@na, 2001-02-09T13:38Z

Lyckades inte hur jag än ändrade... :(

Permalänk: https://www.webforum.nu/p/258854

---

Tråden på webben: https://www.webforum.nu/amne/asp/8069-error
