Import von Datum-Felern mit und ohne Inhalt

classic Classic list List threaded Threaded
5 messages Options
Leo-Hubert Kappes Leo-Hubert Kappes
Reply | Threaded
Open this post in threaded view
|

Import von Datum-Felern mit und ohne Inhalt

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: [hidden email]
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
Gerhard Weydt Gerhard Weydt
Reply | Threaded
Open this post in threaded view
|

Re: Import von Datum-Felern mit und ohne Inhalt

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
>
>


--
Liste abmelden mit E-Mail an: [hidden email]
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
Robert Großkopf Robert Großkopf
Reply | Threaded
Open this post in threaded view
|

Re: Import von Datum-Felern mit und ohne Inhalt

In reply to this post by Leo-Hubert Kappes
Hallo Leo-Hubert,

Ich kopiere einmal die wesentlichen Stellen zusammen.
>
> 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".

sp4 weist Du hier z.B. alternativ NULL zu.

> sp6 = oAbfrageergebnisQuell.getString(6)     'Zahl
> IF sp6="" THEN
>     sp6="NULL"
> END IF

Auch dem Datum weist Du alternativ NULL zu.

> sp20 = oAbfrageergebnisQuell.getString(20)    'Datum
> IF sp20="" THEN
>     sp20="NULL"
> END IF

Und hier kannst Du sp6 korrekt NULL zuweisen, weil Du nicht einfache
Anführungszeichen setzt. 'NULL' würde als Text verstanden werden.

> VALUES ('"+inID+"','"+sp2+"','"+sp3+"','"+sp4+"','"+sp5+"'," & sp6 &

... und bei sp20 wird aus NULL zwangsläufig Text.

> ...'"+sp16+"','"+sp17+"','"+sp18+"','"+sp19+"','"+sp20+"')"

Da es sich um ein Datum handelt:

sp20 = oAbfrageergebnisQuell.getString(20)    'Datum
IF sp20="" THEN
    sp20="NULL"
ELSE
    sp20 = "'" & sp20 & "'"
END IF

Die Variable hat jetzt die einfachen Anführungszeichen, wenn sie ein
Datum enthält. Und bei dem Insert wird dann daraus:

...'"+sp16+"','"+sp17+"','"+sp18+"','"+sp19+"', "+sp20+")"

Das gleiche Problem gibt es vom Code her bei sp4, kann dort dann aber
identisch zu sp6 gehandhabt werden.

Gruß

Robert
--
Homepage: https://www.familiegrosskopf.de/robert


--
Liste abmelden mit E-Mail an: [hidden email]
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
Leo-Hubert Kappes Leo-Hubert Kappes
Reply | Threaded
Open this post in threaded view
|

Re: Import von Datum-Felern mit und ohne Inhalt

In reply to this post by Gerhard Weydt
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: [hidden email]
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
Leo-Hubert Kappes Leo-Hubert Kappes
Reply | Threaded
Open this post in threaded view
|

Re: Import von Datum-Felern mit und ohne Inhalt

In reply to this post by Robert Großkopf
Hallo Robert,

vielen Dank für die Hilfe. Mit deinem u.a. Änderungsvorschlag
funktioniert jetzt auch das Imporieren der Datums-Spalten.

Es ist wirklich ein Segen, wenn man solch kompetente Ratgeber in einem
Forum hat.

Vielen Dank   L-H


PS: Die Spalten 4 und 6 sind in der Tabelle beide Zahlen-Felder, wobei
Spalte 4 immer Einträge enthlaten muß, spalte 6 dagegen nicht.

      Mit dem Code, so wie er jetzt ist, funktioniert jedenfalls der
Import dieser Spalten ohne Probleme.


Am 12.03.20 um 19:32 schrieb Robert Großkopf:

> Da es sich um ein Datum handelt:
>
> sp20 = oAbfrageergebnisQuell.getString(20)    'Datum
> IF sp20="" THEN
>     sp20="NULL"
> ELSE
>     sp20 = "'" & sp20 & "'"
> END IF
>
> Die Variable hat jetzt die einfachen Anführungszeichen, wenn sie ein
> Datum enthält. Und bei dem Insert wird dann daraus:
>
> ...'"+sp16+"','"+sp17+"','"+sp18+"','"+sp19+"', "+sp20+")"
>
> Das gleiche Problem gibt es vom Code her bei sp4, kann dort dann aber
> identisch zu sp6 gehandhabt werden.
--
www.lkhome.de

--
Liste abmelden mit E-Mail an: [hidden email]
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