Toon posts:

[ASP] search form error

Pagina: 1
Acties:

Verwijderd

Topicstarter
hallo,
ik ben bezig om een search form te maken, maar ik stuit tegen een aantal dingetjes.

zie voor code:
http://www.workwithdmr.nl/projecten/

1. als ik nu een branche kies zou hij de subbranches die onder die branche vallen, in de dropbox subbranche moeten laden, maar ik krijg hier een fou melding:

Error Type:
Microsoft VBScript runtime (0x800A000D)
Type mismatch
/project/countdown/dummy2/index2test-roy.asp, line 70

line 70 is:
code:
1
subbranche.Source = "SELECT * FROM Subbranche, branche  WHERE Subbranche.Branche = branche.ID and branche.id = '"&branche&"'"

dit heb ik veranderd naar:
code:
1
subbranche.Source = "SELECT subbranche.ID, subbranche.NL_naam FROM dbo.Subbranche INNER JOIN branche ON branche.ID = Subbranche.Branche WHERE branche.id = '"&branche.value&"'"

maar dan krijg ik de volgede error:

Error Type:
ADODB.Fields (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.
/project/countdown/dummy2/TMP4950zunkku.asp, line 471

line 471:
code:
1
<option value="<%=(subbranche.Fields.Item("ID").Value)%>"><%=(subbranche.Fields.Item("NL_naam").Value)%></option>

zou iemand me hiermee kunnen helpen?

tnx in advance

Verwijderd

Topicstarter
niemmand??

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 09-09 16:14

Crazy D

I think we should take a look.

Beetje raar, als ik zo je query zie en wat je doet, mjah..

Probeer eens nadat je de query uitvoert (en ik neem aan dat je test of ie EOF is of niet) even iets doet als:
Dim veld
For Each veld In recordset.Fields
Response.Write "Naam: [" & veld.Name & "]<br>"
Next

Dan loopt ie (als ik het goed doe uit m'n hoofd...) door alle velden in je recordset heen...

Overigens is recordset.Collect("veld") ietsje sneller dan de manier waarop jij dat uitleest...

Exact expert nodig?


Verwijderd

Topicstarter
hmmm... doet hij ook niet.
wat is dat recordset.Collect... ken ik nog neit, waar kan ik meef info daarover halen?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09-09 20:58

Janoz

Moderator Devschuur®

!litemod

maak van NL_naam eens subbranche.NL_naam. Dat is tenminste wat ik op kan maken uit het lezen van de foutmeldingen..

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op dinsdag 16 april 2002 12:07 schreef PindaBit het volgende:
niemmand??
<laat>
Hoi,
[topic=327241/1/25]
Policy mbt het omhoogschoppen van threads. Wacht minstens 24 uur voor je je topic omhoog schopt. Doe dit dan ook alleen met een zinnige opmerking en dus niet met "Waarom antwoord er nou niemand" nadat je 5 minuten geen antwoord hebt gehad. Sommigen van ons hebben een leven :+
</laat>
tnx ;)

Doet iets met Cloud (MS/IBM)


Verwijderd

Je moet er in ieder geval voor zorgen dat je al je velden die je wilt gaan tonen of gebruiken uniek moet kunnen identificeren. Als je dus een join gebruik van 2 tabellen en je hebt in beide tabellen het veld ID staan dan moet je die dus in je SELECT-deel van je query een unieke naam geven voordat je ze kunt gebruiken.

Iets van:
SELECT TABEL1.ID AS TABEL1ID
,TABEL2.ID AS TABEL2ID
FROM TABEL1,TABEL2
WHERE TABEL1.VELDA = TABEL2.VELDB

Verwijderd

Topicstarter
ik heb de aanwijzingen uitgevoed, maar zonder succes,
hij blijft nu hangen bij de line 70
code:
1
2
3
4
5
6
7
8
set subbranche = Server.CreateObject("ADODB.Recordset")
subbranche.ActiveConnection = MM_countdown_STRING
if not request.form ("branche") = "" then
--hier--> subbranche.Source = "SELECT subbranche.ID, subbranche.NL_Naam FROM Subbranche INNER JOIN branche ON branche.ID = Subbranche.Branche  WHERE Branche.id = '"&branche&"'"
else
subbranche.Source = "SELECT subbranche.ID, subbranche.NL_Naam FROM Subbranche"
  end if
subbranche.CursorType = 0

Verwijderd

Geef je aan die recordset.activeconnection wel een geopend connection OBJECT mee ipv de connectstring?

Verwijderd

Topicstarter
ja, dat zit wel goed.

Nu heb ik
de code veranderd.. naar:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<%
set subbranche = Server.CreateObject("ADODB.Recordset")
subbranche.ActiveConnection = MM_countdown_STRING
if not request.form ("branche") = "" then
subbranche.Source = "SELECT branche.id, subbranche.ID, subbranche.nl_naam FROM Subbranche, branche where Subbranche.Branche = branche.ID and branche.NL_naam = '&branche&'"
else
    subbranche.Source = "SELECT * FROM Subbranche"
end if
subbranche.CursorType = 0
subbranche.CursorLocation = 2
subbranche.LockType = 3
subbranche.Open()
subbranche_numRows = 0
%>

maar dan maakt hij de dropbox helemaal leeg, en viult hem niet meer!?!? ;(

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 09-09 16:14

Crazy D

I think we should take a look.

Op dinsdag 16 april 2002 14:45 schreef PindaBit het volgende:
wat is dat recordset.Collect... ken ik nog neit, waar kan ik meef info daarover halen?
.Collect("veld") is een hidden functie van het recordset object. Het is een alternatief voor de verschillende manieren om een recordset uit te lezen. De bekenden zijn
recordset!veldnaam
recordset.Fields("veldnaam")
recordset.Fields("veldnaam").Value

recordset.Collect("veldnaam") staat niet in de reference guides, maar hij bestaat, en een tijdje geleden heb ik eens wat testjes gedaan nadat ik er al over had gelezen, en het is sneller dan dan via de Fields collectie het veld uit te lezen. (alleen kun je met .Collect puur en alleen een waarde uitlezen, in tegenstelling tot de Fields collectie).

Exact expert nodig?


Verwijderd

Topicstarter
ik ga me er eens in verdiepen.. lijkt me wel ok.
de dropbox kwestie is verholpen... dit moest het zijn:
code:
1
2
3
4
5
if not request.form ("branche") = "" then
subbranche.Source = "Select subbranche.NL_Naam, subbranche.id, branche.id from subbranche Inner Join branche on subbranche.branche = branche.id where branche.id = '" & request.form ("branche") & "'"
    else
    subbranche.Source = "SELECT * FROM Subbranche"
end if

tnx for the help
Pagina: 1