Erneut stosse ich auf ein Problem, ich bin mir aber nicht sicher ob es hier drin richtig ist.
Folgende Situation:
ich habe ein Sheet das per Button (Makro) auf den Desktop abgespeichert wird, dies funktioniert auch. Nun möchte ich, dass das Makro einen Text (String) in eine Datenbank-Tabelle einträgt. Dies gelingt mir für die Haupttabelle (siehe Code unten), aber ich müsste den Text in eine Untertabelle eintragen, also wenn im Sheet in Zelle "A12" Offerte steht, dann muss es in die Untertabelle "Offerten" eingetragen werden
Datenbank-Struktur: Datenbank nur in Base erstellt
Haupttabelle: Kunden
ID ( Primärschlüssel, Autowert)
Vorname
Nachname
Datum
Untertabelle: Offerten
ID ( Primärschlüssel, Autowert)
KundenID ( Beziehung zur Haupttabelle)
Offerten
Datum
Untertabelle: Aufträge
ID ( Primärschlüssel, Autowert)
KundenID ( Beziehung zur Haupttabelle)
Aufträge
Datum
Untertabelle: Rechnungen
ID ( Primärschlüssel, Autowert)
KundenID ( Beziehung zur Haupttabelle)
Rechnungen
Datum
Code: Alles auswählen
Sub Speichern
Dim oDoc As Object
Dim oSheet As Object
Dim oCell1 As Object
Dim oCell2 As Object
Dim oCell3 As Object
Dim sName As String
Dim sVorname As String
Dim sLaufwerk As String
Dim sFilename as String
Dim DatabaseContext as Object
Dim oDataquelle as Object
Dim oDatVerb as Object
Dim oStatement as Object
Dim sSQL as String
Dim dummy()
'Sheet auf Desktop speichern
oDoc = ThisComponent
oSheet = oDoc.Sheets.getByName("Tabelle1")
oCell1 = oSheet.getCellByPosition(3, 0)
sName = oCell1.String
oCell2 = oSheet.getCellByPosition(2, 0)
sVorname = oCell2.String
oCell3 = oSheet.getCellByPosition(4, 0)
sNummer= oCell3.String
sLaufwerk = "C:/Users/Benutzername/Desktop/"
sFilename = sNummer & " " & sName & " " & sVorname
neuerpfad = sLaufwerk + "/" + sFilename + ".ods"
dateiurl=converttourl(neuerpfad)
odoc.storetourl(dateiurl,dummy())
'Text in DB-Tabelle speichern
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
oDatenquelle = DatabaseContext.getByName("DB-Name")
oDatVerb = oDatenquelle.getConnection("","")
oStatement = oDatVerb.createStatement()
sSQL = "INSERT INTO ""Kunden"" (" + " ""Vorname"", ""Nachname"") VALUES('" + sVorname + "','" + sName +"')"
oStatement.executeUpdate(sSQL)
end Sub
Wie bring ich dem Makro bei das in eine Untertabelle zu speichern?
Wie bring ich ihm bei, abzuchecken ob er im Richtigen Datensatz der Haupttabelle ist?
Erstellt wird mit dem Code oben immer ein neuer Datensatz, besteht der Datensatz aber schon, sollte in diesen eingefügt werden und nicht einen neuen Datensatz mit gleichem Namen erstellt werden.
Ich habe mich noch kaum mit SQL beschäftigt und hoffe das mir mit wenig Umstand geholfen werden kann.
weitere Fragen kommen bestimmt noch dazu.
Gruss Dave