Moin Wanderer,
Bei der Vorbereitung der Antworten wurde ich von euch gezwungen alles nachzulesen und vorzubereiten.
Dabei habe ich dann den (meinen) Fehler

schon gefunden.
Ich war so blöd und habe den Double Wert mit getString aus der DB geholt. Das geht zwar - ist aber falsch.
Richtigerweise muss es heißen getDouble und dann klappt auch alles.
Unten noch in der falschen Darstellung
Und natürlich auch die Makros zur Info.
Danke Euch und schönes Wochenende.
DIDI
Deine Fragen:
Die MariaDB ist auf einem remote Server und Connect läuft über jdbc. JRE Version 1.8.0_261
1. Makro - auslesen aus der Tabelle.
2. Makro - erzeugen einer tmpTabelle und Aufruf Report.
Die Variable fMahngeb ist in LO bei Programmstart definiert als GLOBAL und natürlich Double.
Der Fehler taucht schon bei der globalen VAR auf.
Zwischen den einzelnen Versionen 6 und 7 gibt es keine Veränderungen bzgl. Connectivity oder DBMS.
Ausprobiert habe ich auf der DB Seite die Definition Double und Float.
Und im Makro auch die Version als VAL () an Stelle von CStr.
' Holen der Variablen aus dem Stammsatz
oSql = oCon.CreateStatement()
oSqlstring = "SELECT IstBank,AnzQuartAbschl,KurzName,Mahngebuehr from Grunddaten WHERE left(now(),4) = Jahr "
SQL_Result = oSql.executequery(oSqlstring)
While SQL_Result.next()
sBANKDEF = (SQL_Result.getString(1)) 'Hinterlegte Bank
iQUARTALEDEF = (SQL_Result.getString(2)) 'Anzahl definierter Quartale
sKURZNAME = (SQL_Result.getString(3)) 'Verbandsbezeichnung oder auch Kurzname
fMAHNGEB = (SQL_Result.getString(4)) 'Mahngebühr holen - Hier muss es getDouble heissen
Wend
Zur Verwendung in diesem Makro :
Sub Mahnung On Error GoTo Fehlermahnung
'********* Schreiben einer tmp für den Bericht auf **************
'* In der alten Version bis 5.xxx lief das über einen View *******
'* Ab der Version 6.xxx über eine Tabelle weil das aus irgendeinem Grund nicht mehr ging.
'*******************************************************************
Dim oForm As Object
Dim oCon As Object
Dim SQL_Result As Object
Dim oSqlstring As String ' Abfragestring mit SQL Statement
Dim inputVal As String ' Antwort von Inputbox
Dim sMahngeb ' Umgerechnet von der globalen Variablen fMAHNGEB
Dim berichtName As String ' Name des Berichts
DIm fTest as Double ' Jetzt zum Testen drin
odoc = thiscomponent
odrawpage=odoc.drawpage
oform=odrawpage.forms.getbyName("frmMitgliedundRechnungsadresse")
oCon = oForm.ActiveConnection
oSqlstring = "DROP Table IF EXISTS tmpMahnung;"
oSql = oCon.CreateStatement()
oSql.ExecuteUpdate(oSqlstring)
sMahngeb = CStr(fMAHNGEB)
sMahngeb = Replace(sMahngeb,",",".") ' Hier wir aus dem String das Komma gegen einen Punkt getauscht sonst klappt das SQL Statement natürlich nicht
msgbox sMahngeb ' zur Anzeige
oSqlstring = "Create table tmpMahnung as SELECT MitNeu,RechBriefanrede,RechVorname,RechNachname,RechStrasse,RechPLZ,RechOrt, "
oSqlstring = oSqlstring + " Q1 + " + sMahngeb + " as BetraginklMahn, Strasse, " + sMahngeb + " As Mahngeb from "
oSqlstring = oSqlstring + " `AAMitglieder` WHERE MitNeu= "
oSqlstring = oSqlstring + "'" & oform.fmtMit_Neu.Text & "'" + " ;"
msgBox oSqlString ' zur Kontrolle
oSql = oCon.CreateStatement()
oSql.ExecuteUpdate(oSqlstring)
Do Until inputVal = "X" Or inputVal = "x" Or inputVal = "E" Or inputVal = "e" Or inputVal = "M" Or inputVal = "m"
inputVal = Inputbox("Erinnerung oder Mahnung drucken? E oder M eingeben oder X für verlassen")
Loop
Select Case inputVal
Case "e" : berichtName = "BriefErinnerung"
Case "E" : berichtName = "BriefErinnerung"
Case "M" : berichtName = "BriefMahnung"
Case "m" : berichtName = "BriefMahnung"
End Select
If inputVal = x Then Exit Sub
Fehlermahnung:
'If Err = 1 Then
' MsgBox "Hier ist was schiefgelaufen - Kein Ausdruck für das Mitglied möglich"
' Exit Sub
' End If
If Err = 0 Then
ThisDatabaseDocument.ReportDocuments.getByName(berichtName).Open
End If
End Sub