Avatar billede toranaga Nybegynder
17. juli 2002 - 10:14 Der er 24 kommentarer og
2 løsninger

Problem med Access udtræk

Jeg har en side hvor jeg laver udtræk fra en Access database. I databasen er der nogle felter, der er lavet som ja/nej felt og dato felt. Jeg bruger Access2Web til at indtaste data hvilket fungerer fint, men når laver udtræk af ja/nej feltet, så skriver den true eller false på selve siden. Hvad skyldes dette?

Derudover har jeg et "problem" med at dato feltet bliver udfyldt med klokkeslet udover datoen. Kan man ikke undgå dette?
Avatar billede sbm Nybegynder
17. juli 2002 - 10:18 #1
Ja/nej felter er boolean. Altså enten true eller false. Det kan du så selv tolke på, og lave om...

Datofeltet indholder også klokkeslet... Du kan evt. køre en substring på datofeltet og klippe klokken fra.

I Oracle kan man lave en to_char hvor man angiver hvilken del af datofeltet man vil have, og i hvilket format... Jeg ved ikke om access har en lignende funktionalitet? Jeg tvivler.
Avatar billede toranaga Nybegynder
17. juli 2002 - 10:22 #2
Ok, det var jo en fin forklaring, men hvordan gør jeg så lige det? Min udtrækskommando ser således ud:
<% Response.Write Record("Anskafdato")%>
Kan man tilføje noget ekstra kode for at omdanne til ja/nej + fjerne klokkeslet?
Avatar billede sbm Nybegynder
17. juli 2002 - 10:29 #3
Inden du udskriver feltet med Response.write osv. kan du lægge værdien over i en variabel

dim janej
janej = Record("janejfelt")
if (janej = "true") then
  Response.write "Ja"
else
  Response.write "Nej"
end if

Datoen kan blive angivet i forskellige formater alt afhængig af om du kører på en server der kører med dansk eller amerikansk (eller et helt tredje) datoformat.

Skriv en dato her som din dato ser ud når du skriver den råt ud.
Avatar billede toranaga Nybegynder
17. juli 2002 - 10:35 #4
Sådan ser det ud når jeg laver udtræk af min dato:

15-07-2002 15:48:07
Avatar billede sbm Nybegynder
17. juli 2002 - 10:39 #5
Så kan du bare bruge kommandoen left, som tager en streng som parameter og returnerer kun den venstre halvdel, hvor strengen er skåret over et antal karaterer inde som du også selv angiver med et parameter.

http://www.devguru.com/Technologies/vbscript/quickref/left.html

dim dato
dato = left(Record("Anskafdato"),10)
response.write dato

Dette er såfremt datoen skal skæres over 10 karakterer inde... (Måske skal det være 11... Jeg er ikke lige sikker :-)
Avatar billede eagleeye Praktikant
17. juli 2002 - 10:43 #6
Du kan bruge FormatDate:

Response.write FormatDate(rs("datokolonne"),vbshortdate)
Avatar billede eagleeye Praktikant
17. juli 2002 - 10:50 #7
Du kan også formatere daten via SQL med FORMAT..

"SELECT FORMAT(ddatokolonne, 'dd-mm-yyyy') as datoStr, * FROM tabel"

Udskrive ved bruge af recordset, på samme måde som data udskrives:

Rsponse.write rs("datoStr")
Avatar billede eagleeye Praktikant
17. juli 2002 - 10:56 #8
Her er en side som viser forskellige formater med formatDate:
http://www.learnasp.com/learn/test/formatdates.asp

Hvis den formatere til UK/US stil så sæt Session.LCID = 1030 ind i toppen af din fil, som skulle give dansk format.
Avatar billede toranaga Nybegynder
17. juli 2002 - 10:58 #9
Den der dim dato kommando. Hvor skal den stå? Skal den stå i toppen eller foran udtrækskommandoen eller hvad? Og skal der ikke <% %> på?
Avatar billede toranaga Nybegynder
17. juli 2002 - 11:06 #10
Hvis i skulle være i tvivl så er jeg ASP newbie, så jeg skal have skåret det lidt ud i pap ;]
Avatar billede sbm Nybegynder
17. juli 2002 - 11:06 #11
dim dato er blot en linie hvor du opretter din nye variabel.

Den skal bare stå før du bruger den, og den skal stå et sted indenfor dine <% %> klammer.

Eksempelvis
<%
dim dato
dato = left(Record("Anskafdato"),10)
response.write dato
%>
Avatar billede toranaga Nybegynder
17. juli 2002 - 11:33 #12
Når jeg bruger:
<%
dim janej
janej = Record("janejfelt")
if (janej = "true") then
  Response.write "Ja"
else
  Response.write "Nej"
end if
%>

så skriver den blot "Nej" hver gang, selvom der er records med værdien Ja/True?
Avatar billede sbm Nybegynder
17. juli 2002 - 11:37 #13
Øhm... Har du en kolonne der hedder "janejfelt" ?
Det skal du naturligvis udskifte med det rigtige navn for den kolonne. :-)
Avatar billede toranaga Nybegynder
17. juli 2002 - 11:41 #14
ja ok, det har jeg også gjort :)
Avatar billede toranaga Nybegynder
17. juli 2002 - 11:42 #15
Men det er som om at den blot vælger else kommandoen hver gang.
Avatar billede sbm Nybegynder
17. juli 2002 - 12:25 #16
Hmmm. Måske der er et mismatch mellem det den skriver over i janej og det der tjekkes på....

Prøv evt at skrive janej ud til browseren så du kan se hvad den indeholder

dim janej
janej = Record("janejfelt")  <----- Skal stadig skiftes ud med det rette kolonnenavn :-)
response.write janej

Hvad skriver den så?
Avatar billede toranaga Nybegynder
17. juli 2002 - 13:01 #17
Så skriver den False eller True.
Avatar billede sbm Nybegynder
17. juli 2002 - 13:06 #18
Hmmmm..... Det var som bare.....

Måske den er case sensitive...?

Skift linien
  if (janej = "true") then
ud med
  if (janej = "True") then

Jeg er en anelse i vildrede her... (Jeg har ikke mulighed for at teste koden hvor jeg sidder...)

Hvis det stadig ikke virker, så smid hele din kildekode så jeg kan se den.
Avatar billede toranaga Nybegynder
17. juli 2002 - 13:29 #19
Jeg har tjekket case sensitive.

Her er hele svineriet. DB'en er lavet i en DK Access 2002.

<%
Response.Buffer = True

' Connection til database
Set Con = Server.CreateObject("ADODB.Connection")
DBPath = "DBQ=" & server.mappath("/database1.mdb")
Con.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

    Sql = "SELECT TOP 1000 * FROM filmdata ORDER BY titel"
    Set Record =  Con.Execute(Sql)
%>
<html>

<head>
<meta http-equiv="Content-Language" content="da">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Filmklubben</title>
<base target="_blank">
<style fprolloverstyle>A:hover {color: #FF0000; font-size: 8pt}
</style>
</head>

<body bgcolor="#C3C3C3" link="#000000" vlink="#000000" alink="#000000">

<div align="center">
  <center>
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="900">
    <tr>
      <td width="100%">
      <p align="center">&nbsp;<p align="left">
      <font face="Verdana" size="1">Velkommen til filmklubbens hjemmeside. Her
      kan du finde information om hvordan filmklubben &quot;fungerer&quot; og hvilke
      regler klubben har.<br>
      Nedenunder kan du se en komplet liste over de film som klubben råder over.
      Filmene står listen med de nyeste film øverst.</font><p align="left">&nbsp;</td>
    </tr>
  </table>
  </center>
</div>
<div align="center">
  <center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="900">
  <tr>
    <td width="100" valign="top" style="border-bottom-style: solid; border-bottom-width: 1">
    <img border="0" src="grafik/cover.gif"></td>
    <td width="156" valign="top" style="border-bottom-style: solid; border-bottom-width: 1">
    <img border="0" src="grafik/titel.gif"></td>
    <td width="128" valign="top" style="border-bottom-style: solid; border-bottom-width: 1">
    <img border="0" src="grafik/genre.gif"></td>
    <td width="196" valign="top" style="border-bottom-style: solid; border-bottom-width: 1">
    <img border="0" src="grafik/medvirkende.gif"></td>
    <td width="98" valign="top" style="border-bottom-style: solid; border-bottom-width: 1">
    <img border="0" src="grafik/anmeldelse.gif"></td>
    <td width="93" valign="top" style="border-bottom-style: solid; border-bottom-width: 1">
    <img border="0" src="grafik/udlaant.gif"></td>
    <td width="129" valign="top" style="border-bottom-style: solid; border-bottom-width: 1">
    <a href="default.asp" target="_self">
    <img border="0" src="grafik/anskaffelse.gif"></a></td>
  </tr>
</table>
  </center>
</div>
<div align="center">
  <center>
<table border="0" cellpadding="2" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="900" bgcolor="#FFFFFF">
  <tr><% Do While Not Record.EOF %><font face="Verdana" size="1"> </font>
    <td width="100" valign="top" style="border-bottom-style: solid; border-bottom-width: 1; border-left-style:solid; border-left-width:1"><font face="Verdana" size="1"><a href="covers/<% Response.Write Record("billede")%>">Billede</a><br><br></font></td>
    <td width="156" valign="top" style="border-bottom-style: solid; border-bottom-width: 1"><font face="Verdana" size="1"><% Response.Write Record("titel")%><br><br></font></td>
    <td width="129" valign="top" style="border-bottom-style: solid; border-bottom-width: 1"><font face="Verdana" size="1"><% Response.Write Record("genre")%><br><br></font></td>
    <td width="196" valign="top" style="border-bottom-style: solid; border-bottom-width: 1"><font face="Verdana" size="1"><% Response.Write Record("Medvirkende")%><br><br></font></td>
    <td width="98" valign="top" style="border-bottom-style: solid; border-bottom-width: 1"><font face="Verdana" size="1"><a href="<% Response.Write Record("Link")%>">Link</a><br><br></font></td>
    <td width="93" valign="top" style="border-bottom-style: solid; border-bottom-width: 1"><font face="Verdana" size="1">
<%
dim janej
janej = Record("udlånt")
response.write janej
%>
<br><br></font></td>
    <td width="128" valign="top" style="border-bottom-style: solid; border-bottom-width: 1; border-right-style:solid; border-right-width:1"><font face="Verdana" size="1">
<%
dim dato
dato = left(Record("Anskafdato"),10)
response.write dato
%>
<br><br></font></td>
  </tr>
  <%
Record.MoveNext
Loop
%><font face="Verdana" size="1"> </font>
</table>
  </center>
</div>
</body>
</html>
<%
' Lukke connection
Con.Close
Set Con = Nothing
%>


Lige nu kører siden fra min lokale Windows 2000 DK maskine.
Avatar billede sbm Nybegynder
17. juli 2002 - 13:39 #20
Ok. Jeg prøver at køre det når jeg kommer hjem, men det bliver først omkring 20.00 i aften... Håber det er i orden.
Avatar billede toranaga Nybegynder
17. juli 2002 - 13:58 #21
ja fint nok, jeg er bare glad for at du gider gøre så meget ud af det :)
Avatar billede sbm Nybegynder
17. juli 2002 - 14:01 #22
Tja... Nogle gange går der bare lidt sport i det, for selvfølgelig kan problemet løses....
Avatar billede coolcoder Nybegynder
17. juli 2002 - 14:58 #23
du skal gøre følgende:

erstat
<%
dim janej
janej = Record("udlånt")
response.write janej
%>
med

<%
  if Record("udlånt") then
    response.write "ja"
  else
    response.write "nej"
  end if
%>
Avatar billede sbm Nybegynder
17. juli 2002 - 20:42 #24
Ahhh. Endelig hjemme.

Jeg tror - uden at have prøvet det - at coolcoder har fat i det rigtige... Jeg ved ikke om du har fået det prøvet af?
Avatar billede toranaga Nybegynder
18. juli 2002 - 08:31 #25
Sweet det virker sgu! Mange tak.
Avatar billede toranaga Nybegynder
18. juli 2002 - 08:34 #26
SBM har fået 40 point og Coolcoder 20. Håber det er fair nok.
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