Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Knifflige Aufgabe - Baumstruktur nachbilden

Begonnen von sparky_Ol, Juni 11, 2015, 21:29:38

⏪ vorheriges - nächstes ⏩

Wurliwurm

        [color=red]INSERT INTO tblImportSort (*)
        VALUES (rs!*)[/color] 'hier soll der aktuelle Datensatz aus rs in die Tabelle tblImportSort         
                                         eigefügt werden'[/quote]


Direkt einen SQL-Befehl hinschreiben geht nicht. Das geht nur in Plattformen welche "direkt die Datenbank eingebaut" sind (T-SQL, PL/SQL, ABAP ...).

Entweder Du konkatenierst einen String und sagst dann
Currentb.Execute(sqlString)

oder Du fügst via Recordset ein:
sqlString = "SELECT * FROM tblNeueTabelle"
Dim rs1 as dao.recordset
set rs1 = currentdb.openrecordset(sqlstring)
rs1.add.new
  rs1!Feld1 = "Hallo"
  rs1!Feld2 = 4711
rs1.update

rs1.close
set rs1 = nothing


Was ich Dir bei 30 Attributen nahelegen würde, damit es nicht zu lange wird und flexibel bleibt: Bau die neue Tabelle mit den gleichen Attributen auf und füge zusätzlich ein Attribut mit den Sortierindex (Typ Integer) ein

Der Code ginge dann so
Dim i as integer
rs1.addnew
  rs1!intSortindex
  for i = 0 to rs.fields.count - 1
      rs1.fields(rs.fields(i).Name) = rs.fields(i).value
  next i
rs1.update


intSortindex ist die Hilfsvariable, die beim Durchlaufen der Knoten inkrementiert wird. Es wird dann aus dem Recordset der alten unsortierten Tabelle der Reihe nach alle Spalten durchlaufen und die Werte übergeben.

Wenn also
rs.fields(1).Name gleich "Feld1" ist, und der Wert rs.fields(1).value gleich "Hallo" dann ist
rs1.fields(rs.fields(1).Name) = rs.fields(1).value
dasselbe wie
rs1!Feld1 = "Hallo"

Leider kann das zur Kompilierzeit nicht geprüft werden, ob alle Attribute gleich sind.