PDA

Vollständige Version anzeigen : Tmp Tabelle befüllen...


GustavKurz
29.08.2001, 20:50
Hallo Forum, :confused:

ich lasse mir über folgendes Coding eine Temporäre Tabelle befüllen:


Dim db As Database: Set db = CurrentDb()
Dim Rst As Recordset
Dim TmpRst As Recordset
Dim i As Integer

Set Rst = db.OpenRecordset("Aufträge", dbOpenTable)
Set TmpRst = db.OpenRecordset("TempAufträge", dbOpenTable)

Do Until Rst.EOF
TmpRst.AddNew
For i = 0 To TmpRst.Fields.Count - 1
TmpRst(i) = Rst(TmpRst(i).Name)
Next i
TmpRst.Update
Rst.MoveNext
Loop
Set Rst = Nothing
Set TmpRst = Nothing


...soweit so gut, läuft ausgezeichnet!

jetzt würde ich aber gerne in die Temporäre Tabelle ein zusätzliches Feld "RechNr", Zahl, Long Integer, hinzufügen, für das es in der Tabelle "Aufträge" kein Duplikat gibt, was von Access bei der Code Ausführung mit ener Fehlermeldung quittiert wird ( Element in der Auflistung nicht gefunden).

Gibt es eine Möglichkeit, in der Schleife ein "Skip" oder ähnlich einzubauen, so das das Feld übergangen wird??

Vielen Dank

EricB
29.08.2001, 21:32
Hallo!

Ganz verstehe ich deine Frage nicht!!!

Willst du das FELD einfügen, oder Daten in das Feld einfügen???

Die Fehlermeldung bedeutet ja, dass das Feld gar nicht vorhanden ist!

Ansonsten:
Am Beginn des Codes zusätzlich eingeben:

On Error Resume Next

Dadurch werden ALLE Fehlermeldungen übersprungen!

Ciao
Eric

Datenherby
29.08.2001, 22:32
Wenn das zusätzliche Feld das letzte in der Auflistung ist, brauchst du bloß im Code COUNT - 2 zu setzen; denke ich mal.

Ich hoffe, ich hab mich nicht verdacht, oder wie das eben heißt.

GustavKurz
30.08.2001, 18:05
Hallo Eric, hallo Datenherby,

vielen Dank für Eure Hilfe, werde beides gleich mal ausprobieren.

@Eric:
Ich möchte die Feldinhalte aus der Ursprungstabelle übertragen.
In der Zieltabelle gibt brauche ich jedoch ein zusätzliches Feld "[RechnNr]".
Nun könnte man ja der Einfachheit halber auf die Idee kommen, in der Ursprungstabelle einfach ein entsprechendes, Leeres Feld zu erstellen - ist aber nicht die feine Programmiererart, oder?

Melde mich nochmals, wenn ichs ausprobiert hab.
Gustav

GustavKurz
30.08.2001, 18:34
Hallo Eric, hallo Datenherby,
Danke, es funzen jetzt beide Methoden - klasse!

mit On Error Resume Next werden im Nachfolgenden Coding alle Fehlermeldungen übersprungen. Da ich sie aber später (Das Programm ist ellenlang) wieder brauche, würde ich sie gerne nach der Do Until...Loop Schleife wieder einschalten.

Ist "Err.Clear" dafür die richtige Methode?

Danke im Voraus
Gustav

WalterS
30.08.2001, 20:50
Hi Gustav!
Entschuldigt wenn ich mich hier einmische, ABER on error resume next ist hier nicht die feine brittische Art. Wenn die Temp Datei alle Felder der Originaldatei enthält ( und zusätzliche) wäre es besser statt
For i = 0 To TmpRst.Fields.Count - 1
TmpRst(i) = Rst(TmpRst(i).Name)

For i = 0 To Rst.Fields.Count - 1
TmpRst(Rst(i).Name) = Rst(i)

zu verwenden.

On Error resume 0

hebt die Fehlerbehandlung wieder auf

Gruss aus Wien

GustavKurz
30.08.2001, 21:52
Hallo Walter,
danke für Deinen Tipp.

Gruß
Gustav