navn = Replace(Trim(Request.Form("navn")),"'","''") strKeyword = Replace(Trim(Request.Form("Keyword")),"'","''")
fraDato = "" tilDato = "" if isDate(fraDag&"-"&fraMaaned&"-"&fraAar) then fraDato = fraAar & "-" & fraMaaned & "-" & fraDag end if if isDate(tilDag&"-"&tilMaaned&"-"&tilAar) then tilDato = tilAar & "-" & tilMaaned & "-" & tilDag end if
sqlWHERE = "" if strKeyword <> "" then sqlWHERE = sqlWHERE & "(" sqlWHERE = sqlWHERE & "(Adresse LIKE '%" & strKeyword & "%')" sqlWHERE = sqlWHERE & " OR (Bynavn LIKE '%" & strKeyword & "%')" sqlWHERE = sqlWHERE & " OR (Beskrivelse LIKE '%" & strKeyword & "%')" sqlWHERE = sqlWHERE & ")" end if if fraDato <> "" AND tilDato <> "" then if sqlWHERE <> "" then sqlWHERE = sqlWHERE & " AND " sqlWHERE = sqlWHERE & "(dato >= #" & fraDato & "# AND dato <= #" & tilDato & "#)" end if if navn <> "" then if sqlWHERE <> "" then sqlWHERE = sqlWHERE & " AND " sqlWHERE = sqlWHERE & "(navn = '" & navn & "')" end if
strSQL = "SELECT DocumentID, Navn, barcode, Adresse, Bynavn, Beskrivelse, Dato FROM indexTbl" if sqlWHERE <> "" then strSQL = strSQL & " WHERE " & sqlWHERE
'Her til angiver jeg søgeresultatet
' Skaber DSNLess forbindelse til DBen laver en konektion til min database strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("Dokument.mdb") Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open strDSN
' Skaber et recordset udfra SQL strengen Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then ' Hvis der er fundet poster på søgningen Response.Write "<p>Søgeresultat</p>" 'Her ændre jeg senere udsendet på visningen ved border 'Response.Write "<table border=1>" ' Overskriften vær opmærksom på at den rykker sig hvis feltet er tomt ser på det senere %> <table width="630" border="0" align="left"> <% do until rs.eof %>
' rs.MoveNext ' Loop ' Response.Write "</table>" 'Else ' Hvis der ikke er fundet poster på søgningen ' Response.Write "<p>Der er ikke fundet noget på denne søgning</p>" 'End If
' Rydder op efter mig 'myConn.Close 'Set myConn = Nothing '%>
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Fejltype: Der opstod en Microsoft VBScript-kompileringsfejl (0x800A0412) Det skal være den første sætning på linjen /ss/search.asp, line 123, column 19 set conn = nothing end if ------------------^
navn = Replace(Trim(Request.Form("navn")),"'","''") strKeyword = Replace(Trim(Request.Form("Keyword")),"'","''")
fraDato = "" tilDato = "" if isDate(fraDag&"-"&fraMaaned&"-"&fraAar) then fraDato = fraAar & "-" & fraMaaned & "-" & fraDag end if if isDate(tilDag&"-"&tilMaaned&"-"&tilAar) then tilDato = tilAar & "-" & tilMaaned & "-" & tilDag end if
sqlWHERE = "" if strKeyword <> "" then sqlWHERE = sqlWHERE & "(" sqlWHERE = sqlWHERE & "(Adresse LIKE '%" & strKeyword & "%')" sqlWHERE = sqlWHERE & " OR (Bynavn LIKE '%" & strKeyword & "%')" sqlWHERE = sqlWHERE & " OR (Beskrivelse LIKE '%" & strKeyword & "%')" sqlWHERE = sqlWHERE & ")" end if if fraDato <> "" AND tilDato <> "" then if sqlWHERE <> "" then sqlWHERE = sqlWHERE & " AND " sqlWHERE = sqlWHERE & "(dato >= #" & fraDato & "# AND dato <= #" & tilDato & "#)" end if if navn <> "" then if sqlWHERE <> "" then sqlWHERE = sqlWHERE & " AND " sqlWHERE = sqlWHERE & "(navn = '" & navn & "')" end if
strSQL = "SELECT DocumentID, [Navn], barcode, [Adresse], Bynavn, [Beskrivelse], Dato FROM indexTbl" if sqlWHERE <> "" then strSQL = strSQL & " WHERE " & sqlWHERE
'Her til angiver jeg søgeresultatet
' Skaber DSNLess forbindelse til DBen laver en konektion til min database strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("Dokument.mdb") Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open strDSN
' Skaber et recordset udfra SQL strengen Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then ' Hvis der er fundet poster på søgningen Response.Write "<p>Søgeresultat</p>" 'Her ændre jeg senere udsendet på visningen ved border 'Response.Write "<table border=1>" ' Overskriften vær opmærksom på at den rykker sig hvis feltet er tomt ser på det senere %> <table width="630" border="0" align="left"> <% do until rs.eof %>
' rs.MoveNext ' Loop ' Response.Write "</table>" 'Else ' Hvis der ikke er fundet poster på søgningen ' Response.Write "<p>Der er ikke fundet noget på denne søgning</p>" 'End If
' Rydder op efter mig 'myConn.Close 'Set myConn = Nothing '%>
Jeg smider lige ekstra 30 point på det her spørgsmål
Hvordan er nu jeg kun sætter overskriften i toppen og ikke som nu for hvert resultat
Og jeg har ryddet lidt op i koden ********************************************************** <% Response.Buffer = True Session.LCID=1030 'Dansk dato format %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Søgeresultat</title> <link rel="stylesheet" type="text/css" href="Style.css"> </head> <body>
navn = Replace(Trim(Request.Form("navn")),"'","''") strKeyword = Replace(Trim(Request.Form("Keyword")),"'","''")
fraDato = "" tilDato = "" if isDate(fraDag&"-"&fraMaaned&"-"&fraAar) then fraDato = fraAar & "-" & fraMaaned & "-" & fraDag end if if isDate(tilDag&"-"&tilMaaned&"-"&tilAar) then tilDato = tilAar & "-" & tilMaaned & "-" & tilDag end if
sqlWHERE = "" if strKeyword <> "" then sqlWHERE = sqlWHERE & "(" sqlWHERE = sqlWHERE & "(Adresse LIKE '%" & strKeyword & "%')" sqlWHERE = sqlWHERE & " OR (Bynavn LIKE '%" & strKeyword & "%')" sqlWHERE = sqlWHERE & " OR (Beskrivelse LIKE '%" & strKeyword & "%')" sqlWHERE = sqlWHERE & ")" end if if fraDato <> "" AND tilDato <> "" then if sqlWHERE <> "" then sqlWHERE = sqlWHERE & " AND " sqlWHERE = sqlWHERE & "(dato >= #" & fraDato & "# AND dato <= #" & tilDato & "#)" end if if navn <> "" then if sqlWHERE <> "" then sqlWHERE = sqlWHERE & " AND " sqlWHERE = sqlWHERE & "(navn = '" & navn & "')" end if
strSQL = "SELECT DocumentID, [Navn], barcode, [Adresse], Bynavn, [Beskrivelse], Dato FROM indexTbl" if sqlWHERE <> "" then strSQL = strSQL & " WHERE " & sqlWHERE
'Her til angiver jeg søgeresultatet
' Skaber DSNLess forbindelse til DBen laver en konektion til min database strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("Dokument.mdb") Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open strDSN
' Skaber et recordset udfra SQL strengen Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then ' Hvis der er fundet poster på søgningen Response.Write "<p>Søgeresultat</p>" 'Her ændre jeg senere udsendet på visningen ved border
%> <table width="630" border="0" align="left"> <% do until rs.eof %>
<% rs.movenext loop Else ' Hvis der ikke er fundet poster på søgningen Response.Write "<p>Der er ikke fundet noget på denne søgning</p>" End If ' Rydder op efter mig %>
Men lige et sidste 30 point spørgsmål Som du kan se henter jeg mine data fra tabellen "indexTbl" fra felterne: Navn, barcode, Adresse, Bynavn, Beskrivelse
Jeg har en anden tabel i den samme database den hedder "DocTbl" og feltet hedder "Documentpath"
dette kunne jeg godt tænke mig at få vis som et link
asker -> Ja hvis du lige fortæller hvor dan de to tabeller hænger sammen. Hvordan finder man de data i DocTbl som høre sammen med de data du henter fra indexTbl. Der må vel være et indeks som er det samme i begge tabeller.
Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Microsoft Access-driver] Det angivne felt "DocumentID" kan referere til mere end én tabel, der er vist i FROM-delsætningen i sætningen SQL. /ss/search.asp, line 66
Så vil jeg kalde den sådan her <td bgcolor="#CFDDDE" width="180"><font size="2"></a><img src="../images/nyp.gif" align="right"><a href="test.asp?Link=<%=rs("Documentpath")%>"><%=rs("navn")%></td>
Så du at jeg fik en fejl Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Microsoft Access-driver] Det angivne felt "DocumentID" kan referere til mere end én tabel, der er vist i FROM-delsætningen i sætningen SQL. /ss/search.asp, line 66
Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E10) [Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 1. /ss/search.asp, line 66
Det er lige meget hvor jeg sætter den så får jeg den her fejl
Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E10) [Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 1. /ss/search.asp, line 71
Hvis du ikke laver en matching på f.eks. Dokument så får du det der hedder "de kartesiske produkt" af de to tabeller - det er kombinationen af samtlige rækker fra den ene taleb med samtlige rækker fra den anden. Det er ikke ret tit at man kan bruge dette til noget virkeligt nyttigt.
Jamen der er ingen sql sætning den kommer bare med en fejl med din "sætning "
Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E10) [Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 1. /ss/search.asp, line 71
Med den her sql sætning: strSQL = "SELECT indexTbl.barcode, indexTbl.Dato, indexTbl.Navn, indexTbl.Adresse, indexTbl.Bynavn, indexTbl.Beskrivelse, docTbl.DocumentPath FROM indexTbl, docTbl" if sqlWHERE <> "" then strSQL = strSQL & " AND " & sqlWHERE
kommmer dette resultatat til skærmen men den sætter det 7 gange SELECT indexTbl.barcode, indexTbl.Dato, indexTbl.Navn, indexTbl.Adresse, indexTbl.Bynavn, indexTbl.Beskrivelse, docTbl.DocumentPath FROM indexTbl, docTbl
navn = Replace(Trim(Request.Form("navn")),"'","''") strKeyword = Replace(Trim(Request.Form("Keyword")),"'","''")
fraDato = "" tilDato = "" if isDate(fraDag&"-"&fraMaaned&"-"&fraAar) then fraDato = fraAar & "-" & fraMaaned & "-" & fraDag end if if isDate(tilDag&"-"&tilMaaned&"-"&tilAar) then tilDato = tilAar & "-" & tilMaaned & "-" & tilDag end if
sqlWHERE = "" if strKeyword <> "" then sqlWHERE = sqlWHERE & "(" sqlWHERE = sqlWHERE & "(Adresse LIKE '%" & strKeyword & "%')" sqlWHERE = sqlWHERE & " OR (Bynavn LIKE '%" & strKeyword & "%')" sqlWHERE = sqlWHERE & " OR (Beskrivelse LIKE '%" & strKeyword & "%')" sqlWHERE = sqlWHERE & ")" end if if fraDato <> "" AND tilDato <> "" then if sqlWHERE <> "" then sqlWHERE = sqlWHERE & " AND " sqlWHERE = sqlWHERE & "(dato >= #" & fraDato & "# AND dato <= #" & tilDato & "#)" end if if navn <> "" then if sqlWHERE <> "" then sqlWHERE = sqlWHERE & " AND " sqlWHERE = sqlWHERE & "(navn = '" & navn & "')" end if
'strSQL = "SELECT T1.DocumentID, [Navn], barcode, [Adresse], Bynavn, [Beskrivelse], Dato, Documentpath FROM indexTbl AS T1, DocTbl WHERE indexTbl.DocumentID=DocTbl.DocumentID" 'if sqlWHERE <> "" then strSQL = strSQL & " AND " & sqlWHERE
strSQL = "SELECT indexTbl.barcode, indexTbl.Dato, indexTbl.Navn, indexTbl.Adresse, indexTbl.Bynavn, indexTbl.Beskrivelse, docTbl.DocumentPath FROM indexTbl, docTbl" if sqlWHERE <> "" then strSQL = strSQL & " AND " & sqlWHERE
'strSQL = "SELECT DocumentID, [Navn], barcode, [Adresse], Bynavn, [Beskrivelse], test, Dato FROM indexTbl" 'if sqlWHERE <> "" then strSQL = strSQL & " WHERE " & sqlWHERE
'Her til angiver jeg søgeresultatet
' Skaber DSNLess forbindelse til DBen laver en konektion til min database strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("Dokument.mdb") Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open strDSN
Response.Write(strSQL)
' Skaber et recordset udfra SQL strengen Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then ' Hvis der er fundet poster på søgningen Response.Write "<p>Søgeresultat</p>" 'Her ændre jeg senere udsendet på visningen ved border
<td bgcolor="#CFDDDE" align="center" width="64"><font size="2" width="72"><%=rs("Navn")%></td> <td bgcolor="#CFDDDE" align="center" width="53"><font size="2" width="62"><%=rs("Adresse")%></td> <td bgcolor="#CFDDDE" align="center" width="48"><font size="2" width="58"><%=rs("Bynavn")%></td> <td bgcolor="#CFDDDE" align="center" width="50"><font size="2" width="61"><%=rs("Beskrivelse")%></td> <td bgcolor="#CFDDDE" align="center" width="100"><font size="2" width="49"><%=rs("Dato")%></td> <td bgcolor="#CFDDDE" align="center" width="150"><font size="2" width="53"><%=rs("Barcode")%></td> </tr> <% rs.movenext loop Else ' Hvis der ikke er fundet poster på søgningen Response.Write "<p>Der er ikke fundet noget på denne søgning</p>" End If ' Rydder op efter mig %>
Hvis Response.Write(strSQL) ikke udskriver noget så er det fordi at din strSQL er tom. Der er ikke nogen anden forklaring. Det ville også forklare hvorfor at Access brokker sig.
Jeg er faktisk på vej i seng (eller var det for ½ times tid siden). Jeg forstår nu ikke hvorfor at du får fejl (det er stadig i linje 71?). Endelig så forstår jeg ikke hvorfor at der ikke bliver skrevet noget ud på skærmesn som følge af at der er tilføget en Response.Write(...).
Prøv lige at ret den til: Response.Write("XXX " & strSQL & " XXX") og fortæl mig om der ikke i det mindste bliver udskrevet to gange XXX på skærmen.
Takker for points, og du er selvfølgelig velkommen til at åbne et nyt spørgsmål. Jeg er nu ret sikker på at svaret kommer til at lægge meget tæt op af det jeg allerede har anvist.
Men godnat herfra. :^)
Synes godt om
Ny brugerNybegynder
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.