Avatar billede darth-domino Nybegynder
12. august 2005 - 07:36 Der er 8 kommentarer og
1 løsning

SQL Søgning med decimaler?

Jeg kan bare ikke få det til at virke!!!

FRM_HovedFlange.txtD.Text = Tal med decimaler (Eks 284,4)
FRM_HovedFlange.txtd1.Text = Tal med decimaler (Eks 270,1)
FRM_HovedFlange.txtb.Text = Tal med decimaler (Eks 28,5)
FRM_HovedFlange.cbo_Materialer.Text = Tekst

Jeg HAR sat min Access op til at det skal være tal i de tre og tekst i den sidst... men så snart jeg søger tager den ikke mine decimaler med...

Her er min kode:
strSQL = "Select * FROM " & FlangeTabel & " WHERE D = " & Val(FRM_HovedFlange.txtD.Text) & " AND B = " & Val(FRM_HovedFlange.txtb.Text) & " AND d1 = " & Val(FRM_HovedFlange.txtd1.Text) & " AND [Materiale] like '*" & FRM_HovedFlange.cbo_Materialer.Text & "*'"

Her er en debug.print:
Select * FROM Worked_Standard_Flange WHERE D = 284 AND B = 28 AND d1 = 244 AND [Materiale] like '**'
Avatar billede arne_v Ekspert
12. august 2005 - 07:56 #1
Bruger du komma som decimal tegn ?

Val forventer punktum.

Hvis tilføldet prøv og erstat Val med CDbl.
Avatar billede darth-domino Nybegynder
12. august 2005 - 08:04 #2
Har prøvet at lave det her:
strSQL = "Select * FROM " & FlangeTabel & " WHERE D = " & CDbl(FRM_HovedFlange.txtD.Text) & " AND B = " & CDbl(FRM_HovedFlange.txtb.Text) & " AND d1 = " & CDbl(FRM_HovedFlange.txtd1.Text) & " AND [Materiale] like '*" & FRM_HovedFlange.cbo_Materialer.Text & "*'"

Det giver:
Select * FROM Worked_Standard_Flange WHERE D = 490 AND B = 26 AND d1 = 358,1 AND [Materiale] like '**'

Men den finder stadigvæk ikke noget...
Avatar billede arne_v Ekspert
12. august 2005 - 08:21 #3
hm - nu skriver den så ud med komma

hvad med:

strSQL = "Select * FROM " & FlangeTabel & " WHERE D = " & Replace(FRM_HovedFlange.txtD.Text,",",".") & " AND B = " & Replace(FRM_HovedFlange.txtb.Text,",",".") & " AND d1 = " & Replace(FRM_HovedFlange.txtd1.Text,",",".") & " AND [Materiale] like '*" & FRM_HovedFlange.cbo_Materialer.Text & "*'"
Avatar billede darth-domino Nybegynder
12. august 2005 - 08:23 #4
Det hjalp sgu!

Men hvorfor? I min DB står alle mine tal med , og ikke med .!!
Avatar billede arne_v Ekspert
12. august 2005 - 08:27 #5
Hvis du bruger data typen DOUBLE i databasen, så er dine tal hverken
gemt med punktum eller komma, men som binære 64 bit IEEE floating points.

Det er applikationen som viser den som formaterer til tekst med komma eller
punktum.

Og så er det at DK versus UK kan begynde at drille.
Avatar billede darth-domino Nybegynder
12. august 2005 - 08:32 #6
Feltstørrelse: Decimal
Format: Tal
Nøjagtighed: 18
Decimaler: 1
AntalDecimaler: 1
Inputmaske:
Titletekst:
Standardværdi:
Valideringsregel:
Valideringsmeddelse:
Obligatorisk: Nej
Indekseret: Nej
i-Mærker:
Avatar billede arne_v Ekspert
12. august 2005 - 08:46 #7
også for decimal tror jeg at dat gemmes binært og punktum versus komma
kun er relevant i applikationen
Avatar billede darth-domino Nybegynder
12. august 2005 - 09:15 #8
Aha.... point?
Avatar billede arne_v Ekspert
12. august 2005 - 09:18 #9
jo tak
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