Avatar billede darth-domino Nybegynder
08. august 2005 - 12:27 Der er 9 kommentarer og
1 løsning

Select Sætning med Decimal tal fra Access DB?

Jeg har et kæmpe problem, jeg kan ikke få min SELECT sætning til at virke!

Jeg har 3 textboxe på en form, der kan eks stå:
txtD = "415"
txtd1 = "39,5"
txtb = "15"

Disse tal skal den lede efter i en Access Database. MEN når der kommer decimaler på kan den ikke finde noget!

I Access Database, er felterne defineret som TAL med 2 decimaler...

Her er min kode:

Dim FraForm_D As Double
Dim FraForm_d1 As Double
Dim FraForm_b As Double
   
FraForm_D = CDec(FRM_HovedFlange.txtD.Text)
FraForm_d1 = CDec(FRM_HovedFlange.txtd1.Text)
FraForm_b = CDec(FRM_HovedFlange.txtb.Text)
   
Set datDB = DBEngine.Workspaces(0).OpenDatabase(App.Path & "\data\Flanger.mdb")
strSQL = "Select * FROM Flat_Face_Flange Where D LIKE " & FraForm_D & " AND B LIKE " & FraForm_b & " AND [d1] LIKE " & FraForm_d1 & ""
Set rsFlangeSøgning = datDB.OpenRecordset(strSQL)

Do Until rsFlangeSøgning.EOF
FRM_HovedFlange.lstListe.AddItem rsFlangeSøgning("Tegningsnr")
rsFlangeSøgning.MoveNext
Loop
Avatar billede c_smidt Nybegynder
08. august 2005 - 12:54 #1
I design af tabellen skal du sikre dig at feltet også er sat til Decimal under Generelt - Feltstørelse.
Avatar billede darth-domino Nybegynder
08. august 2005 - 13:02 #2
Det er den!

Feltstørrelse: Decimaler
Decimaler: 2
AntalDecimaler: 2
Avatar billede darth-domino Nybegynder
08. august 2005 - 13:39 #3
Andre ideer?
Avatar billede c_smidt Nybegynder
08. august 2005 - 14:00 #4
prøv at dim dine variable til Integer
Dim FraForm_D As Integer
Dim FraForm_d1 As Integer
Dim FraForm_b As Integer

Det burde hjælpe
Avatar billede c_smidt Nybegynder
08. august 2005 - 14:01 #5
alternativ dim dem til Variant
Avatar billede c_smidt Nybegynder
08. august 2005 - 14:14 #6
sory. Jeg tror jeg ved hvad der er galt.

Du skal ikke bruge funktionen CDec når variablen er en double. Du skal bruge CDbl der konvertere til en double. Se MSDN under "Type Conversion Functions"
Avatar billede darth-domino Nybegynder
08. august 2005 - 14:16 #7
Det er det samme både med integer og variant....
Avatar billede darth-domino Nybegynder
08. august 2005 - 14:17 #8
Mener du sådan her:

    Dim FraForm_D As Double
    Dim FraForm_d1 As Double
    Dim FraForm_b As Double
   
    FraForm_D = CDbl(FRM_HovedFlange.txtD.Text)
    FraForm_d1 = CDbl(FRM_HovedFlange.txtd1.Text)
    FraForm_b = CDbl(FRM_HovedFlange.txtb.Text)

For det virker heller ikke!
Avatar billede darth-domino Nybegynder
08. august 2005 - 14:38 #9
Her kan du eks se hvad den spytter ud fra debug.print:
Select * FROM Angular_Flange_Raw Where D LIKE 415 AND B LIKE 15 AND [d1] LIKE 39,5
Avatar billede darth-domino Nybegynder
08. august 2005 - 15:07 #10
Har ændret hele svineriet til TEKST og lavet denne sætning her:
strSQL = "Select * FROM " & FlangeTabel & " WHERE D='" & FraForm_D & "' AND B='" & FraForm_b & "' AND d1='" & FraForm_d1 & "'"
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