Access, een komma probleem.

  • Onderwerp starter Onderwerp starter aiky
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

aiky

Gebruiker
Lid geworden
6 dec 2006
Berichten
26
Hallo,

Ik ben bezig een functie aan het maken. De functie controleert een bedrag in de database. Wanneer het bedrag verschilt met het aantal die in de database staat, krijgt de gebruiker een melding of hij het bedrag wilt veranderen.
Voor zover heb ik geen probleem. Maar als ik de functie uitvoer, krijg ik een foutmelding op alle komma getallen. Error: "Syntaxisfout (komma) in de query-expressie". Een mogelijke oplossing was de komma veranderen in een punt. Maar dat helpt ook voor geen meter.
Hopelijk kan er iemand mij helpen.
Zie hieronder voor mijn code.

Code:
Function controleOpNul(klasse As String) As Boolean

'Dim db As Database
'Dim rec As Recordset
Dim stringSql As String
Dim answer As String


Dim cmd As ADODB.Command
Dim rec As ADODB.Recordset
Dim con As ADODB.Connection

Set con = CurrentProject.Connection
Set cmd = New ADODB.Command


Dim stringgetal As String
Dim doublegetal As Double

doublegetal = Me.prijs
stringgetal = FormatNumber(doublegetal)
stringgetal = Replace(stringgetal, ",", ".")
doublegetal = CDbl(stringgetal)

controleOpNul = True

With cmd
    .ActiveConnection = con
    .CommandText = "SELECT * from TrybouModern where produktcode = " & "'" & CStr(Me.productcode) & "'" & " " & "and" & " " & "[" & klasse & "]" & " " & "=" & " " & "(" & stringgetal & ")" & ";"
End With

Set rec = cmd.Execute

If rec.RecordCount < 1 Then
    answer = MsgBox("Bent u zeker dit wilt wijzigen?", vbYesNo)
        If answer = vbNo Then
            controleOpNul = False
        Else
            prijs.Value = [productcode].Column(CDbl(klasse))
            DoCmd.Restore
        End If
Else
    controleOpNul = False
End If

End Function
 
Behalve dat ik dit de meest ingewikkelde manier om een SELECT string te maken vind :) doe je je uiterste best om een getal te converteren, en vervolgens gebruik je het geconverteerde getal niet meer...

Code:
With cmd
    .ActiveConnection = con
    .CommandText = "SELECT * FROM TrybouModern WHERE produktcode ='" & CStr(Me.ProductCode) & "' AND klasse = " & doublegetal
End With

Wil je alsnog de string gebruiken, dan wordt het dit:
Code:
With cmd
    .ActiveConnection = con
    .CommandText = "SELECT * FROM TrybouModern WHERE produktcode ='" & CStr(Me.ProductCode) & "' AND klasse = '" & stringgetal & "'"
End With
 
OctaFish,

Beide manier geven nog steeds dezelfde resultaat op.
Namelijk dat het niet werkt.
Blijft steeds dezelfde melding geven.
Is er geen andere manier om dit op te lossen?
 
Maak eens een voorbeeldje, dat praat wat makkelijker.
 
Heb je wel in Windows de regionale instellingen voor datum en getallen op Nederlands staan?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan