Leider bleibt das Makro dann an der in der Anlage abgebildeten Stelle
mit der dort gezeigten Meldung hängen.

MfG   L-H

Am 12.03.20 um 18:33 schrieb Gerhard Weydt:
> Hallo Leo-Hubert,
>
> das Feld wird in der DB ja wohl vom Typ Datum sein. Da solltest du mal
> versuchen, es im Makro in ein Date-Feld zu übertragen.
>
> Gruß
> Gerhard
>
> Am 12.03.2020 um 18:04 schrieb Leo-Hubert Kappes:
>> Hallo users,
>>
>> ich hatte schon mal ein ähnliches Problem und stecke jetzt wieder einmal
>> fest, sodass ich eure Hilfe brauche.
>>
>> Zur Realisierung eines Makros, das beim Update einer Datenbank die
>> vorhandenen Daten der alten Version in die Tabelle "Mitglieder" der
>> neuen Version überträgt habe ich das u.a. Makro erstellt.
>>
>> Mein Problem:
>>
>> Alle Daten werden importiert, nur die Spalte 20 (sp20) macht mir
>> Probleme.
>>
>> Dort steht das Geburtsdatum der Vereinsmitglieder.
>>
>> Da dies aber nicht bei allen Mitgliedern benötigt wird, sind auch
>> Datensätze in der Datenbank enthalten, die in diesem Feld keine Einträge
>> enthalten.
>>
>> Wenn ich das Makro mit dem INSERT für die Spalte 20 so ausführe, wie es
>> unten enthalten ist, ('"+sp20+"') importiert es die Daten bis zum ersten
>> Datensatz, der kein Datum in "Geburtstag" enthält und bleibt dann stehen
>> mit der Meldung "Wrong data type".
>>
>> Wenn ich das Makro mit dem INSERT für die Spalte 20 so ausführe (" &
>> sp20 & ") importiert es Datensätze, die im Feld "Geburtstag" keinen
>> Eintrag enthalten, bleibt aber beim ersten Datensatz mit Datumseintrag
>> in diesem Feld stehen.  (Zum Test hatte ich in den ersten Datensätzen
>> die Datums-Inhalte gelöscht).
>>
>> Ich hab das schon mal in einer anderen Datenbank mit eurer Hilfe
>> erfolgreich angewendet. Das o.a. Problem ist dort aber nicht
>> aufgetaucht, da in dieser Datenbank alle Datensätze im Feld Datum einen
>> Eintrag hatten.
>>
>>
>> Vielleicht hat ja jemand einen Tipp, wie ich die Sach noch lösen kann.
>>
>>
>> Vielen Dank im Voraus
>>
>> Gruß  L-H
>>
>>
>> Hier das Makro:
>>
>> SUB Datenkopie
>>
>> dim dbname as string
>> dbname = InputBox("Datenbankname der Quelldatenbank eingeben")
>> if dbname = "" then
>> exit sub
>> end if
>>
>> DIM oDatabaseContext AS OBJECT
>> DIM oDatenquelle AS OBJECT
>> DIM oDatenquelleQuell AS OBJECT
>> DIM oVerbindung AS OBJECT
>> DIM oVerbindungQuell AS OBJECT
>> DIM oDB AS OBJECT
>> DIM oSQL_Anweisung AS OBJECT
>> DIM oSQL_AnweisungQuell AS OBJECT
>> DIM oAbfrageergebnis AS OBJECT
>> DIM oAbfrageergebnisQuell AS OBJECT
>> DIM stSql AS String
>> DIM stSqlZiel AS STRING
>> DIM inID AS INTEGER
>> DIM inIDZiel AS INTEGER
>>
>> oDB = thisDatabaseDocument
>> oDatenquelle = thisDatabaseDocument.CurrentController
>> If NOT (oDatenquelle.isConnected()) THEN
>> oDatenquelle.connect()
>> END IF
>> oVerbindung = oDatenquelle.ActiveConnection()
>> oDatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
>>
>> stDir = Left(oDB.Location,Len(oDB.Location)-Len(oDB.Title))
>> stDir = ConvertToUrl(stDir & ""+dbname+"")
>> 'Quell-Datenbankpfad erstellen
>> oDatenquelleQuell = oDatabaseContext.getByName(stDir)
>> 'Quell-Datenbankpfad einlesen
>> oVerbindungQuell = oDatenquelleQuell.GetConnection("","")
>> 'Quell-Datenbankverbindung einlesen
>> oSQL_AnweisungQuell = oVerbindungQuell.createStatement()
>> 'SQL-Statement für Quelldatenbank erstellen
>>
>> stSql = "SELECT * FROM ""Mitglieder"""
>> oAbfrageergebnisQuell = oSQL_AnweisungQuell.executeQuery(stSql)
>> WHILE oAbfrageergebnisQuell.next
>> inID = oAbfrageergebnisQuell.getint(1)         'ID (Integer)
>> sp2 = oAbfrageergebnisQuell.getString(2)     'Text
>> sp3 = oAbfrageergebnisQuell.getString(3)     'Text
>> sp4 = oAbfrageergebnisQuell.getString(4)     'Zahl
>> IF sp4="" THEN
>>      sp4="NULL"
>> END IF
>> sp5 = oAbfrageergebnisQuell.getString(5)    'Text
>> sp6 = oAbfrageergebnisQuell.getString(6)    'Zahl
>> IF sp6="" THEN
>>      sp6="NULL"
>> END IF
>> sp7 = oAbfrageergebnisQuell.getString(7)    'Text
>> sp8 = oAbfrageergebnisQuell.getString(8)    'Text
>> sp9 = oAbfrageergebnisQuell.getString(9)    'Text
>> sp10 = oAbfrageergebnisQuell.getString(10)    'Text
>> sp11 = oAbfrageergebnisQuell.getString(11)    'Text
>> sp12 = oAbfrageergebnisQuell.getBoolean(12)    'Ja/Nein
>> sp13 = oAbfrageergebnisQuell.getString(13)    'Text
>> sp14 = oAbfrageergebnisQuell.getString(14)    'Text
>> sp15 = oAbfrageergebnisQuell.getString(15)    'Text
>> sp16 = oAbfrageergebnisQuell.getString(16)    'Text
>> sp17 = oAbfrageergebnisQuell.getString(17)    'Text
>> sp18 = oAbfrageergebnisQuell.getString(18)    'Text
>> sp19 = oAbfrageergebnisQuell.getString(19)    'Text
>> sp20 = oAbfrageergebnisQuell.getString(20)    'Datum
>> IF sp20="" THEN
>>      sp20="NULL"
>> END IF
>>
>> oSQL_AnweisungZiel = oVerbindung.createStatement()
>> stSql = "SELECT ""ID"" FROM ""Mitglieder"" WHERE ""ID"" = '"+inID+"'"
>> oAbfrageergebnis = oSQL_AnweisungZiel.executeQuery(stSql)
>> inIDZiel = - 1
>> WHILE oAbfrageergebnis.next
>> inIDZiel = oAbfrageergebnis.getInt(1)
>> WEND
>> IF inIDZiel = - 1 THEN
>> stSqlZiel = "INSERT INTO ""Mitglieder""
>> (""ID"",""Nachname"",""Vorname"",""Eintritt"",""Ehrennadel"",""Ehrenmitglied"",""Vorstand"",""passiv
>>
>> seit"",""alte
>> Passive"",""Aktivzeiten"",""Funktion"",""Marke"",""Bemerkungen"",""telnr"",""email"",""IBAN"",""BIC"",""BName"",""Mand-ID"",""Geburtstag"")
>>
>> VALUES ('"+inID+"','"+sp2+"','"+sp3+"','"+sp4+"','"+sp5+"'," & sp6 &
>> ",'"+sp7+"','"+sp8+"','"+sp9+"','"+sp10+"','"+sp11+"','"+sp12+"','"+sp13+"','"+sp14+"','"+sp15+"','"+sp16+"','"+sp17+"','"+sp18+"','"+sp19+"','"+sp20+"')"
>>
>> oSQL_Anweisung.executeUpdate(stSqlZiel)
>> END IF
>> WEND
>>
>> MsgBox("Daten wurden übernommen")
>> end sub
>>
>>
>
>
-- 
www.lkhome.de

-- 
Liste abmelden mit E-Mail an: [email protected]
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Antwort per Email an