Dezimalzahl in sql-Text

Moderator: ModerationP

Dezimalzahl in sql-Text

Beitragvon Jottwd » 19. Nov 2020, 14:42

Hallo Leute,
ich möchte einen bestehenden Datensatz in einer Mysql Datenbank (BE) aus Aceess( FE) ändern.
Ich hab´s so versucht:
sqlupdatebu = "UPDATE tbl_fegbuv SET " & _
" artikelv = " & " ' " & rsbualt!artikelv & " ' " & _
", artikelnrv = " & rsbualt!artikelnrv & _
", btrgv = " & str(rsbualt!btrgv) * -1 & _
", gesbtrgv = " & str(rsbualt!btrgv) * -1 & _
" WHERE ID = " & rsidbu!ID
db.execute (sqlupdatebu)


Klappt auch soweit, bis die Felder btrgv und/oder gesbtrgv eine Dezimalzahl enthält. Das Problem scheint das Komma statt eines Punktes zu sein.
Datentyp bei beiden Feldern ist Decimal().
Hat jemand eine Idde, wie ich das löse?

Vielen Dank im Voraus und Gruß
Jottwd
Jottwd
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 439
Registriert: 02. Apr 2005, 07:02

Re: Dezimalzahl in sql-Text

Beitragvon mmarkus » 19. Nov 2020, 15:00

Wenn dann so: str(rsbualt!btrgv * -1).

Wobei man sich natürlich fragt, warum du das nicht über einen Join machst, anstatt dieser unsägliche Text Schrubblerei.
Abgesehen davon, gäbs ja noch die sauber Lösung via Parameter.

LG Markus
ms access what else
mmarkus
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1963
Registriert: 16. Apr 2012, 16:07
Wohnort: Oberösterreich

Re: Dezimalzahl in sql-Text

Beitragvon Jottwd » 19. Nov 2020, 15:10

Hallo Markus,

danke, klappt.
Was meinst du mit Join und Parametern?

Gruß
Jottwd
Jottwd
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 439
Registriert: 02. Apr 2005, 07:02

Re: Dezimalzahl in sql-Text

Beitragvon Bitsqueezer » 19. Nov 2020, 16:38

Hallo,

einfach eine Abfrage erstellen, die diesen UPDATE-Befehl enthält.
Im Abfrageeditor kannst Du oben "Parameter" anklicken und dann mit Name und Datentyp definieren.

Diese setzt Du dann jeweils hinter das "=" jedes SET-Vorgangs.

Würdest Du die Abfrage nun direkt starten, gibt Dir Access einen Prompt für jeden Parameter und Du mußt den Wert eingeben.

In VBA erstellt man ein QueryDef-Objekt und öffnet damit die so erstellte Abfrage über ihren Namen.

Dann kannst Du die "Parameters"-Auflistung des QueryDef-Objektes verwenden, um die Werte ganz normal als Zahl zu übergeben. Das QueryDef-Objekt kümmert sich dann selbst anhand des Datentyps um die richtige Formatierung.

Kein Stringgefummel, sauber Datenübergabe und keine Überraschungen mit plötzlichen Kommata in der Zahl.

Codevorlagen dazu gibt es zu hauf, einfach mal suchen.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7910
Registriert: 21. Jun 2007, 12:17

Re: Dezimalzahl in sql-Text

Beitragvon Jottwd » 19. Nov 2020, 16:47

ok, danke.
ich schaue es mir mal an.

Gruß
Jottwd
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 439
Registriert: 02. Apr 2005, 07:02


Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste