Avatar billede hehlers Nybegynder
25. november 2003 - 09:36 Der er 15 kommentarer og
1 løsning

Funktion med true/false fra DB

Hygge hejsa

Jeg har en access DB hvor der er en masse felter hvor man kan afkrydse m/ true el. false.  Når resultatet bliver vist på web skal der så ja eller nej i stedet for true el. false. Hvordan kan jeg lave det generelt for alle mine felter?
Avatar billede medions Nybegynder
25. november 2003 - 09:51 #1
If CBool(objRs("True_False_Field")) = False Then

End If

og så videre...

//>Rune
Avatar billede hehlers Nybegynder
25. november 2003 - 09:58 #2
okey thx. Jeg har bare 20 forskellige felter i min DB med true/ false. Kan man lave det for dem alle i en funktion?
Avatar billede chriscross Nybegynder
25. november 2003 - 09:58 #3
Er det checkbokse du bruger ?
Og skal de sættes alt efter din værdi i databasen, eller vil du bare have resultaterne udskrevet ?
Hvis det sidste kan du jo lave en lille Sub der tager værdien som argument, tester værdien og udskriver det rigtige resultat...
Avatar billede medions Nybegynder
25. november 2003 - 10:00 #4
Ja smæk det ind i en løkke!:

While Not objRs.EOF
If CBool(objRs("True_False_Field")) = False Then
    Response.Write("Nej")
Else
    Response.Write("Ja")
End If
objRs.MoveNext()
Wend

//>Rune
Avatar billede hehlers Nybegynder
25. november 2003 - 10:11 #5
Nu er jeg en megaNoob hvad det her angår, så jeg får selvf. fejl: "object requiered".

Jeg gør sådan her:
                        <!-- #include file="DBOpen.asp" -->
<%
   
   
    id = request("id")
   
   
    Query= " SELECT * from tbl_baad where id =" & id
    Set Res = Conn.Execute(Query)
    Session.LCID = 1030
    'Response.write(typebaad)
   
    While Not objRes.EOF
    If CBool(objRes("True_False_Field")) = False Then
        Response.Write("Nej")
    Else
        Response.Write("Ja")
    End If
   
%>

-- Så har jeg dataerne ---

<%
objRes.MoveNext()     
Wend
%>

<!-- #include file="DBClose.asp" -->


Gør jeg noget galt?
Avatar billede chriscross Nybegynder
25. november 2003 - 10:13 #6
Hvad hedder dit felt i databasen ?

True_False_Field ?
Avatar billede medions Nybegynder
25. november 2003 - 10:14 #7
Det ville jo for det første være lettere  for mig hvis du gav mig en fejlmeddelse!

For det andet så skal der stå:
Set objRes = Conn.Execute(Query)
istedet for
Set Res = Conn.Execute(Query)

For det 3. så skal der stå navnet
på dit felt der hvro jeg har skrevet True_False_Field!

//>Rune
Avatar billede hehlers Nybegynder
25. november 2003 - 10:26 #8
sorry... Men mit problem er jo, at jeg har 20 forskellige felter i min DB, som alle er true/ false felter.

Er der ikke en smart måd hvorpå man bare kan sige at hvis felter er et true / false felt, så skal den skrive ja / nej istedet for true / false...

Ellers må jeg jo lave mange funktioner...
...
If CBool(Res("kompas")) = False Then
        Response.Write("Nej")
    Else
        Response.Write("Ja")
    End If

If CBool(Res("ur")) = False Then
        Response.Write("Nej")
    Else
        Response.Write("Ja")
    End If

... osv osv...
Avatar billede chriscross Nybegynder
25. november 2003 - 10:28 #9
Du kunne blot smide koden ind i en Sub  der udfører testen hvorfra du udskriver resultatet.
Avatar billede chriscross Nybegynder
25. november 2003 - 10:31 #10
Sub skrivRes(arg)
If CBool(arg) = False
    Response.Write "Nej"
Else
    Response.Write "Ja"
End If
End Sub

- og så kalde den med:
Call skrivRes(Res("field"))
Avatar billede medions Nybegynder
25. november 2003 - 10:36 #11
Så kunne du gøre sådan her:

If CBool(Res(0)) = False Then
        Response.Write("Nej")
    Else
        Response.Write("Ja")
    End If

If CBool(Res(1)) = False Then
        Response.Write("Nej")
    Else
        Response.Write("Ja")
    End If

og så ellers fortsæt op til 19 hvis ud har 20 felter!

//>Rune
Avatar billede hehlers Nybegynder
25. november 2003 - 10:38 #12
okey, jeg er dog ikke helt med. :)

Der hvor du skriver (arg) hvad er det? ;)
Avatar billede chriscross Nybegynder
25. november 2003 - 10:40 #13
Og så er det en god idé at teste lidt mere:

Sub skrivRes(arg)
If CBool(arg) = False Then
    Response.Write "Nej"
ElseIf CBool(arg) = True Then
    Response.Write "Ja"
Else
    Response.Write "Ukendt"
End If
End Sub

- og det er også en god ide at huske "Then" efter If ;-)
Avatar billede chriscross Nybegynder
25. november 2003 - 10:43 #14
arg er det argument du sender med til din Sub -altså en variabel.
Der hvor du vil have udskrevet resultaterne indsætter du din kald til din Sub:
Call skrivRes(Res("field1"))
Call skrivRes(Res("field2"))
osv.. hvor værdien af Res("field1")) er den værdi der sendes med til din Sub.

Det er ligesom en funktion blot med den forskel at en sub ikke har nogen returværdi, til gengæld er den glimrende til det du vil.
Avatar billede chriscross Nybegynder
25. november 2003 - 10:44 #15
Og selve Sub'en placeres blot i toppen eller bunden af siden, eller i en includefil så du kan genbruge den på andre sider
Avatar billede hehlers Nybegynder
25. november 2003 - 10:48 #16
Weeee så er jeg med.. :)  Tusind tak for hjælpen. :D
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