Avatar billede fomse Nybegynder
28. juli 2004 - 12:56 Der er 15 kommentarer og
1 løsning

Kan man udskrive en hel række?

Jeg har følgende kolloner:
omr, byg, emne, ark, ent, aftaleDato, tilmeldDato

Hvordan udskriver jeg dem nemmest på række således:

Område:  Bygherre:
omr      byg

Osv....
Avatar billede mikkel_strack Nybegynder
28. juli 2004 - 13:14 #1
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strSQL, Conn, 1

top = rs.RecordCount
If top <> 0 then
MyArr = rs.GetRows()
end if
' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>

<table>
<tr>
  <td>område</td><td>bygherre</td><td>emne</td>
</tr>
<%
If top <> 0 then
For i=0 to (top-1)
  Response.Write "<tr><td>" & MyArr(1,i) & "</td><td>" & MyArr(2,i) & "</td><td>" & MyArr(3,i) & "</td><td></tr>"
Next
End if
%>
</table>



Noget i stil med sån her :o)
Avatar billede fomse Nybegynder
28. juli 2004 - 13:24 #2
Hmm får følgende fejl:

ADODB.Recordset error '800a0bb9'

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

/Leif/vis2.asp, line 23
Avatar billede mikkel_strack Nybegynder
28. juli 2004 - 13:26 #3
Prøv at smide din kode ind..
Avatar billede fomse Nybegynder
28. juli 2004 - 13:30 #4
<%
dim conn, strConn

strConn  = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(".")+"/db.mdb"

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strSQL, Conn, 1

top = rs.RecordCount
If top <> 0 then
MyArr = rs.GetRows()
end if
' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>

<table>
<tr>
  <td>Område</td><td>Bygherre</td><td>Emne</td><td>Arkitekt</td><td>Entreprenør</td><td>Aftaledato</td><td>Tilmeldingsdato</td>
</tr>
<%
If top <> 0 then
For i=0 to (top-1)
  Response.Write "<tr><td>" & MyArr(1,i) & "</td><td>" & MyArr(2,i) & "</td><td>" & MyArr(3,i) & "</td><td>" & MyArr(4,i) & "</td><td>" & MyArr(5,i) & "</td><td>" & MyArr(6,i) & "</td><td>" & MyArr(7,i) & "</td></tr>"
Next
End if
%>
</table>
Avatar billede mikkel_strack Nybegynder
28. juli 2004 - 13:42 #5
Jeg havde kun lige skrevet en smule af det...der er jo intet kald til databasen.
Skriver det hele nu....og kommenterer der hvor du selv skal ændre.

<html>
<head>
</head>
<body>
dim conn

function OpenConn( DBName )

Set Conn = Server.CreateObject("ADODB.Connection")
ODBCpath = left(request.servervariables("PATH_TRANSLATED"), instrrev(request.servervariables("PATH_TRANSLATED"), "\"))
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ODBCpath & DBName

end function

'Her skal skal stien stå til din databas.mdb - er den placeret i sammen mappe som dette dokument skal det være som nedenfor, hvor database.mdb skal udskiftes med navnet på din database
OpenConn("database.mdb")

'udskift tabelnavn med navet på din tabel
strSQL = "Select * from tabelnavn"

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strSQL, Conn, 1

top = rs.RecordCount
If top <> 0 then
MyArr = rs.GetRows()
end if
' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>

<table>
<tr>
  <td>område</td><td>bygherre</td><td>emne</td>
</tr>
'Længere oppe i koden er oprettet et 2-dim array som inde holder alt der blev hentet fra databasen. Hvis du har 5 kolonner i din database må der på den første plads i parantesen i MyArr(z,i) HØJST stå 4. Den tæller 0,1,2,3,4
<%
If top <> 0 then
For i=0 to (top-1)
  Response.Write "<tr><td>" & MyArr(1,i) & "</td><td>" & MyArr(2,i) & "</td><td>" & MyArr(3,i) & "</td><td></tr>"
Next
End if
%>
</table>

</body>
</html>

Prøv igen...og se hvad der sker...
Avatar billede fomse Nybegynder
28. juli 2004 - 13:49 #6
Kanon!! Nu virker det:-)
Kan man tilføje en "Slet" knap ud for hver række? Og hvordan gør man det i princippet?
Avatar billede fomse Nybegynder
28. juli 2004 - 13:49 #7
Smid lige et svar også:-)
Avatar billede mikkel_strack Nybegynder
28. juli 2004 - 14:01 #8
Det kan man sagtens.
Har du fx. en kolonne der hedder ID, som er primærnølge i din tabel?

Det har du nok - og så ville man gøre sådan her. (Kun udsnit af koden som ovenfor)

Du ændrer lidt så response.write linjen kommer til at se sådan ud:
Response.Write "<tr><td>" & MyArr(1,i) & "</td><td>" & MyArr(2,i) & "</td><td>" & MyArr(3,i) & "</td><td><a href=slet.asp?sletID=" & MyArr(0,i) & ">Tryk her for slet</a></td></tr>"

Opret en ny side der hedder slet.asp

<html>
<head>
<%
IDrequest = Request.Querystring("SletID")

Dim Conn
function OpenConn( DBName )

Set Conn = Server.CreateObject("ADODB.Connection")
ODBCpath = left(request.servervariables("PATH_TRANSLATED"), instrrev(request.servervariables("PATH_TRANSLATED"), "\"))
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ODBCpath & DBName

end function

'navnet og evt. sti på din database
OpenConn("database.mdb")


' udskift tabelnavn med dit eget og evt ID med navnet på din primærnøgle
strSQL = "delete * from tabelnavn Where ID = " & IDrequest & ""

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing

'udskift sideDuKomFra.asp med den side du kom fra
Response.Redirect "sideDuKomFra.asp"
</head>
%>
Avatar billede mikkel_strack Nybegynder
28. juli 2004 - 14:03 #9
IDrequest = Request.Querystring("SletID")
skal rettes til
IDrequest = Request.Querystring("sletID")
Avatar billede mikkel_strack Nybegynder
28. juli 2004 - 14:19 #10
Takker for points :o)
Avatar billede fomse Nybegynder
28. juli 2004 - 14:23 #11
Det er mig som takker!
Avatar billede fomse Nybegynder
29. juli 2004 - 12:28 #12
Hej (igen) Mikkel

Istedet for den slet.asp kan man så lave en flyt.asp som flytter data til en anden tabel (fx. liste1Slet) istedet for at slette dem helt?

Du skal nok få flere point for at hjælpe:-)

Fomse
Avatar billede mikkel_strack Nybegynder
29. juli 2004 - 13:19 #13
Ja, det kan man da sagtens....2 min..
Avatar billede steen_hansen Forsker
29. juli 2004 - 13:22 #14
Kigger med, mangler samme funktion.
Avatar billede mikkel_strack Nybegynder
29. juli 2004 - 14:06 #15
Denne fil kalder du så flyt.asp.
Du skal huske:
1) At rette det her: href=slet.asp?sletID=" & MyArr(0,i) & "  til
                    href=flyt.asp?flytID=" & MyArr(0,i) & "

2) Din nye tabel hvor du flytter til skal have præcis de samme attributter som den 'gamle' - bortset fra at en evt. ID med autonummer IKKE må ha autonummer i den nye

3) Måske du skal huske noget mere :o)

IDrequest = Request.Querystring("flytID")

dim conn

function OpenConn( DBName )

Set Conn = Server.CreateObject("ADODB.Connection")
ODBCpath = left(request.servervariables("PATH_TRANSLATED"), instrrev(request.servervariables("PATH_TRANSLATED"), "\"))
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ODBCpath & DBName

end function

OpenConn("database.mdb")


' SQL sætning opbygges
strSQL = "Select * from tabel where ID = " & IDrequest & ""

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strSQL, Conn, 1, 3

ID = rs("ID")
omr = rs("omr")
byg = rs("byg")
emne = rs("emne")
ark = rs("ark")
ent = rs("ent")
aftaleDato = rs("aftaleDato")
tilmeldDatot = rs("tilmeldDato")

rs.delete
' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing

function OpenConn( DBName )

Set Conn = Server.CreateObject("ADODB.Connection")
ODBCpath = left(request.servervariables("PATH_TRANSLATED"), instrrev(request.servervariables("PATH_TRANSLATED"), "\"))
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ODBCpath & DBName

end function

OpenConn("database.mdb")

' SQL sætning opbygges
strSQL = "Insert into nyTabel(ID,omr,byg,emne,ark,ent,aftaleDato,tilmeldDato) values('"& ID &"','"& Replace(omr,"'","''") & "','"& Replace(byg,"'","''") & "','"& Replace(emne,"'","''") & "','"& Replace(ark,"'","''") & "','"& Replace(ent,"'","''") & "','"& Replace(aftaleDato,"'","''") & "','"& Replace(tilmeldDato,"'","''") & "')"

' SQL sætning eksekveres
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
Avatar billede fomse Nybegynder
29. juli 2004 - 14:18 #16
Perfekt!!!
Har oprettet et nyt spørgsmål: http://www.eksperten.dk/spm/524429
Smid et svar der og få point!!!!
Det kan godt være jeg henvender mig igen senere, for at få glæde af din ekspertise:-)

Fomse:-)
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